@@ -21,8 +21,8 @@ define <2 x i64> @should_not_be_optimized(ptr %ptr, ptr %dst){
2121define <2 x i64 > @vldrepl_d_unaligned_offset (ptr %ptr ) {
2222; CHECK-LABEL: vldrepl_d_unaligned_offset:
2323; 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
2626; CHECK-NEXT: ret
2727 %p = getelementptr i32 , ptr %ptr , i32 1
2828 %tmp = load i64 , ptr %p
@@ -34,8 +34,7 @@ define <2 x i64> @vldrepl_d_unaligned_offset(ptr %ptr) {
3434define <16 x i8 > @vldrepl_b (ptr %ptr ) {
3535; CHECK-LABEL: vldrepl_b:
3636; 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
3938; CHECK-NEXT: ret
4039 %tmp = load i8 , ptr %ptr
4140 %tmp1 = insertelement <16 x i8 > zeroinitializer , i8 %tmp , i32 0
@@ -46,8 +45,7 @@ define <16 x i8> @vldrepl_b(ptr %ptr) {
4645define <16 x i8 > @vldrepl_b_offset (ptr %ptr ) {
4746; CHECK-LABEL: vldrepl_b_offset:
4847; 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
5149; CHECK-NEXT: ret
5250 %p = getelementptr i8 , ptr %ptr , i64 33
5351 %tmp = load i8 , ptr %p
@@ -60,8 +58,7 @@ define <16 x i8> @vldrepl_b_offset(ptr %ptr) {
6058define <8 x i16 > @vldrepl_h (ptr %ptr ) {
6159; CHECK-LABEL: vldrepl_h:
6260; 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
6562; CHECK-NEXT: ret
6663 %tmp = load i16 , ptr %ptr
6764 %tmp1 = insertelement <8 x i16 > zeroinitializer , i16 %tmp , i32 0
@@ -72,8 +69,7 @@ define <8 x i16> @vldrepl_h(ptr %ptr) {
7269define <8 x i16 > @vldrepl_h_offset (ptr %ptr ) {
7370; CHECK-LABEL: vldrepl_h_offset:
7471; 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
7773; CHECK-NEXT: ret
7874 %p = getelementptr i16 , ptr %ptr , i64 33
7975 %tmp = load i16 , ptr %p
@@ -85,8 +81,7 @@ define <8 x i16> @vldrepl_h_offset(ptr %ptr) {
8581define <4 x i32 > @vldrepl_w (ptr %ptr ) {
8682; CHECK-LABEL: vldrepl_w:
8783; 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
9085; CHECK-NEXT: ret
9186 %tmp = load i32 , ptr %ptr
9287 %tmp1 = insertelement <4 x i32 > zeroinitializer , i32 %tmp , i32 0
@@ -97,8 +92,7 @@ define <4 x i32> @vldrepl_w(ptr %ptr) {
9792define <4 x i32 > @vldrepl_w_offset (ptr %ptr ) {
9893; CHECK-LABEL: vldrepl_w_offset:
9994; 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
10296; CHECK-NEXT: ret
10397 %p = getelementptr i32 , ptr %ptr , i64 33
10498 %tmp = load i32 , ptr %p
@@ -110,8 +104,7 @@ define <4 x i32> @vldrepl_w_offset(ptr %ptr) {
110104define <2 x i64 > @vldrepl_d (ptr %ptr ) {
111105; CHECK-LABEL: vldrepl_d:
112106; 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
115108; CHECK-NEXT: ret
116109 %tmp = load i64 , ptr %ptr
117110 %tmp1 = insertelement <2 x i64 > zeroinitializer , i64 %tmp , i32 0
@@ -122,8 +115,7 @@ define <2 x i64> @vldrepl_d(ptr %ptr) {
122115define <2 x i64 > @vldrepl_d_offset (ptr %ptr ) {
123116; CHECK-LABEL: vldrepl_d_offset:
124117; 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
127119; CHECK-NEXT: ret
128120 %p = getelementptr i64 , ptr %ptr , i64 33
129121 %tmp = load i64 , ptr %p
@@ -135,8 +127,7 @@ define <2 x i64> @vldrepl_d_offset(ptr %ptr) {
135127define <4 x float > @vldrepl_w_flt (ptr %ptr ) {
136128; CHECK-LABEL: vldrepl_w_flt:
137129; 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
140131; CHECK-NEXT: ret
141132 %tmp = load float , ptr %ptr
142133 %tmp1 = insertelement <4 x float > zeroinitializer , float %tmp , i32 0
@@ -147,8 +138,7 @@ define <4 x float> @vldrepl_w_flt(ptr %ptr) {
147138define <4 x float > @vldrepl_w_flt_offset (ptr %ptr ) {
148139; CHECK-LABEL: vldrepl_w_flt_offset:
149140; 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
152142; CHECK-NEXT: ret
153143 %p = getelementptr i64 , ptr %ptr , i64 33
154144 %tmp = load float , ptr %p
@@ -160,8 +150,7 @@ define <4 x float> @vldrepl_w_flt_offset(ptr %ptr) {
160150define <2 x double > @vldrepl_d_dbl (ptr %ptr ) {
161151; CHECK-LABEL: vldrepl_d_dbl:
162152; 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
165154; CHECK-NEXT: ret
166155 %tmp = load double , ptr %ptr
167156 %tmp1 = insertelement <2 x double > zeroinitializer , double %tmp , i32 0
@@ -172,8 +161,7 @@ define <2 x double> @vldrepl_d_dbl(ptr %ptr) {
172161define <2 x double > @vldrepl_d_dbl_offset (ptr %ptr ) {
173162; CHECK-LABEL: vldrepl_d_dbl_offset:
174163; 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
177165; CHECK-NEXT: ret
178166 %p = getelementptr i64 , ptr %ptr , i64 33
179167 %tmp = load double , ptr %p
0 commit comments