@@ -16,13 +16,11 @@ define <2 x float> @test_ret_const() #0 {
16
16
; CHECK-LABEL: test_ret_const(
17
17
; CHECK: {
18
18
; CHECK-NEXT: .reg .f32 %f<3>;
19
- ; CHECK-NEXT: .reg .b64 %rd<2>;
20
19
; CHECK-EMPTY:
21
20
; CHECK-NEXT: // %bb.0:
22
21
; CHECK-NEXT: mov.f32 %f1, 0f40000000;
23
22
; CHECK-NEXT: mov.f32 %f2, 0f3F800000;
24
- ; CHECK-NEXT: mov.b64 %rd1, {%f2, %f1};
25
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd1;
23
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f2, %f1};
26
24
; CHECK-NEXT: ret;
27
25
ret <2 x float > <float 1 .0 , float 2 .0 >
28
26
}
@@ -243,7 +241,7 @@ define <2 x float> @test_fdiv(<2 x float> %a, <2 x float> %b) #0 {
243
241
; CHECK-LABEL: test_fdiv(
244
242
; CHECK: {
245
243
; CHECK-NEXT: .reg .f32 %f<7>;
246
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
244
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
247
245
; CHECK-EMPTY:
248
246
; CHECK-NEXT: // %bb.0:
249
247
; CHECK-NEXT: ld.param.b64 %rd2, [test_fdiv_param_1];
@@ -252,8 +250,7 @@ define <2 x float> @test_fdiv(<2 x float> %a, <2 x float> %b) #0 {
252
250
; CHECK-NEXT: mov.b64 {%f3, %f4}, %rd1;
253
251
; CHECK-NEXT: div.rn.f32 %f5, %f4, %f2;
254
252
; CHECK-NEXT: div.rn.f32 %f6, %f3, %f1;
255
- ; CHECK-NEXT: mov.b64 %rd3, {%f6, %f5};
256
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
253
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f6, %f5};
257
254
; CHECK-NEXT: ret;
258
255
%r = fdiv <2 x float > %a , %b
259
256
ret <2 x float > %r
@@ -264,7 +261,7 @@ define <2 x float> @test_frem(<2 x float> %a, <2 x float> %b) #0 {
264
261
; CHECK: {
265
262
; CHECK-NEXT: .reg .pred %p<3>;
266
263
; CHECK-NEXT: .reg .f32 %f<15>;
267
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
264
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
268
265
; CHECK-EMPTY:
269
266
; CHECK-NEXT: // %bb.0:
270
267
; CHECK-NEXT: ld.param.b64 %rd2, [test_frem_param_1];
@@ -283,8 +280,7 @@ define <2 x float> @test_frem(<2 x float> %a, <2 x float> %b) #0 {
283
280
; CHECK-NEXT: sub.f32 %f13, %f3, %f12;
284
281
; CHECK-NEXT: testp.infinite.f32 %p2, %f1;
285
282
; CHECK-NEXT: selp.f32 %f14, %f3, %f13, %p2;
286
- ; CHECK-NEXT: mov.b64 %rd3, {%f14, %f9};
287
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
283
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f14, %f9};
288
284
; CHECK-NEXT: ret;
289
285
%r = frem <2 x float > %a , %b
290
286
ret <2 x float > %r
@@ -468,7 +464,7 @@ define <2 x float> @test_fdiv_ftz(<2 x float> %a, <2 x float> %b) #2 {
468
464
; CHECK-LABEL: test_fdiv_ftz(
469
465
; CHECK: {
470
466
; CHECK-NEXT: .reg .f32 %f<7>;
471
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
467
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
472
468
; CHECK-EMPTY:
473
469
; CHECK-NEXT: // %bb.0:
474
470
; CHECK-NEXT: ld.param.b64 %rd2, [test_fdiv_ftz_param_1];
@@ -477,8 +473,7 @@ define <2 x float> @test_fdiv_ftz(<2 x float> %a, <2 x float> %b) #2 {
477
473
; CHECK-NEXT: mov.b64 {%f3, %f4}, %rd1;
478
474
; CHECK-NEXT: div.rn.ftz.f32 %f5, %f4, %f2;
479
475
; CHECK-NEXT: div.rn.ftz.f32 %f6, %f3, %f1;
480
- ; CHECK-NEXT: mov.b64 %rd3, {%f6, %f5};
481
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
476
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f6, %f5};
482
477
; CHECK-NEXT: ret;
483
478
%r = fdiv <2 x float > %a , %b
484
479
ret <2 x float > %r
@@ -489,7 +484,7 @@ define <2 x float> @test_frem_ftz(<2 x float> %a, <2 x float> %b) #2 {
489
484
; CHECK: {
490
485
; CHECK-NEXT: .reg .pred %p<3>;
491
486
; CHECK-NEXT: .reg .f32 %f<15>;
492
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
487
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
493
488
; CHECK-EMPTY:
494
489
; CHECK-NEXT: // %bb.0:
495
490
; CHECK-NEXT: ld.param.b64 %rd2, [test_frem_ftz_param_1];
@@ -508,8 +503,7 @@ define <2 x float> @test_frem_ftz(<2 x float> %a, <2 x float> %b) #2 {
508
503
; CHECK-NEXT: sub.ftz.f32 %f13, %f3, %f12;
509
504
; CHECK-NEXT: testp.infinite.f32 %p2, %f1;
510
505
; CHECK-NEXT: selp.f32 %f14, %f3, %f13, %p2;
511
- ; CHECK-NEXT: mov.b64 %rd3, {%f14, %f9};
512
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
506
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f14, %f9};
513
507
; CHECK-NEXT: ret;
514
508
%r = frem <2 x float > %a , %b
515
509
ret <2 x float > %r
@@ -699,7 +693,7 @@ define <2 x float> @test_select_cc(<2 x float> %a, <2 x float> %b, <2 x float> %
699
693
; CHECK: {
700
694
; CHECK-NEXT: .reg .pred %p<3>;
701
695
; CHECK-NEXT: .reg .f32 %f<11>;
702
- ; CHECK-NEXT: .reg .b64 %rd<6 >;
696
+ ; CHECK-NEXT: .reg .b64 %rd<5 >;
703
697
; CHECK-EMPTY:
704
698
; CHECK-NEXT: // %bb.0:
705
699
; CHECK-NEXT: ld.param.b64 %rd4, [test_select_cc_param_3];
@@ -714,8 +708,7 @@ define <2 x float> @test_select_cc(<2 x float> %a, <2 x float> %b, <2 x float> %
714
708
; CHECK-NEXT: mov.b64 {%f7, %f8}, %rd1;
715
709
; CHECK-NEXT: selp.f32 %f9, %f8, %f6, %p2;
716
710
; CHECK-NEXT: selp.f32 %f10, %f7, %f5, %p1;
717
- ; CHECK-NEXT: mov.b64 %rd5, {%f10, %f9};
718
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd5;
711
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f10, %f9};
719
712
; CHECK-NEXT: ret;
720
713
%cc = fcmp une <2 x float > %c , %d
721
714
%r = select <2 x i1 > %cc , <2 x float > %a , <2 x float > %b
@@ -753,7 +746,7 @@ define <2 x float> @test_select_cc_f32_f64(<2 x float> %a, <2 x float> %b, <2 x
753
746
; CHECK: {
754
747
; CHECK-NEXT: .reg .pred %p<3>;
755
748
; CHECK-NEXT: .reg .f32 %f<7>;
756
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
749
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
757
750
; CHECK-NEXT: .reg .f64 %fd<5>;
758
751
; CHECK-EMPTY:
759
752
; CHECK-NEXT: // %bb.0:
@@ -767,8 +760,7 @@ define <2 x float> @test_select_cc_f32_f64(<2 x float> %a, <2 x float> %b, <2 x
767
760
; CHECK-NEXT: mov.b64 {%f3, %f4}, %rd1;
768
761
; CHECK-NEXT: selp.f32 %f5, %f4, %f2, %p2;
769
762
; CHECK-NEXT: selp.f32 %f6, %f3, %f1, %p1;
770
- ; CHECK-NEXT: mov.b64 %rd3, {%f6, %f5};
771
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
763
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f6, %f5};
772
764
; CHECK-NEXT: ret;
773
765
%cc = fcmp une <2 x double > %c , %d
774
766
%r = select <2 x i1 > %cc , <2 x float > %a , <2 x float > %b
@@ -1186,14 +1178,12 @@ define <2 x float> @test_uitofp_2xi32(<2 x i32> %a) #0 {
1186
1178
; CHECK: {
1187
1179
; CHECK-NEXT: .reg .b32 %r<3>;
1188
1180
; CHECK-NEXT: .reg .f32 %f<3>;
1189
- ; CHECK-NEXT: .reg .b64 %rd<2>;
1190
1181
; CHECK-EMPTY:
1191
1182
; CHECK-NEXT: // %bb.0:
1192
1183
; CHECK-NEXT: ld.param.v2.u32 {%r1, %r2}, [test_uitofp_2xi32_param_0];
1193
1184
; CHECK-NEXT: cvt.rn.f32.u32 %f1, %r2;
1194
1185
; CHECK-NEXT: cvt.rn.f32.u32 %f2, %r1;
1195
- ; CHECK-NEXT: mov.b64 %rd1, {%f2, %f1};
1196
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd1;
1186
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f2, %f1};
1197
1187
; CHECK-NEXT: ret;
1198
1188
%r = uitofp <2 x i32 > %a to <2 x float >
1199
1189
ret <2 x float > %r
@@ -1203,14 +1193,13 @@ define <2 x float> @test_uitofp_2xi64(<2 x i64> %a) #0 {
1203
1193
; CHECK-LABEL: test_uitofp_2xi64(
1204
1194
; CHECK: {
1205
1195
; CHECK-NEXT: .reg .f32 %f<3>;
1206
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
1196
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
1207
1197
; CHECK-EMPTY:
1208
1198
; CHECK-NEXT: // %bb.0:
1209
1199
; CHECK-NEXT: ld.param.v2.u64 {%rd1, %rd2}, [test_uitofp_2xi64_param_0];
1210
1200
; CHECK-NEXT: cvt.rn.f32.u64 %f1, %rd2;
1211
1201
; CHECK-NEXT: cvt.rn.f32.u64 %f2, %rd1;
1212
- ; CHECK-NEXT: mov.b64 %rd3, {%f2, %f1};
1213
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
1202
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f2, %f1};
1214
1203
; CHECK-NEXT: ret;
1215
1204
%r = uitofp <2 x i64 > %a to <2 x float >
1216
1205
ret <2 x float > %r
@@ -1221,14 +1210,12 @@ define <2 x float> @test_sitofp_2xi32(<2 x i32> %a) #0 {
1221
1210
; CHECK: {
1222
1211
; CHECK-NEXT: .reg .b32 %r<3>;
1223
1212
; CHECK-NEXT: .reg .f32 %f<3>;
1224
- ; CHECK-NEXT: .reg .b64 %rd<2>;
1225
1213
; CHECK-EMPTY:
1226
1214
; CHECK-NEXT: // %bb.0:
1227
1215
; CHECK-NEXT: ld.param.v2.u32 {%r1, %r2}, [test_sitofp_2xi32_param_0];
1228
1216
; CHECK-NEXT: cvt.rn.f32.s32 %f1, %r2;
1229
1217
; CHECK-NEXT: cvt.rn.f32.s32 %f2, %r1;
1230
- ; CHECK-NEXT: mov.b64 %rd1, {%f2, %f1};
1231
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd1;
1218
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f2, %f1};
1232
1219
; CHECK-NEXT: ret;
1233
1220
%r = sitofp <2 x i32 > %a to <2 x float >
1234
1221
ret <2 x float > %r
@@ -1238,14 +1225,13 @@ define <2 x float> @test_sitofp_2xi64(<2 x i64> %a) #0 {
1238
1225
; CHECK-LABEL: test_sitofp_2xi64(
1239
1226
; CHECK: {
1240
1227
; CHECK-NEXT: .reg .f32 %f<3>;
1241
- ; CHECK-NEXT: .reg .b64 %rd<4 >;
1228
+ ; CHECK-NEXT: .reg .b64 %rd<3 >;
1242
1229
; CHECK-EMPTY:
1243
1230
; CHECK-NEXT: // %bb.0:
1244
1231
; CHECK-NEXT: ld.param.v2.u64 {%rd1, %rd2}, [test_sitofp_2xi64_param_0];
1245
1232
; CHECK-NEXT: cvt.rn.f32.s64 %f1, %rd2;
1246
1233
; CHECK-NEXT: cvt.rn.f32.s64 %f2, %rd1;
1247
- ; CHECK-NEXT: mov.b64 %rd3, {%f2, %f1};
1248
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd3;
1234
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f2, %f1};
1249
1235
; CHECK-NEXT: ret;
1250
1236
%r = sitofp <2 x i64 > %a to <2 x float >
1251
1237
ret <2 x float > %r
@@ -1276,15 +1262,13 @@ define <2 x float> @test_fptrunc_2xdouble(<2 x double> %a) #0 {
1276
1262
; CHECK-LABEL: test_fptrunc_2xdouble(
1277
1263
; CHECK: {
1278
1264
; CHECK-NEXT: .reg .f32 %f<3>;
1279
- ; CHECK-NEXT: .reg .b64 %rd<2>;
1280
1265
; CHECK-NEXT: .reg .f64 %fd<3>;
1281
1266
; CHECK-EMPTY:
1282
1267
; CHECK-NEXT: // %bb.0:
1283
1268
; CHECK-NEXT: ld.param.v2.f64 {%fd1, %fd2}, [test_fptrunc_2xdouble_param_0];
1284
1269
; CHECK-NEXT: cvt.rn.f32.f64 %f1, %fd2;
1285
1270
; CHECK-NEXT: cvt.rn.f32.f64 %f2, %fd1;
1286
- ; CHECK-NEXT: mov.b64 %rd1, {%f2, %f1};
1287
- ; CHECK-NEXT: st.param.b64 [func_retval0], %rd1;
1271
+ ; CHECK-NEXT: st.param.v2.f32 [func_retval0], {%f2, %f1};
1288
1272
; CHECK-NEXT: ret;
1289
1273
%r = fptrunc <2 x double > %a to <2 x float >
1290
1274
ret <2 x float > %r
0 commit comments