@@ -21,8 +21,8 @@ define <2 x i64> @should_not_be_optimized(ptr %ptr, ptr %dst){
21
21
define <2 x i64 > @vldrepl_d_unaligned_offset (ptr %ptr ) {
22
22
; CHECK-LABEL: vldrepl_d_unaligned_offset:
23
23
; CHECK: # %bb.0:
24
- ; CHECK-NEXT: ld .d $a0, $a0, 4
25
- ; CHECK-NEXT: vreplgr2vr .d $vr0, $a0
24
+ ; CHECK-NEXT: addi .d $a0, $a0, 4
25
+ ; CHECK-NEXT: vldrepl .d $vr0, $a0, 0
26
26
; CHECK-NEXT: ret
27
27
%p = getelementptr i32 , ptr %ptr , i32 1
28
28
%tmp = load i64 , ptr %p
@@ -34,8 +34,7 @@ define <2 x i64> @vldrepl_d_unaligned_offset(ptr %ptr) {
34
34
define <16 x i8 > @vldrepl_b (ptr %ptr ) {
35
35
; CHECK-LABEL: vldrepl_b:
36
36
; CHECK: # %bb.0:
37
- ; CHECK-NEXT: ld.b $a0, $a0, 0
38
- ; CHECK-NEXT: vreplgr2vr.b $vr0, $a0
37
+ ; CHECK-NEXT: vldrepl.b $vr0, $a0, 0
39
38
; CHECK-NEXT: ret
40
39
%tmp = load i8 , ptr %ptr
41
40
%tmp1 = insertelement <16 x i8 > zeroinitializer , i8 %tmp , i32 0
@@ -46,8 +45,7 @@ define <16 x i8> @vldrepl_b(ptr %ptr) {
46
45
define <16 x i8 > @vldrepl_b_offset (ptr %ptr ) {
47
46
; CHECK-LABEL: vldrepl_b_offset:
48
47
; CHECK: # %bb.0:
49
- ; CHECK-NEXT: ld.b $a0, $a0, 33
50
- ; CHECK-NEXT: vreplgr2vr.b $vr0, $a0
48
+ ; CHECK-NEXT: vldrepl.b $vr0, $a0, 33
51
49
; CHECK-NEXT: ret
52
50
%p = getelementptr i8 , ptr %ptr , i64 33
53
51
%tmp = load i8 , ptr %p
@@ -60,8 +58,7 @@ define <16 x i8> @vldrepl_b_offset(ptr %ptr) {
60
58
define <8 x i16 > @vldrepl_h (ptr %ptr ) {
61
59
; CHECK-LABEL: vldrepl_h:
62
60
; CHECK: # %bb.0:
63
- ; CHECK-NEXT: ld.h $a0, $a0, 0
64
- ; CHECK-NEXT: vreplgr2vr.h $vr0, $a0
61
+ ; CHECK-NEXT: vldrepl.h $vr0, $a0, 0
65
62
; CHECK-NEXT: ret
66
63
%tmp = load i16 , ptr %ptr
67
64
%tmp1 = insertelement <8 x i16 > zeroinitializer , i16 %tmp , i32 0
@@ -72,8 +69,7 @@ define <8 x i16> @vldrepl_h(ptr %ptr) {
72
69
define <8 x i16 > @vldrepl_h_offset (ptr %ptr ) {
73
70
; CHECK-LABEL: vldrepl_h_offset:
74
71
; CHECK: # %bb.0:
75
- ; CHECK-NEXT: ld.h $a0, $a0, 66
76
- ; CHECK-NEXT: vreplgr2vr.h $vr0, $a0
72
+ ; CHECK-NEXT: vldrepl.h $vr0, $a0, 66
77
73
; CHECK-NEXT: ret
78
74
%p = getelementptr i16 , ptr %ptr , i64 33
79
75
%tmp = load i16 , ptr %p
@@ -85,8 +81,7 @@ define <8 x i16> @vldrepl_h_offset(ptr %ptr) {
85
81
define <4 x i32 > @vldrepl_w (ptr %ptr ) {
86
82
; CHECK-LABEL: vldrepl_w:
87
83
; CHECK: # %bb.0:
88
- ; CHECK-NEXT: ld.w $a0, $a0, 0
89
- ; CHECK-NEXT: vreplgr2vr.w $vr0, $a0
84
+ ; CHECK-NEXT: vldrepl.w $vr0, $a0, 0
90
85
; CHECK-NEXT: ret
91
86
%tmp = load i32 , ptr %ptr
92
87
%tmp1 = insertelement <4 x i32 > zeroinitializer , i32 %tmp , i32 0
@@ -97,8 +92,7 @@ define <4 x i32> @vldrepl_w(ptr %ptr) {
97
92
define <4 x i32 > @vldrepl_w_offset (ptr %ptr ) {
98
93
; CHECK-LABEL: vldrepl_w_offset:
99
94
; CHECK: # %bb.0:
100
- ; CHECK-NEXT: ld.w $a0, $a0, 132
101
- ; CHECK-NEXT: vreplgr2vr.w $vr0, $a0
95
+ ; CHECK-NEXT: vldrepl.w $vr0, $a0, 132
102
96
; CHECK-NEXT: ret
103
97
%p = getelementptr i32 , ptr %ptr , i64 33
104
98
%tmp = load i32 , ptr %p
@@ -110,8 +104,7 @@ define <4 x i32> @vldrepl_w_offset(ptr %ptr) {
110
104
define <2 x i64 > @vldrepl_d (ptr %ptr ) {
111
105
; CHECK-LABEL: vldrepl_d:
112
106
; CHECK: # %bb.0:
113
- ; CHECK-NEXT: ld.d $a0, $a0, 0
114
- ; CHECK-NEXT: vreplgr2vr.d $vr0, $a0
107
+ ; CHECK-NEXT: vldrepl.d $vr0, $a0, 0
115
108
; CHECK-NEXT: ret
116
109
%tmp = load i64 , ptr %ptr
117
110
%tmp1 = insertelement <2 x i64 > zeroinitializer , i64 %tmp , i32 0
@@ -122,8 +115,7 @@ define <2 x i64> @vldrepl_d(ptr %ptr) {
122
115
define <2 x i64 > @vldrepl_d_offset (ptr %ptr ) {
123
116
; CHECK-LABEL: vldrepl_d_offset:
124
117
; CHECK: # %bb.0:
125
- ; CHECK-NEXT: ld.d $a0, $a0, 264
126
- ; CHECK-NEXT: vreplgr2vr.d $vr0, $a0
118
+ ; CHECK-NEXT: vldrepl.d $vr0, $a0, 264
127
119
; CHECK-NEXT: ret
128
120
%p = getelementptr i64 , ptr %ptr , i64 33
129
121
%tmp = load i64 , ptr %p
@@ -135,8 +127,7 @@ define <2 x i64> @vldrepl_d_offset(ptr %ptr) {
135
127
define <4 x float > @vldrepl_w_flt (ptr %ptr ) {
136
128
; CHECK-LABEL: vldrepl_w_flt:
137
129
; CHECK: # %bb.0:
138
- ; CHECK-NEXT: fld.s $fa0, $a0, 0
139
- ; CHECK-NEXT: vreplvei.w $vr0, $vr0, 0
130
+ ; CHECK-NEXT: vldrepl.w $vr0, $a0, 0
140
131
; CHECK-NEXT: ret
141
132
%tmp = load float , ptr %ptr
142
133
%tmp1 = insertelement <4 x float > zeroinitializer , float %tmp , i32 0
@@ -147,8 +138,7 @@ define <4 x float> @vldrepl_w_flt(ptr %ptr) {
147
138
define <4 x float > @vldrepl_w_flt_offset (ptr %ptr ) {
148
139
; CHECK-LABEL: vldrepl_w_flt_offset:
149
140
; CHECK: # %bb.0:
150
- ; CHECK-NEXT: fld.s $fa0, $a0, 264
151
- ; CHECK-NEXT: vreplvei.w $vr0, $vr0, 0
141
+ ; CHECK-NEXT: vldrepl.w $vr0, $a0, 264
152
142
; CHECK-NEXT: ret
153
143
%p = getelementptr i64 , ptr %ptr , i64 33
154
144
%tmp = load float , ptr %p
@@ -160,8 +150,7 @@ define <4 x float> @vldrepl_w_flt_offset(ptr %ptr) {
160
150
define <2 x double > @vldrepl_d_dbl (ptr %ptr ) {
161
151
; CHECK-LABEL: vldrepl_d_dbl:
162
152
; CHECK: # %bb.0:
163
- ; CHECK-NEXT: fld.d $fa0, $a0, 0
164
- ; CHECK-NEXT: vreplvei.d $vr0, $vr0, 0
153
+ ; CHECK-NEXT: vldrepl.d $vr0, $a0, 0
165
154
; CHECK-NEXT: ret
166
155
%tmp = load double , ptr %ptr
167
156
%tmp1 = insertelement <2 x double > zeroinitializer , double %tmp , i32 0
@@ -172,8 +161,7 @@ define <2 x double> @vldrepl_d_dbl(ptr %ptr) {
172
161
define <2 x double > @vldrepl_d_dbl_offset (ptr %ptr ) {
173
162
; CHECK-LABEL: vldrepl_d_dbl_offset:
174
163
; CHECK: # %bb.0:
175
- ; CHECK-NEXT: fld.d $fa0, $a0, 264
176
- ; CHECK-NEXT: vreplvei.d $vr0, $vr0, 0
164
+ ; CHECK-NEXT: vldrepl.d $vr0, $a0, 264
177
165
; CHECK-NEXT: ret
178
166
%p = getelementptr i64 , ptr %ptr , i64 33
179
167
%tmp = load double , ptr %p
0 commit comments