1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=amdgcn -mcpu=gfx1010 -run-pass si-shrink-instructions -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=GFX10
8 ; GFX10-LABEL: name: mad_cvv_f32
9 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
10 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
11 ; GFX10-NEXT: [[V_MADMK_F32_:%[0-9]+]]:vgpr_32 = V_MADMK_F32 [[DEF]], 1092616192, [[DEF1]], implicit $mode, implicit $exec
12 ; GFX10-NEXT: SI_RETURN implicit [[V_MADMK_F32_]]
13 %0:vgpr_32 = IMPLICIT_DEF
14 %1:vgpr_32 = IMPLICIT_DEF
15 %2:vgpr_32 = V_MAD_F32_e64 0, 1092616192, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
23 ; GFX10-LABEL: name: mad_vcv_f32
24 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
25 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
26 ; GFX10-NEXT: [[V_MADMK_F32_:%[0-9]+]]:vgpr_32 = V_MADMK_F32 [[DEF]], 1092616192, [[DEF1]], implicit $mode, implicit $exec
27 ; GFX10-NEXT: SI_RETURN implicit [[V_MADMK_F32_]]
28 %0:vgpr_32 = IMPLICIT_DEF
29 %1:vgpr_32 = IMPLICIT_DEF
30 %2:vgpr_32 = V_MAD_F32_e64 0, %0, 0, 1092616192, 0, %1, 0, 0, implicit $mode, implicit $exec
38 ; GFX10-LABEL: name: mad_vvc_f32
39 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
40 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
41 ; GFX10-NEXT: [[V_MADAK_F32_:%[0-9]+]]:vgpr_32 = V_MADAK_F32 [[DEF]], [[DEF1]], 1092616192, implicit $mode, implicit $exec
42 ; GFX10-NEXT: SI_RETURN implicit [[V_MADAK_F32_]]
43 %0:vgpr_32 = IMPLICIT_DEF
44 %1:vgpr_32 = IMPLICIT_DEF
45 %2:vgpr_32 = V_MAD_F32_e64 0, %0, 0, %1, 0, 1092616192, 0, 0, implicit $mode, implicit $exec
53 ; GFX10-LABEL: name: mad_vsc_f32
54 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
55 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
56 ; GFX10-NEXT: [[V_MADAK_F32_:%[0-9]+]]:vgpr_32 = V_MADAK_F32 [[DEF1]], [[DEF]], 1092616192, implicit $mode, implicit $exec
57 ; GFX10-NEXT: SI_RETURN implicit [[V_MADAK_F32_]]
58 %0:vgpr_32 = IMPLICIT_DEF
59 %1:sreg_32 = IMPLICIT_DEF
60 %2:vgpr_32 = V_MAD_F32_e64 0, %0, 0, %1, 0, 1092616192, 0, 0, implicit $mode, implicit $exec
68 ; GFX10-LABEL: name: fma_cvv_f32
69 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
70 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
71 ; GFX10-NEXT: [[V_FMAMK_F32_:%[0-9]+]]:vgpr_32 = V_FMAMK_F32 [[DEF]], 1092616192, [[DEF1]], implicit $mode, implicit $exec
72 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAMK_F32_]]
73 %0:vgpr_32 = IMPLICIT_DEF
74 %1:vgpr_32 = IMPLICIT_DEF
75 %2:vgpr_32 = V_FMA_F32_e64 0, 1092616192, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
83 ; GFX10-LABEL: name: fma_vcv_f32
84 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
85 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
86 ; GFX10-NEXT: [[V_FMAMK_F32_:%[0-9]+]]:vgpr_32 = V_FMAMK_F32 [[DEF]], 1092616192, [[DEF1]], implicit $mode, implicit $exec
87 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAMK_F32_]]
88 %0:vgpr_32 = IMPLICIT_DEF
89 %1:vgpr_32 = IMPLICIT_DEF
90 %2:vgpr_32 = V_FMA_F32_e64 0, %0, 0, 1092616192, 0, %1, 0, 0, implicit $mode, implicit $exec
98 ; GFX10-LABEL: name: fma_vvc_f32
99 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
100 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
101 ; GFX10-NEXT: [[V_FMAAK_F32_:%[0-9]+]]:vgpr_32 = V_FMAAK_F32 [[DEF]], [[DEF1]], 1092616192, implicit $mode, implicit $exec
102 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAAK_F32_]]
103 %0:vgpr_32 = IMPLICIT_DEF
104 %1:vgpr_32 = IMPLICIT_DEF
105 %2:vgpr_32 = V_FMA_F32_e64 0, %0, 0, %1, 0, 1092616192, 0, 0, implicit $mode, implicit $exec
106 SI_RETURN implicit %2
113 ; GFX10-LABEL: name: fma_vsc_f32
114 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
115 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
116 ; GFX10-NEXT: [[V_FMAAK_F32_:%[0-9]+]]:vgpr_32 = V_FMAAK_F32 [[DEF1]], [[DEF]], 1092616192, implicit $mode, implicit $exec
117 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAAK_F32_]]
118 %0:vgpr_32 = IMPLICIT_DEF
119 %1:sreg_32 = IMPLICIT_DEF
120 %2:vgpr_32 = V_FMA_F32_e64 0, %0, 0, %1, 0, 1092616192, 0, 0, implicit $mode, implicit $exec
121 SI_RETURN implicit %2
128 ; GFX10-LABEL: name: mad_cvv_f16
129 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
130 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
131 ; GFX10-NEXT: [[V_MADMK_F16_:%[0-9]+]]:vgpr_32 = V_MADMK_F16 [[DEF]], 18688, [[DEF1]], implicit $mode, implicit $exec
132 ; GFX10-NEXT: SI_RETURN implicit [[V_MADMK_F16_]]
133 %0:vgpr_32 = IMPLICIT_DEF
134 %1:vgpr_32 = IMPLICIT_DEF
135 %2:vgpr_32 = V_MAD_F16_e64 0, 18688, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
136 SI_RETURN implicit %2
143 ; GFX10-LABEL: name: mad_vcv_f16
144 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
145 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
146 ; GFX10-NEXT: [[V_MADMK_F16_:%[0-9]+]]:vgpr_32 = V_MADMK_F16 [[DEF]], 18688, [[DEF1]], implicit $mode, implicit $exec
147 ; GFX10-NEXT: SI_RETURN implicit [[V_MADMK_F16_]]
148 %0:vgpr_32 = IMPLICIT_DEF
149 %1:vgpr_32 = IMPLICIT_DEF
150 %2:vgpr_32 = V_MAD_F16_e64 0, %0, 0, 18688, 0, %1, 0, 0, implicit $mode, implicit $exec
151 SI_RETURN implicit %2
158 ; GFX10-LABEL: name: mad_vvc_f16
159 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
160 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
161 ; GFX10-NEXT: [[V_MADAK_F16_:%[0-9]+]]:vgpr_32 = V_MADAK_F16 [[DEF]], [[DEF1]], 18688, implicit $mode, implicit $exec
162 ; GFX10-NEXT: SI_RETURN implicit [[V_MADAK_F16_]]
163 %0:vgpr_32 = IMPLICIT_DEF
164 %1:vgpr_32 = IMPLICIT_DEF
165 %2:vgpr_32 = V_MAD_F16_e64 0, %0, 0, %1, 0, 18688, 0, 0, implicit $mode, implicit $exec
166 SI_RETURN implicit %2
173 ; GFX10-LABEL: name: mad_vsc_f16
174 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
175 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
176 ; GFX10-NEXT: [[V_MADAK_F16_:%[0-9]+]]:vgpr_32 = V_MADAK_F16 [[DEF1]], [[DEF]], 18688, implicit $mode, implicit $exec
177 ; GFX10-NEXT: SI_RETURN implicit [[V_MADAK_F16_]]
178 %0:vgpr_32 = IMPLICIT_DEF
179 %1:sreg_32 = IMPLICIT_DEF
180 %2:vgpr_32 = V_MAD_F16_e64 0, %0, 0, %1, 0, 18688, 0, 0, implicit $mode, implicit $exec
181 SI_RETURN implicit %2
188 ; GFX10-LABEL: name: fma_cvv_f16
189 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
190 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
191 ; GFX10-NEXT: [[V_FMAMK_F16_:%[0-9]+]]:vgpr_32 = V_FMAMK_F16 [[DEF]], 18688, [[DEF1]], implicit $mode, implicit $exec
192 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAMK_F16_]]
193 %0:vgpr_32 = IMPLICIT_DEF
194 %1:vgpr_32 = IMPLICIT_DEF
195 %2:vgpr_32 = V_FMA_F16_e64 0, 18688, 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec
196 SI_RETURN implicit %2
203 ; GFX10-LABEL: name: fma_vcv_f16
204 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
205 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
206 ; GFX10-NEXT: [[V_FMAMK_F16_:%[0-9]+]]:vgpr_32 = V_FMAMK_F16 [[DEF]], 18688, [[DEF1]], implicit $mode, implicit $exec
207 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAMK_F16_]]
208 %0:vgpr_32 = IMPLICIT_DEF
209 %1:vgpr_32 = IMPLICIT_DEF
210 %2:vgpr_32 = V_FMA_F16_e64 0, %0, 0, 18688, 0, %1, 0, 0, implicit $mode, implicit $exec
211 SI_RETURN implicit %2
218 ; GFX10-LABEL: name: fma_vvc_f16
219 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
220 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
221 ; GFX10-NEXT: [[V_FMAAK_F16_:%[0-9]+]]:vgpr_32 = V_FMAAK_F16 [[DEF]], [[DEF1]], 18688, implicit $mode, implicit $exec
222 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAAK_F16_]]
223 %0:vgpr_32 = IMPLICIT_DEF
224 %1:vgpr_32 = IMPLICIT_DEF
225 %2:vgpr_32 = V_FMA_F16_e64 0, %0, 0, %1, 0, 18688, 0, 0, implicit $mode, implicit $exec
226 SI_RETURN implicit %2
233 ; GFX10-LABEL: name: fma_vsc_f16
234 ; GFX10: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
235 ; GFX10-NEXT: [[DEF1:%[0-9]+]]:sreg_32 = IMPLICIT_DEF
236 ; GFX10-NEXT: [[V_FMAAK_F16_:%[0-9]+]]:vgpr_32 = V_FMAAK_F16 [[DEF1]], [[DEF]], 18688, implicit $mode, implicit $exec
237 ; GFX10-NEXT: SI_RETURN implicit [[V_FMAAK_F16_]]
238 %0:vgpr_32 = IMPLICIT_DEF
239 %1:sreg_32 = IMPLICIT_DEF
240 %2:vgpr_32 = V_FMA_F16_e64 0, %0, 0, %1, 0, 18688, 0, 0, implicit $mode, implicit $exec
241 SI_RETURN implicit %2