@@ -16,8 +16,8 @@ define void @test_v2f32(<2 x float> %input, ptr %output) {
16
16
; CHECK-NEXT: ld.param.b64 %rd1, [test_v2f32_param_0];
17
17
; CHECK-NEXT: { // callseq 0, 0
18
18
; CHECK-NEXT: .param .align 8 .b8 param0[8];
19
- ; CHECK-NEXT: st.param.b64 [param0], %rd1;
20
19
; CHECK-NEXT: .param .align 8 .b8 retval0[8];
20
+ ; CHECK-NEXT: st.param.b64 [param0], %rd1;
21
21
; CHECK-NEXT: call.uni (retval0), barv, (param0);
22
22
; CHECK-NEXT: ld.param.b64 %rd2, [retval0];
23
23
; CHECK-NEXT: } // callseq 0
@@ -32,24 +32,24 @@ define void @test_v2f32(<2 x float> %input, ptr %output) {
32
32
define void @test_v3f32 (<3 x float > %input , ptr %output ) {
33
33
; CHECK-LABEL: test_v3f32(
34
34
; 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 >;
37
37
; CHECK-EMPTY:
38
38
; 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];
41
41
; CHECK-NEXT: { // callseq 1, 0
42
42
; 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;
45
43
; 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;
46
46
; 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];
49
49
; 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 ;
53
53
; CHECK-NEXT: ret;
54
54
%call = tail call <3 x float > @barv3 (<3 x float > %input )
55
55
; 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) {
68
68
; CHECK-NEXT: ld.param.b32 %r2, [test_a2f32_param_0+4];
69
69
; CHECK-NEXT: { // callseq 2, 0
70
70
; 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;
73
71
; 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;
74
74
; 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];
77
77
; CHECK-NEXT: } // callseq 2
78
78
; 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 ;
81
81
; CHECK-NEXT: ret;
82
82
%call = tail call [2 x float ] @bara ([2 x float ] %input )
83
83
store [2 x float ] %call , ptr %output , align 4
@@ -95,16 +95,16 @@ define void @test_s2f32({float, float} %input, ptr %output) {
95
95
; CHECK-NEXT: ld.param.b32 %r2, [test_s2f32_param_0+4];
96
96
; CHECK-NEXT: { // callseq 3, 0
97
97
; 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;
100
98
; 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;
101
101
; 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];
104
104
; CHECK-NEXT: } // callseq 3
105
105
; 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 ;
108
108
; CHECK-NEXT: ret;
109
109
%call = tail call {float , float } @bars ({float , float } %input )
110
110
store {float , float } %call , ptr %output , align 4
0 commit comments