@@ -24,6 +24,7 @@ body: |
24
24
; GFX8-NEXT: [[V_MAX_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 [[V_MIN_I16_e64_]], [[COPY2]], implicit $exec
25
25
; GFX8-NEXT: [[V_MIN_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 [[V_MAX_I16_e64_]], [[V_MAX_I16_e64_1]], implicit $exec
26
26
; GFX8-NEXT: S_ENDPGM 0, implicit [[V_MIN_I16_e64_1]]
27
+ ;
27
28
; GFX9-LABEL: name: smed3_s16_vvv
28
29
; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
29
30
; GFX9-NEXT: {{ $}}
@@ -32,14 +33,15 @@ body: |
32
33
; GFX9-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
33
34
; GFX9-NEXT: [[V_MED3_I16_e64_:%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
34
35
; GFX9-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_]]
36
+ ;
35
37
; GFX11-LABEL: name: smed3_s16_vvv
36
38
; GFX11: liveins: $vgpr0, $vgpr1, $vgpr2
37
39
; GFX11-NEXT: {{ $}}
38
40
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
39
41
; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
40
42
; GFX11-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
41
- ; GFX11-NEXT: [[V_MED3_I16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
42
- ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_ ]]
43
+ ; GFX11-NEXT: [[V_MED3_I16_fake16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
44
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_fake16_e64_ ]]
43
45
%0:vgpr(s32) = COPY $vgpr0
44
46
%1:vgpr(s32) = COPY $vgpr1
45
47
%2:vgpr(s32) = COPY $vgpr2
@@ -75,6 +77,7 @@ body: |
75
77
; GFX8-NEXT: [[V_MAX_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 [[V_MIN_I16_e64_]], [[COPY2]], implicit $exec
76
78
; GFX8-NEXT: [[V_MIN_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 [[V_MAX_I16_e64_]], [[V_MAX_I16_e64_1]], implicit $exec
77
79
; GFX8-NEXT: S_ENDPGM 0, implicit [[V_MIN_I16_e64_1]], implicit [[V_MAX_I16_e64_]]
80
+ ;
78
81
; GFX9-LABEL: name: smed3_s16_vvv_multiuse0
79
82
; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
80
83
; GFX9-NEXT: {{ $}}
@@ -84,15 +87,16 @@ body: |
84
87
; GFX9-NEXT: [[V_MAX_I16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $exec
85
88
; GFX9-NEXT: [[V_MED3_I16_e64_:%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
86
89
; GFX9-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_]], implicit [[V_MAX_I16_e64_]]
90
+ ;
87
91
; GFX11-LABEL: name: smed3_s16_vvv_multiuse0
88
92
; GFX11: liveins: $vgpr0, $vgpr1, $vgpr2
89
93
; GFX11-NEXT: {{ $}}
90
94
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
91
95
; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
92
96
; GFX11-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
93
97
; GFX11-NEXT: [[V_MAX_I16_fake16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec
94
- ; GFX11-NEXT: [[V_MED3_I16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
95
- ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_ ]], implicit [[V_MAX_I16_fake16_e64_]]
98
+ ; GFX11-NEXT: [[V_MED3_I16_fake16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
99
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_fake16_e64_ ]], implicit [[V_MAX_I16_fake16_e64_]]
96
100
%0:vgpr(s32) = COPY $vgpr0
97
101
%1:vgpr(s32) = COPY $vgpr1
98
102
%2:vgpr(s32) = COPY $vgpr2
@@ -128,6 +132,7 @@ body: |
128
132
; GFX8-NEXT: [[V_MAX_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 [[V_MIN_I16_e64_]], [[COPY2]], implicit $exec
129
133
; GFX8-NEXT: [[V_MIN_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 [[V_MAX_I16_e64_]], [[V_MAX_I16_e64_1]], implicit $exec
130
134
; GFX8-NEXT: S_ENDPGM 0, implicit [[V_MIN_I16_e64_1]], implicit [[V_MIN_I16_e64_]]
135
+ ;
131
136
; GFX9-LABEL: name: smed3_s16_vvv_multiuse1
132
137
; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
133
138
; GFX9-NEXT: {{ $}}
@@ -137,15 +142,16 @@ body: |
137
142
; GFX9-NEXT: [[V_MIN_I16_e64_:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $exec
138
143
; GFX9-NEXT: [[V_MED3_I16_e64_:%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
139
144
; GFX9-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_]], implicit [[V_MIN_I16_e64_]]
145
+ ;
140
146
; GFX11-LABEL: name: smed3_s16_vvv_multiuse1
141
147
; GFX11: liveins: $vgpr0, $vgpr1, $vgpr2
142
148
; GFX11-NEXT: {{ $}}
143
149
; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0
144
150
; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1
145
151
; GFX11-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
146
152
; GFX11-NEXT: [[V_MIN_I16_fake16_e64_:%[0-9]+]]:vgpr_32 = V_MIN_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec
147
- ; GFX11-NEXT: [[V_MED3_I16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
148
- ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_ ]], implicit [[V_MIN_I16_fake16_e64_]]
153
+ ; GFX11-NEXT: [[V_MED3_I16_fake16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
154
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_fake16_e64_ ]], implicit [[V_MIN_I16_fake16_e64_]]
149
155
%0:vgpr(s32) = COPY $vgpr0
150
156
%1:vgpr(s32) = COPY $vgpr1
151
157
%2:vgpr(s32) = COPY $vgpr2
@@ -181,6 +187,7 @@ body: |
181
187
; GFX8-NEXT: [[V_MAX_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 [[V_MIN_I16_e64_]], [[COPY2]], implicit $exec
182
188
; GFX8-NEXT: [[V_MIN_I16_e64_1:%[0-9]+]]:vgpr_32 = V_MIN_I16_e64 [[V_MAX_I16_e64_]], [[V_MAX_I16_e64_1]], implicit $exec
183
189
; GFX8-NEXT: S_ENDPGM 0, implicit [[V_MIN_I16_e64_1]], implicit [[V_MAX_I16_e64_1]]
190
+ ;
184
191
; GFX9-LABEL: name: smed3_s16_vvv_multiuse2
185
192
; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2
186
193
; GFX9-NEXT: {{ $}}
@@ -191,6 +198,7 @@ body: |
191
198
; GFX9-NEXT: [[V_MAX_I16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_I16_e64 [[V_MIN_I16_e64_]], [[COPY2]], implicit $exec
192
199
; GFX9-NEXT: [[V_MED3_I16_e64_:%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
193
200
; GFX9-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_]], implicit [[V_MAX_I16_e64_]]
201
+ ;
194
202
; GFX11-LABEL: name: smed3_s16_vvv_multiuse2
195
203
; GFX11: liveins: $vgpr0, $vgpr1, $vgpr2
196
204
; GFX11-NEXT: {{ $}}
@@ -199,8 +207,8 @@ body: |
199
207
; GFX11-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2
200
208
; GFX11-NEXT: [[V_MIN_I16_fake16_e64_:%[0-9]+]]:vgpr_32 = V_MIN_I16_fake16_e64 [[COPY]], [[COPY1]], implicit $exec
201
209
; GFX11-NEXT: [[V_MAX_I16_fake16_e64_:%[0-9]+]]:vgpr_32 = V_MAX_I16_fake16_e64 [[V_MIN_I16_fake16_e64_]], [[COPY2]], implicit $exec
202
- ; GFX11-NEXT: [[V_MED3_I16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
203
- ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_e64_ ]], implicit [[V_MAX_I16_fake16_e64_]]
210
+ ; GFX11-NEXT: [[V_MED3_I16_fake16_e64_ :%[0-9]+]]:vgpr_32 = V_MED3_I16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $exec
211
+ ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_MED3_I16_fake16_e64_ ]], implicit [[V_MAX_I16_fake16_e64_]]
204
212
%0:vgpr(s32) = COPY $vgpr0
205
213
%1:vgpr(s32) = COPY $vgpr1
206
214
%2:vgpr(s32) = COPY $vgpr2
0 commit comments