@@ -16,8 +16,8 @@ define void @test_v2f32(<2 x float> %input, ptr %output) {
1616; CHECK-NEXT: ld.param.b64 %rd1, [test_v2f32_param_0];
1717; CHECK-NEXT: { // callseq 0, 0
1818; CHECK-NEXT: .param .align 8 .b8 param0[8];
19- ; CHECK-NEXT: st.param.b64 [param0], %rd1;
2019; CHECK-NEXT: .param .align 8 .b8 retval0[8];
20+ ; CHECK-NEXT: st.param.b64 [param0], %rd1;
2121; CHECK-NEXT: call.uni (retval0), barv, (param0);
2222; CHECK-NEXT: ld.param.b64 %rd2, [retval0];
2323; CHECK-NEXT: } // callseq 0
@@ -32,24 +32,24 @@ define void @test_v2f32(<2 x float> %input, ptr %output) {
3232define void @test_v3f32 (<3 x float > %input , ptr %output ) {
3333; CHECK-LABEL: test_v3f32(
3434; CHECK: {
35- ; CHECK-NEXT: .reg .b32 %r<10 >;
36- ; CHECK-NEXT: .reg .b64 %rd<2 >;
35+ ; CHECK-NEXT: .reg .b32 %r<4 >;
36+ ; CHECK-NEXT: .reg .b64 %rd<5 >;
3737; CHECK-EMPTY:
3838; CHECK-NEXT: // %bb.0:
39- ; CHECK-NEXT: ld.param.v2.b32 {%r1, %r2} , [test_v3f32_param_0];
40- ; CHECK-NEXT: ld.param.b32 %r3 , [test_v3f32_param_0+8];
39+ ; CHECK-NEXT: ld.param.b64 %rd1 , [test_v3f32_param_0];
40+ ; CHECK-NEXT: ld.param.b32 %r1 , [test_v3f32_param_0+8];
4141; CHECK-NEXT: { // callseq 1, 0
4242; CHECK-NEXT: .param .align 16 .b8 param0[16];
43- ; CHECK-NEXT: st.param.v2.b32 [param0], {%r1, %r2};
44- ; CHECK-NEXT: st.param.b32 [param0+8], %r3;
4543; CHECK-NEXT: .param .align 16 .b8 retval0[16];
44+ ; CHECK-NEXT: st.param.b32 [param0+8], %r1;
45+ ; CHECK-NEXT: st.param.b64 [param0], %rd1;
4646; CHECK-NEXT: call.uni (retval0), barv3, (param0);
47- ; CHECK-NEXT: ld.param.v2. b32 {%r4, %r5}, [retval0];
48- ; CHECK-NEXT: ld.param.b32 %r6 , [retval0+8 ];
47+ ; CHECK-NEXT: ld.param.b32 %r2, [retval0+8 ];
48+ ; CHECK-NEXT: ld.param.b64 %rd2 , [retval0];
4949; CHECK-NEXT: } // callseq 1
50- ; CHECK-NEXT: ld.param.b64 %rd1 , [test_v3f32_param_1];
51- ; CHECK-NEXT: st.v2. b32 [%rd1 ], {%r4, %r5} ;
52- ; CHECK-NEXT: st.b32 [%rd1+8 ], %r6 ;
50+ ; CHECK-NEXT: ld.param.b64 %rd4 , [test_v3f32_param_1];
51+ ; CHECK-NEXT: st.b32 [%rd4+8 ], %r2 ;
52+ ; CHECK-NEXT: st.b64 [%rd4 ], %rd2 ;
5353; CHECK-NEXT: ret;
5454 %call = tail call <3 x float > @barv3 (<3 x float > %input )
5555; Make sure we don't load more values than than we need to.
@@ -68,16 +68,16 @@ define void @test_a2f32([2 x float] %input, ptr %output) {
6868; CHECK-NEXT: ld.param.b32 %r2, [test_a2f32_param_0+4];
6969; CHECK-NEXT: { // callseq 2, 0
7070; CHECK-NEXT: .param .align 4 .b8 param0[8];
71- ; CHECK-NEXT: st.param.b32 [param0], %r1;
72- ; CHECK-NEXT: st.param.b32 [param0+4], %r2;
7371; CHECK-NEXT: .param .align 4 .b8 retval0[8];
72+ ; CHECK-NEXT: st.param.b32 [param0+4], %r2;
73+ ; CHECK-NEXT: st.param.b32 [param0], %r1;
7474; CHECK-NEXT: call.uni (retval0), bara, (param0);
75- ; CHECK-NEXT: ld.param.b32 %r3, [retval0];
76- ; CHECK-NEXT: ld.param.b32 %r4, [retval0+4 ];
75+ ; CHECK-NEXT: ld.param.b32 %r3, [retval0+4 ];
76+ ; CHECK-NEXT: ld.param.b32 %r4, [retval0];
7777; CHECK-NEXT: } // callseq 2
7878; CHECK-NEXT: ld.param.b64 %rd1, [test_a2f32_param_1];
79- ; CHECK-NEXT: st.b32 [%rd1+4], %r4 ;
80- ; CHECK-NEXT: st.b32 [%rd1], %r3 ;
79+ ; CHECK-NEXT: st.b32 [%rd1+4], %r3 ;
80+ ; CHECK-NEXT: st.b32 [%rd1], %r4 ;
8181; CHECK-NEXT: ret;
8282 %call = tail call [2 x float ] @bara ([2 x float ] %input )
8383 store [2 x float ] %call , ptr %output , align 4
@@ -95,16 +95,16 @@ define void @test_s2f32({float, float} %input, ptr %output) {
9595; CHECK-NEXT: ld.param.b32 %r2, [test_s2f32_param_0+4];
9696; CHECK-NEXT: { // callseq 3, 0
9797; CHECK-NEXT: .param .align 4 .b8 param0[8];
98- ; CHECK-NEXT: st.param.b32 [param0], %r1;
99- ; CHECK-NEXT: st.param.b32 [param0+4], %r2;
10098; CHECK-NEXT: .param .align 4 .b8 retval0[8];
99+ ; CHECK-NEXT: st.param.b32 [param0+4], %r2;
100+ ; CHECK-NEXT: st.param.b32 [param0], %r1;
101101; CHECK-NEXT: call.uni (retval0), bars, (param0);
102- ; CHECK-NEXT: ld.param.b32 %r3, [retval0];
103- ; CHECK-NEXT: ld.param.b32 %r4, [retval0+4 ];
102+ ; CHECK-NEXT: ld.param.b32 %r3, [retval0+4 ];
103+ ; CHECK-NEXT: ld.param.b32 %r4, [retval0];
104104; CHECK-NEXT: } // callseq 3
105105; CHECK-NEXT: ld.param.b64 %rd1, [test_s2f32_param_1];
106- ; CHECK-NEXT: st.b32 [%rd1+4], %r4 ;
107- ; CHECK-NEXT: st.b32 [%rd1], %r3 ;
106+ ; CHECK-NEXT: st.b32 [%rd1+4], %r3 ;
107+ ; CHECK-NEXT: st.b32 [%rd1], %r4 ;
108108; CHECK-NEXT: ret;
109109 %call = tail call {float , float } @bars ({float , float } %input )
110110 store {float , float } %call , ptr %output , align 4
0 commit comments