@@ -21,8 +21,8 @@ define <4 x i64> @should_not_be_optimized(ptr %ptr, ptr %dst) {
2121define <4 x i64 > @xvldrepl_d_unaligned_offset (ptr %ptr ) {
2222; CHECK-LABEL: xvldrepl_d_unaligned_offset:
2323; CHECK: # %bb.0:
24- ; CHECK-NEXT: ld .d $a0, $a0, 4
25- ; CHECK-NEXT: xvreplgr2vr .d $xr0, $a0
24+ ; CHECK-NEXT: addi .d $a0, $a0, 4
25+ ; CHECK-NEXT: xvldrepl .d $xr0, $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 <4 x i64> @xvldrepl_d_unaligned_offset(ptr %ptr) {
3434define <32 x i8 > @xvldrepl_b (ptr %ptr ) {
3535; CHECK-LABEL: xvldrepl_b:
3636; CHECK: # %bb.0:
37- ; CHECK-NEXT: ld.b $a0, $a0, 0
38- ; CHECK-NEXT: xvreplgr2vr.b $xr0, $a0
37+ ; CHECK-NEXT: xvldrepl.b $xr0, $a0, 0
3938; CHECK-NEXT: ret
4039 %tmp = load i8 , ptr %ptr
4140 %tmp1 = insertelement <32 x i8 > zeroinitializer , i8 %tmp , i32 0
@@ -46,8 +45,7 @@ define <32 x i8> @xvldrepl_b(ptr %ptr) {
4645define <32 x i8 > @xvldrepl_b_offset (ptr %ptr ) {
4746; CHECK-LABEL: xvldrepl_b_offset:
4847; CHECK: # %bb.0:
49- ; CHECK-NEXT: ld.b $a0, $a0, 33
50- ; CHECK-NEXT: xvreplgr2vr.b $xr0, $a0
48+ ; CHECK-NEXT: xvldrepl.b $xr0, $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 <32 x i8> @xvldrepl_b_offset(ptr %ptr) {
6058define <16 x i16 > @xvldrepl_h (ptr %ptr ) {
6159; CHECK-LABEL: xvldrepl_h:
6260; CHECK: # %bb.0:
63- ; CHECK-NEXT: ld.h $a0, $a0, 0
64- ; CHECK-NEXT: xvreplgr2vr.h $xr0, $a0
61+ ; CHECK-NEXT: xvldrepl.h $xr0, $a0, 0
6562; CHECK-NEXT: ret
6663 %tmp = load i16 , ptr %ptr
6764 %tmp1 = insertelement <16 x i16 > zeroinitializer , i16 %tmp , i32 0
@@ -72,8 +69,7 @@ define <16 x i16> @xvldrepl_h(ptr %ptr) {
7269define <16 x i16 > @xvldrepl_h_offset (ptr %ptr ) {
7370; CHECK-LABEL: xvldrepl_h_offset:
7471; CHECK: # %bb.0:
75- ; CHECK-NEXT: ld.h $a0, $a0, 66
76- ; CHECK-NEXT: xvreplgr2vr.h $xr0, $a0
72+ ; CHECK-NEXT: xvldrepl.h $xr0, $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 <16 x i16> @xvldrepl_h_offset(ptr %ptr) {
8581define <8 x i32 > @xvldrepl_w (ptr %ptr ) {
8682; CHECK-LABEL: xvldrepl_w:
8783; CHECK: # %bb.0:
88- ; CHECK-NEXT: ld.w $a0, $a0, 0
89- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a0
84+ ; CHECK-NEXT: xvldrepl.w $xr0, $a0, 0
9085; CHECK-NEXT: ret
9186 %tmp = load i32 , ptr %ptr
9287 %tmp1 = insertelement <8 x i32 > zeroinitializer , i32 %tmp , i32 0
@@ -97,8 +92,7 @@ define <8 x i32> @xvldrepl_w(ptr %ptr) {
9792define <8 x i32 > @xvldrepl_w_offset (ptr %ptr ) {
9893; CHECK-LABEL: xvldrepl_w_offset:
9994; CHECK: # %bb.0:
100- ; CHECK-NEXT: ld.w $a0, $a0, 132
101- ; CHECK-NEXT: xvreplgr2vr.w $xr0, $a0
95+ ; CHECK-NEXT: xvldrepl.w $xr0, $a0, 132
10296; CHECK-NEXT: ret
10397 %p = getelementptr i32 , ptr %ptr , i64 33
10498 %tmp = load i32 , ptr %p
@@ -111,8 +105,7 @@ define <8 x i32> @xvldrepl_w_offset(ptr %ptr) {
111105define <4 x i64 > @xvldrepl_d (ptr %ptr ) {
112106; CHECK-LABEL: xvldrepl_d:
113107; CHECK: # %bb.0:
114- ; CHECK-NEXT: ld.d $a0, $a0, 0
115- ; CHECK-NEXT: xvreplgr2vr.d $xr0, $a0
108+ ; CHECK-NEXT: xvldrepl.d $xr0, $a0, 0
116109; CHECK-NEXT: ret
117110 %tmp = load i64 , ptr %ptr
118111 %tmp1 = insertelement <4 x i64 > zeroinitializer , i64 %tmp , i32 0
@@ -123,8 +116,7 @@ define <4 x i64> @xvldrepl_d(ptr %ptr) {
123116define <4 x i64 > @xvldrepl_d_offset (ptr %ptr ) {
124117; CHECK-LABEL: xvldrepl_d_offset:
125118; CHECK: # %bb.0:
126- ; CHECK-NEXT: ld.d $a0, $a0, 264
127- ; CHECK-NEXT: xvreplgr2vr.d $xr0, $a0
119+ ; CHECK-NEXT: xvldrepl.d $xr0, $a0, 264
128120; CHECK-NEXT: ret
129121 %p = getelementptr i64 , ptr %ptr , i64 33
130122 %tmp = load i64 , ptr %p
@@ -136,8 +128,7 @@ define <4 x i64> @xvldrepl_d_offset(ptr %ptr) {
136128define <8 x float > @vldrepl_w_flt (ptr %ptr ) {
137129; CHECK-LABEL: vldrepl_w_flt:
138130; CHECK: # %bb.0:
139- ; CHECK-NEXT: fld.s $fa0, $a0, 0
140- ; CHECK-NEXT: xvreplve0.w $xr0, $xr0
131+ ; CHECK-NEXT: xvldrepl.w $xr0, $a0, 0
141132; CHECK-NEXT: ret
142133 %tmp = load float , ptr %ptr
143134 %tmp1 = insertelement <8 x float > zeroinitializer , float %tmp , i32 0
@@ -148,8 +139,7 @@ define <8 x float> @vldrepl_w_flt(ptr %ptr) {
148139define <8 x float > @vldrepl_w_flt_offset (ptr %ptr ) {
149140; CHECK-LABEL: vldrepl_w_flt_offset:
150141; CHECK: # %bb.0:
151- ; CHECK-NEXT: fld.s $fa0, $a0, 264
152- ; CHECK-NEXT: xvreplve0.w $xr0, $xr0
142+ ; CHECK-NEXT: xvldrepl.w $xr0, $a0, 264
153143; CHECK-NEXT: ret
154144 %p = getelementptr i64 , ptr %ptr , i64 33
155145 %tmp = load float , ptr %p
@@ -161,8 +151,7 @@ define <8 x float> @vldrepl_w_flt_offset(ptr %ptr) {
161151define <4 x double > @vldrepl_d_dbl (ptr %ptr ) {
162152; CHECK-LABEL: vldrepl_d_dbl:
163153; CHECK: # %bb.0:
164- ; CHECK-NEXT: fld.d $fa0, $a0, 0
165- ; CHECK-NEXT: xvreplve0.d $xr0, $xr0
154+ ; CHECK-NEXT: xvldrepl.d $xr0, $a0, 0
166155; CHECK-NEXT: ret
167156 %tmp = load double , ptr %ptr
168157 %tmp1 = insertelement <4 x double > zeroinitializer , double %tmp , i32 0
@@ -173,8 +162,7 @@ define <4 x double> @vldrepl_d_dbl(ptr %ptr) {
173162define <4 x double > @vldrepl_d_dbl_offset (ptr %ptr ) {
174163; CHECK-LABEL: vldrepl_d_dbl_offset:
175164; CHECK: # %bb.0:
176- ; CHECK-NEXT: fld.d $fa0, $a0, 264
177- ; CHECK-NEXT: xvreplve0.d $xr0, $xr0
165+ ; CHECK-NEXT: xvldrepl.d $xr0, $a0, 264
178166; CHECK-NEXT: ret
179167 %p = getelementptr i64 , ptr %ptr , i64 33
180168 %tmp = load double , ptr %p
0 commit comments