1111define dso_local i32 @variadics1 (i32 noundef %first , ...) {
1212; CHECK-PTX-LABEL: variadics1(
1313; CHECK-PTX: {
14- ; CHECK-PTX-NEXT: .reg .b32 %r<11 >;
15- ; CHECK-PTX-NEXT: .reg .b64 %rd<11 >;
14+ ; CHECK-PTX-NEXT: .reg .b32 %r<12 >;
15+ ; CHECK-PTX-NEXT: .reg .b64 %rd<8 >;
1616; CHECK-PTX-NEXT: .reg .f64 %fd<7>;
1717; CHECK-PTX-EMPTY:
1818; CHECK-PTX-NEXT: // %bb.0: // %entry
@@ -26,23 +26,21 @@ define dso_local i32 @variadics1(i32 noundef %first, ...) {
2626; CHECK-PTX-NEXT: add.s32 %r7, %r5, %r6;
2727; CHECK-PTX-NEXT: add.s64 %rd2, %rd1, 19;
2828; CHECK-PTX-NEXT: and.b64 %rd3, %rd2, -8;
29- ; CHECK-PTX-NEXT: ld.u64 %rd4, [%rd3];
30- ; CHECK-PTX-NEXT: cvt.u64.u32 %rd5, %r7;
31- ; CHECK-PTX-NEXT: add.s64 %rd6, %rd5, %rd4;
32- ; CHECK-PTX-NEXT: cvt.u32.u64 %r8, %rd6;
33- ; CHECK-PTX-NEXT: add.s64 %rd7, %rd3, 15;
34- ; CHECK-PTX-NEXT: and.b64 %rd8, %rd7, -8;
35- ; CHECK-PTX-NEXT: ld.f64 %fd1, [%rd8];
36- ; CHECK-PTX-NEXT: cvt.rn.f64.s32 %fd2, %r8;
29+ ; CHECK-PTX-NEXT: ld.u32 %r8, [%rd3];
30+ ; CHECK-PTX-NEXT: add.s32 %r9, %r7, %r8;
31+ ; CHECK-PTX-NEXT: add.s64 %rd4, %rd3, 15;
32+ ; CHECK-PTX-NEXT: and.b64 %rd5, %rd4, -8;
33+ ; CHECK-PTX-NEXT: ld.f64 %fd1, [%rd5];
34+ ; CHECK-PTX-NEXT: cvt.rn.f64.s32 %fd2, %r9;
3735; CHECK-PTX-NEXT: add.rn.f64 %fd3, %fd2, %fd1;
38- ; CHECK-PTX-NEXT: cvt.rzi.s32.f64 %r9 , %fd3;
39- ; CHECK-PTX-NEXT: add.s64 %rd9 , %rd8 , 15;
40- ; CHECK-PTX-NEXT: and.b64 %rd10 , %rd9 , -8;
41- ; CHECK-PTX-NEXT: ld.f64 %fd4, [%rd10 ];
42- ; CHECK-PTX-NEXT: cvt.rn.f64.s32 %fd5, %r9 ;
36+ ; CHECK-PTX-NEXT: cvt.rzi.s32.f64 %r10 , %fd3;
37+ ; CHECK-PTX-NEXT: add.s64 %rd6 , %rd5 , 15;
38+ ; CHECK-PTX-NEXT: and.b64 %rd7 , %rd6 , -8;
39+ ; CHECK-PTX-NEXT: ld.f64 %fd4, [%rd7 ];
40+ ; CHECK-PTX-NEXT: cvt.rn.f64.s32 %fd5, %r10 ;
4341; CHECK-PTX-NEXT: add.rn.f64 %fd6, %fd5, %fd4;
44- ; CHECK-PTX-NEXT: cvt.rzi.s32.f64 %r10 , %fd6;
45- ; CHECK-PTX-NEXT: st.param.b32 [func_retval0+0], %r10 ;
42+ ; CHECK-PTX-NEXT: cvt.rzi.s32.f64 %r11 , %fd6;
43+ ; CHECK-PTX-NEXT: st.param.b32 [func_retval0+0], %r11 ;
4644; CHECK-PTX-NEXT: ret;
4745entry:
4846 %vlist = alloca ptr , align 8
@@ -152,8 +150,8 @@ define dso_local i32 @variadics2(i32 noundef %first, ...) {
152150; CHECK-PTX-NEXT: .reg .b64 %SP;
153151; CHECK-PTX-NEXT: .reg .b64 %SPL;
154152; CHECK-PTX-NEXT: .reg .b16 %rs<6>;
155- ; CHECK-PTX-NEXT: .reg .b32 %r<7 >;
156- ; CHECK-PTX-NEXT: .reg .b64 %rd<11 >;
153+ ; CHECK-PTX-NEXT: .reg .b32 %r<8 >;
154+ ; CHECK-PTX-NEXT: .reg .b64 %rd<8 >;
157155; CHECK-PTX-EMPTY:
158156; CHECK-PTX-NEXT: // %bb.0: // %entry
159157; CHECK-PTX-NEXT: mov.u64 %SPL, __local_depot2;
@@ -175,13 +173,11 @@ define dso_local i32 @variadics2(i32 noundef %first, ...) {
175173; CHECK-PTX-NEXT: shl.b16 %rs4, %rs3, 8;
176174; CHECK-PTX-NEXT: or.b16 %rs5, %rs4, %rs2;
177175; CHECK-PTX-NEXT: st.u16 [%SP+0], %rs5;
178- ; CHECK-PTX-NEXT: ld.u64 %rd8, [%rd3+8];
179- ; CHECK-PTX-NEXT: add.s32 %r4, %r1, %r2;
180- ; CHECK-PTX-NEXT: add.s32 %r5, %r4, %r3;
181- ; CHECK-PTX-NEXT: cvt.u64.u32 %rd9, %r5;
182- ; CHECK-PTX-NEXT: add.s64 %rd10, %rd9, %rd8;
183- ; CHECK-PTX-NEXT: cvt.u32.u64 %r6, %rd10;
184- ; CHECK-PTX-NEXT: st.param.b32 [func_retval0+0], %r6;
176+ ; CHECK-PTX-NEXT: ld.u32 %r4, [%rd3+8];
177+ ; CHECK-PTX-NEXT: add.s32 %r5, %r1, %r2;
178+ ; CHECK-PTX-NEXT: add.s32 %r6, %r5, %r3;
179+ ; CHECK-PTX-NEXT: add.s32 %r7, %r6, %r4;
180+ ; CHECK-PTX-NEXT: st.param.b32 [func_retval0+0], %r7;
185181; CHECK-PTX-NEXT: ret;
186182entry:
187183 %vlist = alloca ptr , align 8
@@ -347,20 +343,19 @@ entry:
347343define dso_local i32 @variadics4 (ptr noundef byval (%struct.S2 ) align 8 %first , ...) {
348344; CHECK-PTX-LABEL: variadics4(
349345; CHECK-PTX: {
350- ; CHECK-PTX-NEXT: .reg .b32 %r<2 >;
351- ; CHECK-PTX-NEXT: .reg .b64 %rd<9 >;
346+ ; CHECK-PTX-NEXT: .reg .b32 %r<6 >;
347+ ; CHECK-PTX-NEXT: .reg .b64 %rd<4 >;
352348; CHECK-PTX-EMPTY:
353349; CHECK-PTX-NEXT: // %bb.0: // %entry
354350; CHECK-PTX-NEXT: ld.param.u64 %rd1, [variadics4_param_1];
355351; CHECK-PTX-NEXT: add.s64 %rd2, %rd1, 7;
356352; CHECK-PTX-NEXT: and.b64 %rd3, %rd2, -8;
357- ; CHECK-PTX-NEXT: ld.u64 %rd4, [%rd3];
358- ; CHECK-PTX-NEXT: ld.param.u64 %rd5, [variadics4_param_0];
359- ; CHECK-PTX-NEXT: ld.param.u64 %rd6, [variadics4_param_0+8];
360- ; CHECK-PTX-NEXT: add.s64 %rd7, %rd5, %rd6;
361- ; CHECK-PTX-NEXT: add.s64 %rd8, %rd7, %rd4;
362- ; CHECK-PTX-NEXT: cvt.u32.u64 %r1, %rd8;
363- ; CHECK-PTX-NEXT: st.param.b32 [func_retval0+0], %r1;
353+ ; CHECK-PTX-NEXT: ld.u32 %r1, [%rd3];
354+ ; CHECK-PTX-NEXT: ld.param.u32 %r2, [variadics4_param_0];
355+ ; CHECK-PTX-NEXT: ld.param.u32 %r3, [variadics4_param_0+8];
356+ ; CHECK-PTX-NEXT: add.s32 %r4, %r2, %r3;
357+ ; CHECK-PTX-NEXT: add.s32 %r5, %r4, %r1;
358+ ; CHECK-PTX-NEXT: st.param.b32 [func_retval0+0], %r5;
364359; CHECK-PTX-NEXT: ret;
365360entry:
366361 %vlist = alloca ptr , align 8
0 commit comments