@@ -11,9 +11,10 @@ body: |
11
11
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
12
12
; CHECK-NEXT: {{ $}}
13
13
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
14
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
15
- ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
16
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND]](s64)
14
+ ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)
15
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
16
+ ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[C]](s32), [[UV1]](s32)
17
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)
17
18
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
18
19
%0:_(s64) = COPY $sgpr0_sgpr1
19
20
%1:_(s64) = G_CONSTANT i64 -4294967296
@@ -31,9 +32,10 @@ body: |
31
32
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
32
33
; CHECK-NEXT: {{ $}}
33
34
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
34
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
35
- ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
36
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND]](s64)
35
+ ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)
36
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
37
+ ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[C]](s32), [[UV1]](s32)
38
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)
37
39
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
38
40
%0:_(s64) = COPY $sgpr0_sgpr1
39
41
%1:_(s64) = G_CONSTANT i64 -4294967296
@@ -52,9 +54,9 @@ body: |
52
54
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
53
55
; CHECK-NEXT: {{ $}}
54
56
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
55
- ; CHECK-NEXT: [[C :%[0-9]+]]:_(s64 ) = G_CONSTANT i64 4294967295
56
- ; CHECK-NEXT: [[AND :%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
57
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND ]](s64)
57
+ ; CHECK-NEXT: [[TRUNC :%[0-9]+]]:_(s32 ) = G_TRUNC [[COPY]](s64)
58
+ ; CHECK-NEXT: [[ZEXT :%[0-9]+]]:_(s64) = G_ZEXT [[TRUNC]](s32)
59
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[ZEXT ]](s64)
58
60
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
59
61
%0:_(s64) = COPY $sgpr0_sgpr1
60
62
%1:_(s64) = G_CONSTANT i64 4294967295
@@ -72,9 +74,9 @@ body: |
72
74
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
73
75
; CHECK-NEXT: {{ $}}
74
76
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
75
- ; CHECK-NEXT: [[C :%[0-9]+]]:_(s64 ) = G_CONSTANT i64 4294967295
76
- ; CHECK-NEXT: [[AND :%[0-9]+]]:_(s64) = G_AND [[COPY]], [[C]]
77
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[AND ]](s64)
77
+ ; CHECK-NEXT: [[TRUNC :%[0-9]+]]:_(s32 ) = G_TRUNC [[COPY]](s64)
78
+ ; CHECK-NEXT: [[ZEXT :%[0-9]+]]:_(s64) = G_ZEXT [[TRUNC]](s32)
79
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[ZEXT ]](s64)
78
80
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
79
81
%0:_(s64) = COPY $sgpr0_sgpr1
80
82
%1:_(s64) = G_CONSTANT i64 4294967295
@@ -91,14 +93,10 @@ body: |
91
93
; CHECK-LABEL: name: test_and_mask_hi_with_merge_unmerge
92
94
; CHECK: liveins: $sgpr0, $sgpr1, $sgpr2
93
95
; CHECK-NEXT: {{ $}}
94
- ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
95
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1
96
- ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32)
97
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
98
- ; CHECK-NEXT: [[AND:%[0-9]+]]:_(s64) = G_AND [[MV]], [[C]]
99
- ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[AND]](s64)
100
- ; CHECK-NEXT: $sgpr0 = COPY [[UV]](s32)
101
- ; CHECK-NEXT: $sgpr1 = COPY [[UV1]](s32)
96
+ ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr1
97
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
98
+ ; CHECK-NEXT: $sgpr0 = COPY [[C]](s32)
99
+ ; CHECK-NEXT: $sgpr1 = COPY [[COPY]](s32)
102
100
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1
103
101
%0:_(s32) = COPY $sgpr0
104
102
%1:_(s32) = COPY $sgpr1
@@ -140,9 +138,10 @@ body: |
140
138
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
141
139
; CHECK-NEXT: {{ $}}
142
140
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
143
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
144
- ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
145
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
141
+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
142
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
143
+ ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[TRUNC]](s32), [[C]](s32)
144
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)
146
145
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
147
146
%0:_(s64) = COPY $sgpr0_sgpr1
148
147
%1:_(s64) = G_CONSTANT i64 -4294967296
@@ -160,9 +159,10 @@ body: |
160
159
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
161
160
; CHECK-NEXT: {{ $}}
162
161
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
163
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
164
- ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
165
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
162
+ ; CHECK-NEXT: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s64)
163
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
164
+ ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[TRUNC]](s32), [[C]](s32)
165
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)
166
166
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
167
167
%0:_(s64) = COPY $sgpr0_sgpr1
168
168
%1:_(s64) = G_CONSTANT i64 -4294967296
@@ -181,9 +181,10 @@ body: |
181
181
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
182
182
; CHECK-NEXT: {{ $}}
183
183
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
184
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
185
- ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
186
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
184
+ ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)
185
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
186
+ ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[C]](s32), [[UV1]](s32)
187
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)
187
188
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
188
189
%0:_(s64) = COPY $sgpr0_sgpr1
189
190
%1:_(s64) = G_CONSTANT i64 4294967295
@@ -201,9 +202,10 @@ body: |
201
202
; CHECK: liveins: $sgpr0_sgpr1, $sgpr2
202
203
; CHECK-NEXT: {{ $}}
203
204
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $sgpr0_sgpr1
204
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 4294967295
205
- ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[COPY]], [[C]]
206
- ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[OR]](s64)
205
+ ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[COPY]](s64)
206
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
207
+ ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[C]](s32), [[UV1]](s32)
208
+ ; CHECK-NEXT: $sgpr0_sgpr1 = COPY [[MV]](s64)
207
209
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0_sgpr1
208
210
%0:_(s64) = COPY $sgpr0_sgpr1
209
211
%1:_(s64) = G_CONSTANT i64 4294967295
@@ -221,13 +223,9 @@ body: |
221
223
; CHECK: liveins: $sgpr0, $sgpr1, $sgpr2
222
224
; CHECK-NEXT: {{ $}}
223
225
; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0
224
- ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $sgpr1
225
- ; CHECK-NEXT: [[MV:%[0-9]+]]:_(s64) = G_MERGE_VALUES [[COPY]](s32), [[COPY1]](s32)
226
- ; CHECK-NEXT: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 -4294967296
227
- ; CHECK-NEXT: [[OR:%[0-9]+]]:_(s64) = G_OR [[MV]], [[C]]
228
- ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[OR]](s64)
229
- ; CHECK-NEXT: $sgpr0 = COPY [[UV]](s32)
230
- ; CHECK-NEXT: $sgpr1 = COPY [[UV1]](s32)
226
+ ; CHECK-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
227
+ ; CHECK-NEXT: $sgpr0 = COPY [[COPY]](s32)
228
+ ; CHECK-NEXT: $sgpr1 = COPY [[C]](s32)
231
229
; CHECK-NEXT: SI_RETURN_TO_EPILOG implicit $sgpr0, implicit $sgpr1
232
230
%0:_(s32) = COPY $sgpr0
233
231
%1:_(s32) = COPY $sgpr1
0 commit comments