1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=fiji -run-pass=si-fold-operands -o - %s | FileCheck -check-prefix=GFX8 %s 3# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx906 -run-pass=si-fold-operands -o - %s | FileCheck -check-prefix=GFX9 %s 4# RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1030 -run-pass=si-fold-operands -o - %s | FileCheck -check-prefix=GFX10 %s 5 6# Test we recognize all forms of and with mask as clearing the high bits. 7--- 8name: v_cvt_f16_f32_altmask 9tracksRegLiveness: true 10body: | 11 bb.0: 12 liveins: $vgpr0 13 ; GFX8-LABEL: name: v_cvt_f16_f32_altmask 14 ; GFX8: liveins: $vgpr0 15 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 16 ; GFX8: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec 17 ; GFX8: %smask:sreg_32 = S_MOV_B32 65535 18 ; GFX8: %vmask:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec 19 ; GFX8: $vgpr0 = COPY %op 20 ; GFX8: $vgpr1 = COPY %op 21 ; GFX8: $vgpr2 = COPY %op 22 ; GFX9-LABEL: name: v_cvt_f16_f32_altmask 23 ; GFX9: liveins: $vgpr0 24 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 25 ; GFX9: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec 26 ; GFX9: %smask:sreg_32 = S_MOV_B32 65535 27 ; GFX9: %vmask:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec 28 ; GFX9: $vgpr0 = COPY %op 29 ; GFX9: $vgpr1 = COPY %op 30 ; GFX9: $vgpr2 = COPY %op 31 ; GFX10-LABEL: name: v_cvt_f16_f32_altmask 32 ; GFX10: liveins: $vgpr0 33 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 34 ; GFX10: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec 35 ; GFX10: %and0:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 36 ; GFX10: %and1:vgpr_32 = V_AND_B32_e64 65535, %op, implicit $exec 37 ; GFX10: %and2:vgpr_32 = V_AND_B32_e64 65535, %op, implicit $exec 38 ; GFX10: $vgpr0 = COPY %and0 39 ; GFX10: $vgpr1 = COPY %and1 40 ; GFX10: $vgpr2 = COPY %and2 41 %0:vgpr_32 = COPY $vgpr0 42 %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed %0, 0, 0, implicit $mode, implicit $exec 43 %and0:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 44 %smask:sreg_32 = S_MOV_B32 65535 45 %and1:vgpr_32 = V_AND_B32_e64 %smask, %op, implicit $exec 46 %vmask:vgpr_32 = V_MOV_B32_e32 65535, implicit $exec 47 %and2:vgpr_32 = V_AND_B32_e64 %vmask, %op, implicit $exec 48 $vgpr0 = COPY %and0 49 $vgpr1 = COPY %and1 50 $vgpr2 = COPY %and2 51 52... 53 54# Test we do not assume the high bits are zero 55--- 56name: wrong_mask_value 57tracksRegLiveness: true 58body: | 59 bb.0: 60 liveins: $vgpr0 61 ; GFX8-LABEL: name: wrong_mask_value 62 ; GFX8: liveins: $vgpr0 63 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 64 ; GFX8: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec 65 ; GFX8: %mask:sreg_32 = S_MOV_B32 65534 66 ; GFX8: %and:vgpr_32 = V_AND_B32_e64 %mask, %op, implicit $exec 67 ; GFX8: $vgpr0 = COPY %and 68 ; GFX9-LABEL: name: wrong_mask_value 69 ; GFX9: liveins: $vgpr0 70 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 71 ; GFX9: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec 72 ; GFX9: %mask:sreg_32 = S_MOV_B32 65534 73 ; GFX9: %and:vgpr_32 = V_AND_B32_e64 %mask, %op, implicit $exec 74 ; GFX9: $vgpr0 = COPY %and 75 ; GFX10-LABEL: name: wrong_mask_value 76 ; GFX10: liveins: $vgpr0 77 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 78 ; GFX10: %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed [[COPY]], 0, 0, implicit $mode, implicit $exec 79 ; GFX10: %and:vgpr_32 = V_AND_B32_e64 65534, %op, implicit $exec 80 ; GFX10: $vgpr0 = COPY %and 81 %0:vgpr_32 = COPY $vgpr0 82 %op:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, killed %0, 0, 0, implicit $mode, implicit $exec 83 %mask:sreg_32 = S_MOV_B32 65534 84 %and:vgpr_32 = V_AND_B32_e64 %mask, %op, implicit $exec 85 $vgpr0 = COPY %and 86 87... 88 89--- 90name: v_cvt_f16_f32 91tracksRegLiveness: true 92body: | 93 bb.0: 94 liveins: $vgpr0 95 ; GFX8-LABEL: name: v_cvt_f16_f32 96 ; GFX8: liveins: $vgpr0 97 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 98 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 99 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[COPY]], implicit $mode, implicit $exec 100 ; GFX8: $vgpr0 = COPY %op_vop3 101 ; GFX8: $vgpr1 = COPY %op_vop1 102 ; GFX9-LABEL: name: v_cvt_f16_f32 103 ; GFX9: liveins: $vgpr0 104 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 105 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 106 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[COPY]], implicit $mode, implicit $exec 107 ; GFX9: $vgpr0 = COPY %op_vop3 108 ; GFX9: $vgpr1 = COPY %op_vop1 109 ; GFX10-LABEL: name: v_cvt_f16_f32 110 ; GFX10: liveins: $vgpr0 111 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 112 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 113 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 [[COPY]], implicit $mode, implicit $exec 114 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 115 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 116 ; GFX10: $vgpr0 = COPY %and_vop3 117 ; GFX10: $vgpr1 = COPY %and_vop1 118 %0:vgpr_32 = COPY $vgpr0 119 %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_F32_e64 0, %0, 0, 0, implicit $mode, implicit $exec 120 %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_F32_e32 %0, implicit $mode, implicit $exec 121 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 122 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 123 $vgpr0 = COPY %and_vop3 124 $vgpr1 = COPY %and_vop1 125 126... 127 128--- 129name: v_cvt_f16_u16 130tracksRegLiveness: true 131body: | 132 bb.0: 133 liveins: $vgpr0 134 ; GFX8-LABEL: name: v_cvt_f16_u16 135 ; GFX8: liveins: $vgpr0 136 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 137 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 138 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 [[COPY]], implicit $mode, implicit $exec 139 ; GFX8: $vgpr0 = COPY %op_vop3 140 ; GFX8: $vgpr1 = COPY %op_vop1 141 ; GFX9-LABEL: name: v_cvt_f16_u16 142 ; GFX9: liveins: $vgpr0 143 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 144 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 145 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 [[COPY]], implicit $mode, implicit $exec 146 ; GFX9: $vgpr0 = COPY %op_vop3 147 ; GFX9: $vgpr1 = COPY %op_vop1 148 ; GFX10-LABEL: name: v_cvt_f16_u16 149 ; GFX10: liveins: $vgpr0 150 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 151 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 152 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 [[COPY]], implicit $mode, implicit $exec 153 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 154 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 155 ; GFX10: $vgpr0 = COPY %and_vop3 156 ; GFX10: $vgpr1 = COPY %and_vop1 157 %0:vgpr_32 = COPY $vgpr0 158 %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_U16_e64 %0, 0, 0, implicit $mode, implicit $exec 159 %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_U16_e32 %0, implicit $mode, implicit $exec 160 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 161 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 162 $vgpr0 = COPY %and_vop3 163 $vgpr1 = COPY %and_vop1 164 165... 166 167--- 168name: v_cvt_f16_i16 169tracksRegLiveness: true 170body: | 171 bb.0: 172 liveins: $vgpr0 173 ; GFX8-LABEL: name: v_cvt_f16_i16 174 ; GFX8: liveins: $vgpr0 175 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 176 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 177 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 [[COPY]], implicit $mode, implicit $exec 178 ; GFX8: $vgpr0 = COPY %op_vop3 179 ; GFX8: $vgpr1 = COPY %op_vop1 180 ; GFX9-LABEL: name: v_cvt_f16_i16 181 ; GFX9: liveins: $vgpr0 182 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 183 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 184 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 [[COPY]], implicit $mode, implicit $exec 185 ; GFX9: $vgpr0 = COPY %op_vop3 186 ; GFX9: $vgpr1 = COPY %op_vop1 187 ; GFX10-LABEL: name: v_cvt_f16_i16 188 ; GFX10: liveins: $vgpr0 189 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 190 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 [[COPY]], 0, 0, implicit $mode, implicit $exec 191 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 [[COPY]], implicit $mode, implicit $exec 192 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 193 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 194 ; GFX10: $vgpr0 = COPY %and_vop3 195 ; GFX10: $vgpr1 = COPY %and_vop1 196 %0:vgpr_32 = COPY $vgpr0 197 %op_vop3:vgpr_32 = nofpexcept V_CVT_F16_I16_e64 %0, 0, 0, implicit $mode, implicit $exec 198 %op_vop1:vgpr_32 = nofpexcept V_CVT_F16_I16_e32 %0, implicit $mode, implicit $exec 199 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 200 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 201 $vgpr0 = COPY %and_vop3 202 $vgpr1 = COPY %and_vop1 203 204... 205 206--- 207name: v_rcp_f16 208tracksRegLiveness: true 209body: | 210 bb.0: 211 liveins: $vgpr0 212 ; GFX8-LABEL: name: v_rcp_f16 213 ; GFX8: liveins: $vgpr0 214 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 215 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 216 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 [[COPY]], implicit $mode, implicit $exec 217 ; GFX8: $vgpr0 = COPY %op_vop3 218 ; GFX8: $vgpr1 = COPY %op_vop1 219 ; GFX9-LABEL: name: v_rcp_f16 220 ; GFX9: liveins: $vgpr0 221 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 222 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 223 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 [[COPY]], implicit $mode, implicit $exec 224 ; GFX9: $vgpr0 = COPY %op_vop3 225 ; GFX9: $vgpr1 = COPY %op_vop1 226 ; GFX10-LABEL: name: v_rcp_f16 227 ; GFX10: liveins: $vgpr0 228 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 229 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 230 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 [[COPY]], implicit $mode, implicit $exec 231 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 232 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 233 ; GFX10: $vgpr0 = COPY %and_vop3 234 ; GFX10: $vgpr1 = COPY %and_vop1 235 %0:vgpr_32 = COPY $vgpr0 236 %op_vop3:vgpr_32 = nofpexcept V_RCP_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 237 %op_vop1:vgpr_32 = nofpexcept V_RCP_F16_e32 %0, implicit $mode, implicit $exec 238 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 239 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 240 $vgpr0 = COPY %and_vop3 241 $vgpr1 = COPY %and_vop1 242 243... 244--- 245name: v_rsq_f16 246tracksRegLiveness: true 247body: | 248 bb.0: 249 liveins: $vgpr0 250 ; GFX8-LABEL: name: v_rsq_f16 251 ; GFX8: liveins: $vgpr0 252 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 253 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 254 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 [[COPY]], implicit $mode, implicit $exec 255 ; GFX8: $vgpr0 = COPY %op_vop3 256 ; GFX8: $vgpr1 = COPY %op_vop1 257 ; GFX9-LABEL: name: v_rsq_f16 258 ; GFX9: liveins: $vgpr0 259 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 260 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 261 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 [[COPY]], implicit $mode, implicit $exec 262 ; GFX9: $vgpr0 = COPY %op_vop3 263 ; GFX9: $vgpr1 = COPY %op_vop1 264 ; GFX10-LABEL: name: v_rsq_f16 265 ; GFX10: liveins: $vgpr0 266 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 267 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 268 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 [[COPY]], implicit $mode, implicit $exec 269 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 270 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 271 ; GFX10: $vgpr0 = COPY %and_vop3 272 ; GFX10: $vgpr1 = COPY %and_vop1 273 %0:vgpr_32 = COPY $vgpr0 274 %op_vop3:vgpr_32 = nofpexcept V_RSQ_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 275 %op_vop1:vgpr_32 = nofpexcept V_RSQ_F16_e32 %0, implicit $mode, implicit $exec 276 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 277 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 278 $vgpr0 = COPY %and_vop3 279 $vgpr1 = COPY %and_vop1 280 281... 282--- 283name: v_sqrt_f16 284tracksRegLiveness: true 285body: | 286 bb.0: 287 liveins: $vgpr0 288 ; GFX8-LABEL: name: v_sqrt_f16 289 ; GFX8: liveins: $vgpr0 290 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 291 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 292 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 [[COPY]], implicit $mode, implicit $exec 293 ; GFX8: $vgpr0 = COPY %op_vop3 294 ; GFX8: $vgpr1 = COPY %op_vop1 295 ; GFX9-LABEL: name: v_sqrt_f16 296 ; GFX9: liveins: $vgpr0 297 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 298 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 299 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 [[COPY]], implicit $mode, implicit $exec 300 ; GFX9: $vgpr0 = COPY %op_vop3 301 ; GFX9: $vgpr1 = COPY %op_vop1 302 ; GFX10-LABEL: name: v_sqrt_f16 303 ; GFX10: liveins: $vgpr0 304 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 305 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 306 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 [[COPY]], implicit $mode, implicit $exec 307 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 308 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 309 ; GFX10: $vgpr0 = COPY %and_vop3 310 ; GFX10: $vgpr1 = COPY %and_vop1 311 %0:vgpr_32 = COPY $vgpr0 312 %op_vop3:vgpr_32 = nofpexcept V_SQRT_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 313 %op_vop1:vgpr_32 = nofpexcept V_SQRT_F16_e32 %0, implicit $mode, implicit $exec 314 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 315 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 316 $vgpr0 = COPY %and_vop3 317 $vgpr1 = COPY %and_vop1 318 319... 320 321--- 322name: v_log_f16 323tracksRegLiveness: true 324body: | 325 bb.0: 326 liveins: $vgpr0 327 ; GFX8-LABEL: name: v_log_f16 328 ; GFX8: liveins: $vgpr0 329 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 330 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 331 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 [[COPY]], implicit $mode, implicit $exec 332 ; GFX8: $vgpr0 = COPY %op_vop3 333 ; GFX8: $vgpr1 = COPY %op_vop1 334 ; GFX9-LABEL: name: v_log_f16 335 ; GFX9: liveins: $vgpr0 336 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 337 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 338 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 [[COPY]], implicit $mode, implicit $exec 339 ; GFX9: $vgpr0 = COPY %op_vop3 340 ; GFX9: $vgpr1 = COPY %op_vop1 341 ; GFX10-LABEL: name: v_log_f16 342 ; GFX10: liveins: $vgpr0 343 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 344 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 345 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 [[COPY]], implicit $mode, implicit $exec 346 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 347 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 348 ; GFX10: $vgpr0 = COPY %and_vop3 349 ; GFX10: $vgpr1 = COPY %and_vop1 350 %0:vgpr_32 = COPY $vgpr0 351 %op_vop3:vgpr_32 = nofpexcept V_LOG_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 352 %op_vop1:vgpr_32 = nofpexcept V_LOG_F16_e32 %0, implicit $mode, implicit $exec 353 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 354 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 355 $vgpr0 = COPY %and_vop3 356 $vgpr1 = COPY %and_vop1 357 358... 359 360--- 361name: v_exp_f16 362tracksRegLiveness: true 363body: | 364 bb.0: 365 liveins: $vgpr0 366 ; GFX8-LABEL: name: v_exp_f16 367 ; GFX8: liveins: $vgpr0 368 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 369 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 370 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 [[COPY]], implicit $mode, implicit $exec 371 ; GFX8: $vgpr0 = COPY %op_vop3 372 ; GFX8: $vgpr1 = COPY %op_vop1 373 ; GFX9-LABEL: name: v_exp_f16 374 ; GFX9: liveins: $vgpr0 375 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 376 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 377 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 [[COPY]], implicit $mode, implicit $exec 378 ; GFX9: $vgpr0 = COPY %op_vop3 379 ; GFX9: $vgpr1 = COPY %op_vop1 380 ; GFX10-LABEL: name: v_exp_f16 381 ; GFX10: liveins: $vgpr0 382 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 383 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 384 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 [[COPY]], implicit $mode, implicit $exec 385 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 386 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 387 ; GFX10: $vgpr0 = COPY %and_vop3 388 ; GFX10: $vgpr1 = COPY %and_vop1 389 %0:vgpr_32 = COPY $vgpr0 390 %op_vop3:vgpr_32 = nofpexcept V_EXP_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 391 %op_vop1:vgpr_32 = nofpexcept V_EXP_F16_e32 %0, implicit $mode, implicit $exec 392 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 393 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 394 $vgpr0 = COPY %and_vop3 395 $vgpr1 = COPY %and_vop1 396 397... 398 399--- 400name: v_sin_f16 401tracksRegLiveness: true 402body: | 403 bb.0: 404 liveins: $vgpr0 405 ; GFX8-LABEL: name: v_sin_f16 406 ; GFX8: liveins: $vgpr0 407 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 408 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 409 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 [[COPY]], implicit $mode, implicit $exec 410 ; GFX8: $vgpr0 = COPY %op_vop3 411 ; GFX8: $vgpr1 = COPY %op_vop1 412 ; GFX9-LABEL: name: v_sin_f16 413 ; GFX9: liveins: $vgpr0 414 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 415 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 416 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 [[COPY]], implicit $mode, implicit $exec 417 ; GFX9: $vgpr0 = COPY %op_vop3 418 ; GFX9: $vgpr1 = COPY %op_vop1 419 ; GFX10-LABEL: name: v_sin_f16 420 ; GFX10: liveins: $vgpr0 421 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 422 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 423 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 [[COPY]], implicit $mode, implicit $exec 424 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 425 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 426 ; GFX10: $vgpr0 = COPY %and_vop3 427 ; GFX10: $vgpr1 = COPY %and_vop1 428 %0:vgpr_32 = COPY $vgpr0 429 %op_vop3:vgpr_32 = nofpexcept V_SIN_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 430 %op_vop1:vgpr_32 = nofpexcept V_SIN_F16_e32 %0, implicit $mode, implicit $exec 431 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 432 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 433 $vgpr0 = COPY %and_vop3 434 $vgpr1 = COPY %and_vop1 435 436... 437 438--- 439name: v_cos_f16 440tracksRegLiveness: true 441body: | 442 bb.0: 443 liveins: $vgpr0 444 ; GFX8-LABEL: name: v_cos_f16 445 ; GFX8: liveins: $vgpr0 446 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 447 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 448 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 [[COPY]], implicit $mode, implicit $exec 449 ; GFX8: $vgpr0 = COPY %op_vop3 450 ; GFX8: $vgpr1 = COPY %op_vop1 451 ; GFX9-LABEL: name: v_cos_f16 452 ; GFX9: liveins: $vgpr0 453 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 454 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 455 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 [[COPY]], implicit $mode, implicit $exec 456 ; GFX9: $vgpr0 = COPY %op_vop3 457 ; GFX9: $vgpr1 = COPY %op_vop1 458 ; GFX10-LABEL: name: v_cos_f16 459 ; GFX10: liveins: $vgpr0 460 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 461 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 462 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 [[COPY]], implicit $mode, implicit $exec 463 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 464 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 465 ; GFX10: $vgpr0 = COPY %and_vop3 466 ; GFX10: $vgpr1 = COPY %and_vop1 467 %0:vgpr_32 = COPY $vgpr0 468 %op_vop3:vgpr_32 = nofpexcept V_COS_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 469 %op_vop1:vgpr_32 = nofpexcept V_COS_F16_e32 %0, implicit $mode, implicit $exec 470 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 471 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 472 $vgpr0 = COPY %and_vop3 473 $vgpr1 = COPY %and_vop1 474 475... 476 477--- 478name: v_floor_f16 479tracksRegLiveness: true 480body: | 481 bb.0: 482 liveins: $vgpr0 483 ; GFX8-LABEL: name: v_floor_f16 484 ; GFX8: liveins: $vgpr0 485 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 486 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 487 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 [[COPY]], implicit $mode, implicit $exec 488 ; GFX8: $vgpr0 = COPY %op_vop3 489 ; GFX8: $vgpr1 = COPY %op_vop1 490 ; GFX9-LABEL: name: v_floor_f16 491 ; GFX9: liveins: $vgpr0 492 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 493 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 494 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 [[COPY]], implicit $mode, implicit $exec 495 ; GFX9: $vgpr0 = COPY %op_vop3 496 ; GFX9: $vgpr1 = COPY %op_vop1 497 ; GFX10-LABEL: name: v_floor_f16 498 ; GFX10: liveins: $vgpr0 499 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 500 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 501 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 [[COPY]], implicit $mode, implicit $exec 502 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 503 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 504 ; GFX10: $vgpr0 = COPY %and_vop3 505 ; GFX10: $vgpr1 = COPY %and_vop1 506 %0:vgpr_32 = COPY $vgpr0 507 %op_vop3:vgpr_32 = nofpexcept V_FLOOR_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 508 %op_vop1:vgpr_32 = nofpexcept V_FLOOR_F16_e32 %0, implicit $mode, implicit $exec 509 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 510 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 511 $vgpr0 = COPY %and_vop3 512 $vgpr1 = COPY %and_vop1 513 514... 515 516--- 517name: v_ceil_f16 518tracksRegLiveness: true 519body: | 520 bb.0: 521 liveins: $vgpr0 522 ; GFX8-LABEL: name: v_ceil_f16 523 ; GFX8: liveins: $vgpr0 524 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 525 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 526 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 [[COPY]], implicit $mode, implicit $exec 527 ; GFX8: $vgpr0 = COPY %op_vop3 528 ; GFX8: $vgpr1 = COPY %op_vop1 529 ; GFX9-LABEL: name: v_ceil_f16 530 ; GFX9: liveins: $vgpr0 531 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 532 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 533 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 [[COPY]], implicit $mode, implicit $exec 534 ; GFX9: $vgpr0 = COPY %op_vop3 535 ; GFX9: $vgpr1 = COPY %op_vop1 536 ; GFX10-LABEL: name: v_ceil_f16 537 ; GFX10: liveins: $vgpr0 538 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 539 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 540 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 [[COPY]], implicit $mode, implicit $exec 541 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 542 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 543 ; GFX10: $vgpr0 = COPY %and_vop3 544 ; GFX10: $vgpr1 = COPY %and_vop1 545 %0:vgpr_32 = COPY $vgpr0 546 %op_vop3:vgpr_32 = nofpexcept V_CEIL_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 547 %op_vop1:vgpr_32 = nofpexcept V_CEIL_F16_e32 %0, implicit $mode, implicit $exec 548 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 549 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 550 $vgpr0 = COPY %and_vop3 551 $vgpr1 = COPY %and_vop1 552 553... 554 555--- 556name: v_trunc_f16 557tracksRegLiveness: true 558body: | 559 bb.0: 560 liveins: $vgpr0 561 ; GFX8-LABEL: name: v_trunc_f16 562 ; GFX8: liveins: $vgpr0 563 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 564 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 565 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 [[COPY]], implicit $mode, implicit $exec 566 ; GFX8: $vgpr0 = COPY %op_vop3 567 ; GFX8: $vgpr1 = COPY %op_vop1 568 ; GFX9-LABEL: name: v_trunc_f16 569 ; GFX9: liveins: $vgpr0 570 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 571 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 572 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 [[COPY]], implicit $mode, implicit $exec 573 ; GFX9: $vgpr0 = COPY %op_vop3 574 ; GFX9: $vgpr1 = COPY %op_vop1 575 ; GFX10-LABEL: name: v_trunc_f16 576 ; GFX10: liveins: $vgpr0 577 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 578 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 579 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 [[COPY]], implicit $mode, implicit $exec 580 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 581 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 582 ; GFX10: $vgpr0 = COPY %and_vop3 583 ; GFX10: $vgpr1 = COPY %and_vop1 584 %0:vgpr_32 = COPY $vgpr0 585 %op_vop3:vgpr_32 = nofpexcept V_TRUNC_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 586 %op_vop1:vgpr_32 = nofpexcept V_TRUNC_F16_e32 %0, implicit $mode, implicit $exec 587 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 588 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 589 $vgpr0 = COPY %and_vop3 590 $vgpr1 = COPY %and_vop1 591 592... 593 594--- 595name: v_rndne_f16 596tracksRegLiveness: true 597body: | 598 bb.0: 599 liveins: $vgpr0 600 ; GFX8-LABEL: name: v_rndne_f16 601 ; GFX8: liveins: $vgpr0 602 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 603 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 604 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 [[COPY]], implicit $mode, implicit $exec 605 ; GFX8: $vgpr0 = COPY %op_vop3 606 ; GFX8: $vgpr1 = COPY %op_vop1 607 ; GFX9-LABEL: name: v_rndne_f16 608 ; GFX9: liveins: $vgpr0 609 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 610 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 611 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 [[COPY]], implicit $mode, implicit $exec 612 ; GFX9: $vgpr0 = COPY %op_vop3 613 ; GFX9: $vgpr1 = COPY %op_vop1 614 ; GFX10-LABEL: name: v_rndne_f16 615 ; GFX10: liveins: $vgpr0 616 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 617 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 618 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 [[COPY]], implicit $mode, implicit $exec 619 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 620 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 621 ; GFX10: $vgpr0 = COPY %and_vop3 622 ; GFX10: $vgpr1 = COPY %and_vop1 623 %0:vgpr_32 = COPY $vgpr0 624 %op_vop3:vgpr_32 = nofpexcept V_RNDNE_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 625 %op_vop1:vgpr_32 = nofpexcept V_RNDNE_F16_e32 %0, implicit $mode, implicit $exec 626 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 627 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 628 $vgpr0 = COPY %and_vop3 629 $vgpr1 = COPY %and_vop1 630 631... 632 633--- 634name: v_fract_f16 635tracksRegLiveness: true 636body: | 637 bb.0: 638 liveins: $vgpr0 639 ; GFX8-LABEL: name: v_fract_f16 640 ; GFX8: liveins: $vgpr0 641 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 642 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 643 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 [[COPY]], implicit $mode, implicit $exec 644 ; GFX8: $vgpr0 = COPY %op_vop3 645 ; GFX8: $vgpr1 = COPY %op_vop1 646 ; GFX9-LABEL: name: v_fract_f16 647 ; GFX9: liveins: $vgpr0 648 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 649 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 650 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 [[COPY]], implicit $mode, implicit $exec 651 ; GFX9: $vgpr0 = COPY %op_vop3 652 ; GFX9: $vgpr1 = COPY %op_vop1 653 ; GFX10-LABEL: name: v_fract_f16 654 ; GFX10: liveins: $vgpr0 655 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 656 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 657 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 [[COPY]], implicit $mode, implicit $exec 658 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 659 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 660 ; GFX10: $vgpr0 = COPY %and_vop3 661 ; GFX10: $vgpr1 = COPY %and_vop1 662 %0:vgpr_32 = COPY $vgpr0 663 %op_vop3:vgpr_32 = nofpexcept V_FRACT_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 664 %op_vop1:vgpr_32 = nofpexcept V_FRACT_F16_e32 %0, implicit $mode, implicit $exec 665 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 666 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 667 $vgpr0 = COPY %and_vop3 668 $vgpr1 = COPY %and_vop1 669 670... 671 672--- 673name: v_frexp_mant_f16 674tracksRegLiveness: true 675body: | 676 bb.0: 677 liveins: $vgpr0 678 ; GFX8-LABEL: name: v_frexp_mant_f16 679 ; GFX8: liveins: $vgpr0 680 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 681 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 682 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 [[COPY]], implicit $mode, implicit $exec 683 ; GFX8: $vgpr0 = COPY %op_vop3 684 ; GFX8: $vgpr1 = COPY %op_vop1 685 ; GFX9-LABEL: name: v_frexp_mant_f16 686 ; GFX9: liveins: $vgpr0 687 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 688 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 689 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 [[COPY]], implicit $mode, implicit $exec 690 ; GFX9: $vgpr0 = COPY %op_vop3 691 ; GFX9: $vgpr1 = COPY %op_vop1 692 ; GFX10-LABEL: name: v_frexp_mant_f16 693 ; GFX10: liveins: $vgpr0 694 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 695 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 696 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 [[COPY]], implicit $mode, implicit $exec 697 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 698 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 699 ; GFX10: $vgpr0 = COPY %and_vop3 700 ; GFX10: $vgpr1 = COPY %and_vop1 701 %0:vgpr_32 = COPY $vgpr0 702 %op_vop3:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 703 %op_vop1:vgpr_32 = nofpexcept V_FREXP_MANT_F16_e32 %0, implicit $mode, implicit $exec 704 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 705 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 706 $vgpr0 = COPY %and_vop3 707 $vgpr1 = COPY %and_vop1 708 709... 710 711--- 712name: v_frexp_exp_f16 713tracksRegLiveness: true 714body: | 715 bb.0: 716 liveins: $vgpr0 717 ; GFX8-LABEL: name: v_frexp_exp_f16 718 ; GFX8: liveins: $vgpr0 719 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 720 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 721 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 [[COPY]], implicit $mode, implicit $exec 722 ; GFX8: $vgpr0 = COPY %op_vop3 723 ; GFX8: $vgpr1 = COPY %op_vop1 724 ; GFX9-LABEL: name: v_frexp_exp_f16 725 ; GFX9: liveins: $vgpr0 726 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 727 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 728 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 [[COPY]], implicit $mode, implicit $exec 729 ; GFX9: $vgpr0 = COPY %op_vop3 730 ; GFX9: $vgpr1 = COPY %op_vop1 731 ; GFX10-LABEL: name: v_frexp_exp_f16 732 ; GFX10: liveins: $vgpr0 733 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 734 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, [[COPY]], 0, 0, implicit $mode, implicit $exec 735 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 [[COPY]], implicit $mode, implicit $exec 736 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 737 ; GFX10: %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 738 ; GFX10: $vgpr0 = COPY %and_vop3 739 ; GFX10: $vgpr1 = COPY %and_vop1 740 %0:vgpr_32 = COPY $vgpr0 741 %op_vop3:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e64 0, %0, 0, 0, implicit $mode, implicit $exec 742 %op_vop1:vgpr_32 = nofpexcept V_FREXP_EXP_I16_F16_e32 %0, implicit $mode, implicit $exec 743 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 744 %and_vop1:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 745 $vgpr0 = COPY %and_vop3 746 $vgpr1 = COPY %and_vop1 747 748... 749 750--- 751name: v_ldexp_f16 752tracksRegLiveness: true 753body: | 754 bb.0: 755 liveins: $vgpr0, $vgpr1 756 ; GFX8-LABEL: name: v_ldexp_f16 757 ; GFX8: liveins: $vgpr0, $vgpr1 758 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 759 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 760 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 761 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 762 ; GFX8: $vgpr0 = COPY %op_vop3 763 ; GFX8: $vgpr1 = COPY %op_vop1 764 ; GFX9-LABEL: name: v_ldexp_f16 765 ; GFX9: liveins: $vgpr0, $vgpr1 766 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 767 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 768 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 769 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 770 ; GFX9: $vgpr0 = COPY %op_vop3 771 ; GFX9: $vgpr1 = COPY %op_vop1 772 ; GFX10-LABEL: name: v_ldexp_f16 773 ; GFX10: liveins: $vgpr0, $vgpr1 774 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 775 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 776 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 777 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 778 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 779 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 780 ; GFX10: $vgpr0 = COPY %and_vop3 781 ; GFX10: $vgpr1 = COPY %and_vop2 782 %0:vgpr_32 = COPY $vgpr0 783 %1:vgpr_32 = COPY $vgpr1 784 %op_vop3:vgpr_32 = nofpexcept V_LDEXP_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 785 %op_vop1:vgpr_32 = nofpexcept V_LDEXP_F16_e32 %0, %1, implicit $mode, implicit $exec 786 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 787 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 788 $vgpr0 = COPY %and_vop3 789 $vgpr1 = COPY %and_vop2 790 791... 792 793--- 794name: v_lshlrev_b16 795tracksRegLiveness: true 796body: | 797 bb.0: 798 liveins: $vgpr0, $vgpr1 799 ; GFX8-LABEL: name: v_lshlrev_b16 800 ; GFX8: liveins: $vgpr0, $vgpr1 801 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 802 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 803 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 804 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 805 ; GFX8: $vgpr0 = COPY %op_vop3 806 ; GFX8: $vgpr1 = COPY %op_vop2 807 ; GFX9-LABEL: name: v_lshlrev_b16 808 ; GFX9: liveins: $vgpr0, $vgpr1 809 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 810 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 811 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 812 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 813 ; GFX9: $vgpr0 = COPY %op_vop3 814 ; GFX9: $vgpr1 = COPY %op_vop2 815 ; GFX10-LABEL: name: v_lshlrev_b16 816 ; GFX10: liveins: $vgpr0, $vgpr1 817 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 818 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 819 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 820 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 821 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 822 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 823 ; GFX10: $vgpr0 = COPY %and_vop3 824 ; GFX10: $vgpr1 = COPY %and_vop2 825 %0:vgpr_32 = COPY $vgpr0 826 %1:vgpr_32 = COPY $vgpr1 827 %op_vop3:vgpr_32 = nofpexcept V_LSHLREV_B16_e64 %0, %1, implicit $mode, implicit $exec 828 %op_vop2:vgpr_32 = nofpexcept V_LSHLREV_B16_e32 %0, %1, implicit $mode, implicit $exec 829 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 830 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 831 $vgpr0 = COPY %and_vop3 832 $vgpr1 = COPY %and_vop2 833 834... 835 836--- 837name: v_lshrrev_b16 838tracksRegLiveness: true 839body: | 840 bb.0: 841 liveins: $vgpr0, $vgpr1 842 ; GFX8-LABEL: name: v_lshrrev_b16 843 ; GFX8: liveins: $vgpr0, $vgpr1 844 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 845 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 846 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 847 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 848 ; GFX8: $vgpr0 = COPY %op_vop3 849 ; GFX8: $vgpr1 = COPY %op_vop2 850 ; GFX9-LABEL: name: v_lshrrev_b16 851 ; GFX9: liveins: $vgpr0, $vgpr1 852 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 853 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 854 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 855 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 856 ; GFX9: $vgpr0 = COPY %op_vop3 857 ; GFX9: $vgpr1 = COPY %op_vop2 858 ; GFX10-LABEL: name: v_lshrrev_b16 859 ; GFX10: liveins: $vgpr0, $vgpr1 860 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 861 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 862 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 863 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 864 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 865 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 866 ; GFX10: $vgpr0 = COPY %and_vop3 867 ; GFX10: $vgpr1 = COPY %and_vop2 868 %0:vgpr_32 = COPY $vgpr0 869 %1:vgpr_32 = COPY $vgpr1 870 %op_vop3:vgpr_32 = nofpexcept V_LSHRREV_B16_e64 %0, %1, implicit $mode, implicit $exec 871 %op_vop2:vgpr_32 = nofpexcept V_LSHRREV_B16_e32 %0, %1, implicit $mode, implicit $exec 872 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 873 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 874 $vgpr0 = COPY %and_vop3 875 $vgpr1 = COPY %and_vop2 876 877... 878 879--- 880name: v_ashrrev_i16 881tracksRegLiveness: true 882body: | 883 bb.0: 884 liveins: $vgpr0, $vgpr1 885 ; GFX8-LABEL: name: v_ashrrev_i16 886 ; GFX8: liveins: $vgpr0, $vgpr1 887 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 888 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 889 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 890 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 891 ; GFX8: $vgpr0 = COPY %op_vop3 892 ; GFX8: $vgpr1 = COPY %op_vop2 893 ; GFX9-LABEL: name: v_ashrrev_i16 894 ; GFX9: liveins: $vgpr0, $vgpr1 895 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 896 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 897 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 898 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 899 ; GFX9: $vgpr0 = COPY %op_vop3 900 ; GFX9: $vgpr1 = COPY %op_vop2 901 ; GFX10-LABEL: name: v_ashrrev_i16 902 ; GFX10: liveins: $vgpr0, $vgpr1 903 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 904 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 905 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 906 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 907 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 908 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 909 ; GFX10: $vgpr0 = COPY %and_vop3 910 ; GFX10: $vgpr1 = COPY %and_vop2 911 %0:vgpr_32 = COPY $vgpr0 912 %1:vgpr_32 = COPY $vgpr1 913 %op_vop3:vgpr_32 = nofpexcept V_ASHRREV_I16_e64 %0, %1, implicit $mode, implicit $exec 914 %op_vop2:vgpr_32 = nofpexcept V_ASHRREV_I16_e32 %0, %1, implicit $mode, implicit $exec 915 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 916 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 917 $vgpr0 = COPY %and_vop3 918 $vgpr1 = COPY %and_vop2 919 920... 921 922--- 923name: v_add_u16 924tracksRegLiveness: true 925body: | 926 bb.0: 927 liveins: $vgpr0, $vgpr1 928 ; GFX8-LABEL: name: v_add_u16 929 ; GFX8: liveins: $vgpr0, $vgpr1 930 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 931 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 932 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 933 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 934 ; GFX8: $vgpr0 = COPY %op_vop3 935 ; GFX8: $vgpr1 = COPY %op_vop2 936 ; GFX9-LABEL: name: v_add_u16 937 ; GFX9: liveins: $vgpr0, $vgpr1 938 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 939 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 940 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 941 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 942 ; GFX9: $vgpr0 = COPY %op_vop3 943 ; GFX9: $vgpr1 = COPY %op_vop2 944 ; GFX10-LABEL: name: v_add_u16 945 ; GFX10: liveins: $vgpr0, $vgpr1 946 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 947 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 948 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 949 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 950 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 951 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 952 ; GFX10: $vgpr0 = COPY %and_vop3 953 ; GFX10: $vgpr1 = COPY %and_vop2 954 %0:vgpr_32 = COPY $vgpr0 955 %1:vgpr_32 = COPY $vgpr1 956 %op_vop3:vgpr_32 = nofpexcept V_ADD_U16_e64 %0, %1, 0, implicit $mode, implicit $exec 957 %op_vop2:vgpr_32 = nofpexcept V_ADD_U16_e32 %0, %1, implicit $mode, implicit $exec 958 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 959 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 960 $vgpr0 = COPY %and_vop3 961 $vgpr1 = COPY %and_vop2 962 963... 964 965--- 966name: v_sub_u16 967tracksRegLiveness: true 968body: | 969 bb.0: 970 liveins: $vgpr0, $vgpr1 971 ; GFX8-LABEL: name: v_sub_u16 972 ; GFX8: liveins: $vgpr0, $vgpr1 973 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 974 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 975 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 976 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 977 ; GFX8: $vgpr0 = COPY %op_vop3 978 ; GFX8: $vgpr1 = COPY %op_vop2 979 ; GFX9-LABEL: name: v_sub_u16 980 ; GFX9: liveins: $vgpr0, $vgpr1 981 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 982 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 983 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 984 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 985 ; GFX9: $vgpr0 = COPY %op_vop3 986 ; GFX9: $vgpr1 = COPY %op_vop2 987 ; GFX10-LABEL: name: v_sub_u16 988 ; GFX10: liveins: $vgpr0, $vgpr1 989 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 990 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 991 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 992 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 993 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 994 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 995 ; GFX10: $vgpr0 = COPY %and_vop3 996 ; GFX10: $vgpr1 = COPY %and_vop2 997 %0:vgpr_32 = COPY $vgpr0 998 %1:vgpr_32 = COPY $vgpr1 999 %op_vop3:vgpr_32 = nofpexcept V_SUB_U16_e64 %0, %1, 0, implicit $mode, implicit $exec 1000 %op_vop2:vgpr_32 = nofpexcept V_SUB_U16_e32 %0, %1, implicit $mode, implicit $exec 1001 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1002 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1003 $vgpr0 = COPY %and_vop3 1004 $vgpr1 = COPY %and_vop2 1005 1006... 1007 1008--- 1009name: v_subrev_u16 1010tracksRegLiveness: true 1011body: | 1012 bb.0: 1013 liveins: $vgpr0, $vgpr1 1014 ; GFX8-LABEL: name: v_subrev_u16 1015 ; GFX8: liveins: $vgpr0, $vgpr1 1016 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1017 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1018 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 1019 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1020 ; GFX8: $vgpr0 = COPY %op_vop3 1021 ; GFX8: $vgpr1 = COPY %op_vop2 1022 ; GFX9-LABEL: name: v_subrev_u16 1023 ; GFX9: liveins: $vgpr0, $vgpr1 1024 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1025 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1026 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 1027 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1028 ; GFX9: $vgpr0 = COPY %op_vop3 1029 ; GFX9: $vgpr1 = COPY %op_vop2 1030 ; GFX10-LABEL: name: v_subrev_u16 1031 ; GFX10: liveins: $vgpr0, $vgpr1 1032 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1033 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1034 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 [[COPY]], [[COPY1]], 0, implicit $mode, implicit $exec 1035 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1036 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1037 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1038 ; GFX10: $vgpr0 = COPY %and_vop3 1039 ; GFX10: $vgpr1 = COPY %and_vop2 1040 %0:vgpr_32 = COPY $vgpr0 1041 %1:vgpr_32 = COPY $vgpr1 1042 %op_vop3:vgpr_32 = nofpexcept V_SUBREV_U16_e64 %0, %1, 0, implicit $mode, implicit $exec 1043 %op_vop2:vgpr_32 = nofpexcept V_SUBREV_U16_e32 %0, %1, implicit $mode, implicit $exec 1044 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1045 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1046 $vgpr0 = COPY %and_vop3 1047 $vgpr1 = COPY %and_vop2 1048 1049... 1050 1051--- 1052name: v_mul_lo_u16 1053tracksRegLiveness: true 1054body: | 1055 bb.0: 1056 liveins: $vgpr0, $vgpr1 1057 ; GFX8-LABEL: name: v_mul_lo_u16 1058 ; GFX8: liveins: $vgpr0, $vgpr1 1059 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1060 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1061 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1062 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1063 ; GFX8: $vgpr0 = COPY %op_vop3 1064 ; GFX8: $vgpr1 = COPY %op_vop2 1065 ; GFX9-LABEL: name: v_mul_lo_u16 1066 ; GFX9: liveins: $vgpr0, $vgpr1 1067 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1068 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1069 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1070 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1071 ; GFX9: $vgpr0 = COPY %op_vop3 1072 ; GFX9: $vgpr1 = COPY %op_vop2 1073 ; GFX10-LABEL: name: v_mul_lo_u16 1074 ; GFX10: liveins: $vgpr0, $vgpr1 1075 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1076 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1077 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1078 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1079 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1080 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1081 ; GFX10: $vgpr0 = COPY %and_vop3 1082 ; GFX10: $vgpr1 = COPY %and_vop2 1083 %0:vgpr_32 = COPY $vgpr0 1084 %1:vgpr_32 = COPY $vgpr1 1085 %op_vop3:vgpr_32 = nofpexcept V_MUL_LO_U16_e64 %0, %1, implicit $mode, implicit $exec 1086 %op_vop2:vgpr_32 = nofpexcept V_MUL_LO_U16_e32 %0, %1, implicit $mode, implicit $exec 1087 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1088 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1089 $vgpr0 = COPY %and_vop3 1090 $vgpr1 = COPY %and_vop2 1091 1092... 1093 1094--- 1095name: v_add_f16 1096tracksRegLiveness: true 1097body: | 1098 bb.0: 1099 liveins: $vgpr0, $vgpr1 1100 ; GFX8-LABEL: name: v_add_f16 1101 ; GFX8: liveins: $vgpr0, $vgpr1 1102 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1103 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1104 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1105 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1106 ; GFX8: $vgpr0 = COPY %op_vop3 1107 ; GFX8: $vgpr1 = COPY %op_vop1 1108 ; GFX9-LABEL: name: v_add_f16 1109 ; GFX9: liveins: $vgpr0, $vgpr1 1110 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1111 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1112 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1113 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1114 ; GFX9: $vgpr0 = COPY %op_vop3 1115 ; GFX9: $vgpr1 = COPY %op_vop1 1116 ; GFX10-LABEL: name: v_add_f16 1117 ; GFX10: liveins: $vgpr0, $vgpr1 1118 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1119 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1120 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1121 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1122 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1123 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1124 ; GFX10: $vgpr0 = COPY %and_vop3 1125 ; GFX10: $vgpr1 = COPY %and_vop2 1126 %0:vgpr_32 = COPY $vgpr0 1127 %1:vgpr_32 = COPY $vgpr1 1128 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 1129 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec 1130 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1131 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1132 $vgpr0 = COPY %and_vop3 1133 $vgpr1 = COPY %and_vop2 1134 1135... 1136 1137--- 1138name: v_sub_f16 1139tracksRegLiveness: true 1140body: | 1141 bb.0: 1142 liveins: $vgpr0, $vgpr1 1143 ; GFX8-LABEL: name: v_sub_f16 1144 ; GFX8: liveins: $vgpr0, $vgpr1 1145 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1146 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1147 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1148 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1149 ; GFX8: $vgpr0 = COPY %op_vop3 1150 ; GFX8: $vgpr1 = COPY %op_vop1 1151 ; GFX9-LABEL: name: v_sub_f16 1152 ; GFX9: liveins: $vgpr0, $vgpr1 1153 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1154 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1155 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1156 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1157 ; GFX9: $vgpr0 = COPY %op_vop3 1158 ; GFX9: $vgpr1 = COPY %op_vop1 1159 ; GFX10-LABEL: name: v_sub_f16 1160 ; GFX10: liveins: $vgpr0, $vgpr1 1161 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1162 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1163 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1164 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1165 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1166 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1167 ; GFX10: $vgpr0 = COPY %and_vop3 1168 ; GFX10: $vgpr1 = COPY %and_vop2 1169 %0:vgpr_32 = COPY $vgpr0 1170 %1:vgpr_32 = COPY $vgpr1 1171 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 1172 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec 1173 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1174 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1175 $vgpr0 = COPY %and_vop3 1176 $vgpr1 = COPY %and_vop2 1177 1178... 1179 1180--- 1181name: v_subrev_f16 1182tracksRegLiveness: true 1183body: | 1184 bb.0: 1185 liveins: $vgpr0, $vgpr1 1186 ; GFX8-LABEL: name: v_subrev_f16 1187 ; GFX8: liveins: $vgpr0, $vgpr1 1188 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1189 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1190 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1191 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1192 ; GFX8: $vgpr0 = COPY %op_vop3 1193 ; GFX8: $vgpr1 = COPY %op_vop1 1194 ; GFX9-LABEL: name: v_subrev_f16 1195 ; GFX9: liveins: $vgpr0, $vgpr1 1196 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1197 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1198 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1199 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1200 ; GFX9: $vgpr0 = COPY %op_vop3 1201 ; GFX9: $vgpr1 = COPY %op_vop1 1202 ; GFX10-LABEL: name: v_subrev_f16 1203 ; GFX10: liveins: $vgpr0, $vgpr1 1204 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1205 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1206 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1207 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1208 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1209 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1210 ; GFX10: $vgpr0 = COPY %and_vop3 1211 ; GFX10: $vgpr1 = COPY %and_vop2 1212 %0:vgpr_32 = COPY $vgpr0 1213 %1:vgpr_32 = COPY $vgpr1 1214 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 1215 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec 1216 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1217 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1218 $vgpr0 = COPY %and_vop3 1219 $vgpr1 = COPY %and_vop2 1220 1221... 1222 1223--- 1224name: v_mul_f16 1225tracksRegLiveness: true 1226body: | 1227 bb.0: 1228 liveins: $vgpr0, $vgpr1 1229 ; GFX8-LABEL: name: v_mul_f16 1230 ; GFX8: liveins: $vgpr0, $vgpr1 1231 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1232 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1233 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1234 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1235 ; GFX8: $vgpr0 = COPY %op_vop3 1236 ; GFX8: $vgpr1 = COPY %op_vop1 1237 ; GFX9-LABEL: name: v_mul_f16 1238 ; GFX9: liveins: $vgpr0, $vgpr1 1239 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1240 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1241 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1242 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1243 ; GFX9: $vgpr0 = COPY %op_vop3 1244 ; GFX9: $vgpr1 = COPY %op_vop1 1245 ; GFX10-LABEL: name: v_mul_f16 1246 ; GFX10: liveins: $vgpr0, $vgpr1 1247 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1248 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1249 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1250 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1251 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1252 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1253 ; GFX10: $vgpr0 = COPY %and_vop3 1254 ; GFX10: $vgpr1 = COPY %and_vop2 1255 %0:vgpr_32 = COPY $vgpr0 1256 %1:vgpr_32 = COPY $vgpr1 1257 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 1258 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec 1259 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1260 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1261 $vgpr0 = COPY %and_vop3 1262 $vgpr1 = COPY %and_vop2 1263 1264... 1265 1266--- 1267name: v_max_f16 1268tracksRegLiveness: true 1269body: | 1270 bb.0: 1271 liveins: $vgpr0, $vgpr1 1272 ; GFX8-LABEL: name: v_max_f16 1273 ; GFX8: liveins: $vgpr0, $vgpr1 1274 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1275 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1276 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1277 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1278 ; GFX8: $vgpr0 = COPY %op_vop3 1279 ; GFX8: $vgpr1 = COPY %op_vop1 1280 ; GFX9-LABEL: name: v_max_f16 1281 ; GFX9: liveins: $vgpr0, $vgpr1 1282 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1283 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1284 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1285 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1286 ; GFX9: $vgpr0 = COPY %op_vop3 1287 ; GFX9: $vgpr1 = COPY %op_vop1 1288 ; GFX10-LABEL: name: v_max_f16 1289 ; GFX10: liveins: $vgpr0, $vgpr1 1290 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1291 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1292 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1293 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1294 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1295 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1296 ; GFX10: $vgpr0 = COPY %and_vop3 1297 ; GFX10: $vgpr1 = COPY %and_vop2 1298 %0:vgpr_32 = COPY $vgpr0 1299 %1:vgpr_32 = COPY $vgpr1 1300 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 1301 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec 1302 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1303 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1304 $vgpr0 = COPY %and_vop3 1305 $vgpr1 = COPY %and_vop2 1306 1307... 1308 1309--- 1310name: v_min_f16 1311tracksRegLiveness: true 1312body: | 1313 bb.0: 1314 liveins: $vgpr0, $vgpr1 1315 ; GFX8-LABEL: name: v_min_f16 1316 ; GFX8: liveins: $vgpr0, $vgpr1 1317 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1318 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1319 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1320 ; GFX8: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1321 ; GFX8: $vgpr0 = COPY %op_vop3 1322 ; GFX8: $vgpr1 = COPY %op_vop1 1323 ; GFX9-LABEL: name: v_min_f16 1324 ; GFX9: liveins: $vgpr0, $vgpr1 1325 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1326 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1327 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1328 ; GFX9: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1329 ; GFX9: $vgpr0 = COPY %op_vop3 1330 ; GFX9: $vgpr1 = COPY %op_vop1 1331 ; GFX10-LABEL: name: v_min_f16 1332 ; GFX10: liveins: $vgpr0, $vgpr1 1333 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1334 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1335 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec 1336 ; GFX10: %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1337 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1338 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1339 ; GFX10: $vgpr0 = COPY %and_vop3 1340 ; GFX10: $vgpr1 = COPY %and_vop2 1341 %0:vgpr_32 = COPY $vgpr0 1342 %1:vgpr_32 = COPY $vgpr1 1343 %op_vop3:vgpr_32 = nofpexcept V_ADD_F16_e64 0, %0, 0, %1, 0, 0, implicit $mode, implicit $exec 1344 %op_vop1:vgpr_32 = nofpexcept V_ADD_F16_e32 %0, %1, implicit $mode, implicit $exec 1345 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1346 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop1, implicit $exec 1347 $vgpr0 = COPY %and_vop3 1348 $vgpr1 = COPY %and_vop2 1349 1350... 1351 1352--- 1353name: v_max_u16 1354tracksRegLiveness: true 1355body: | 1356 bb.0: 1357 liveins: $vgpr0, $vgpr1 1358 ; GFX8-LABEL: name: v_max_u16 1359 ; GFX8: liveins: $vgpr0, $vgpr1 1360 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1361 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1362 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1363 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1364 ; GFX8: $vgpr0 = COPY %op_vop3 1365 ; GFX8: $vgpr1 = COPY %op_vop2 1366 ; GFX9-LABEL: name: v_max_u16 1367 ; GFX9: liveins: $vgpr0, $vgpr1 1368 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1369 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1370 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1371 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1372 ; GFX9: $vgpr0 = COPY %op_vop3 1373 ; GFX9: $vgpr1 = COPY %op_vop2 1374 ; GFX10-LABEL: name: v_max_u16 1375 ; GFX10: liveins: $vgpr0, $vgpr1 1376 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1377 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1378 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1379 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1380 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1381 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1382 ; GFX10: $vgpr0 = COPY %and_vop3 1383 ; GFX10: $vgpr1 = COPY %and_vop2 1384 %0:vgpr_32 = COPY $vgpr0 1385 %1:vgpr_32 = COPY $vgpr1 1386 %op_vop3:vgpr_32 = nofpexcept V_MAX_U16_e64 %0, %1, implicit $mode, implicit $exec 1387 %op_vop2:vgpr_32 = nofpexcept V_MAX_U16_e32 %0, %1, implicit $mode, implicit $exec 1388 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1389 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1390 $vgpr0 = COPY %and_vop3 1391 $vgpr1 = COPY %and_vop2 1392 1393... 1394--- 1395name: v_min_u16 1396tracksRegLiveness: true 1397body: | 1398 bb.0: 1399 liveins: $vgpr0, $vgpr1 1400 ; GFX8-LABEL: name: v_min_u16 1401 ; GFX8: liveins: $vgpr0, $vgpr1 1402 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1403 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1404 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1405 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1406 ; GFX8: $vgpr0 = COPY %op_vop3 1407 ; GFX8: $vgpr1 = COPY %op_vop2 1408 ; GFX9-LABEL: name: v_min_u16 1409 ; GFX9: liveins: $vgpr0, $vgpr1 1410 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1411 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1412 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1413 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1414 ; GFX9: $vgpr0 = COPY %op_vop3 1415 ; GFX9: $vgpr1 = COPY %op_vop2 1416 ; GFX10-LABEL: name: v_min_u16 1417 ; GFX10: liveins: $vgpr0, $vgpr1 1418 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1419 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1420 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1421 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1422 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1423 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1424 ; GFX10: $vgpr0 = COPY %and_vop3 1425 ; GFX10: $vgpr1 = COPY %and_vop2 1426 %0:vgpr_32 = COPY $vgpr0 1427 %1:vgpr_32 = COPY $vgpr1 1428 %op_vop3:vgpr_32 = nofpexcept V_MIN_U16_e64 %0, %1, implicit $mode, implicit $exec 1429 %op_vop2:vgpr_32 = nofpexcept V_MIN_U16_e32 %0, %1, implicit $mode, implicit $exec 1430 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1431 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1432 $vgpr0 = COPY %and_vop3 1433 $vgpr1 = COPY %and_vop2 1434 1435... 1436 1437--- 1438name: v_max_i16 1439tracksRegLiveness: true 1440body: | 1441 bb.0: 1442 liveins: $vgpr0, $vgpr1 1443 ; GFX8-LABEL: name: v_max_i16 1444 ; GFX8: liveins: $vgpr0, $vgpr1 1445 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1446 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1447 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1448 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1449 ; GFX8: $vgpr0 = COPY %op_vop3 1450 ; GFX8: $vgpr1 = COPY %op_vop2 1451 ; GFX9-LABEL: name: v_max_i16 1452 ; GFX9: liveins: $vgpr0, $vgpr1 1453 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1454 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1455 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1456 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1457 ; GFX9: $vgpr0 = COPY %op_vop3 1458 ; GFX9: $vgpr1 = COPY %op_vop2 1459 ; GFX10-LABEL: name: v_max_i16 1460 ; GFX10: liveins: $vgpr0, $vgpr1 1461 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1462 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1463 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1464 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1465 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1466 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1467 ; GFX10: $vgpr0 = COPY %and_vop3 1468 ; GFX10: $vgpr1 = COPY %and_vop2 1469 %0:vgpr_32 = COPY $vgpr0 1470 %1:vgpr_32 = COPY $vgpr1 1471 %op_vop3:vgpr_32 = nofpexcept V_MAX_I16_e64 %0, %1, implicit $mode, implicit $exec 1472 %op_vop2:vgpr_32 = nofpexcept V_MAX_I16_e32 %0, %1, implicit $mode, implicit $exec 1473 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1474 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1475 $vgpr0 = COPY %and_vop3 1476 $vgpr1 = COPY %and_vop2 1477 1478... 1479--- 1480name: v_min_i16 1481tracksRegLiveness: true 1482body: | 1483 bb.0: 1484 liveins: $vgpr0, $vgpr1 1485 ; GFX8-LABEL: name: v_min_i16 1486 ; GFX8: liveins: $vgpr0, $vgpr1 1487 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1488 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1489 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1490 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1491 ; GFX8: $vgpr0 = COPY %op_vop3 1492 ; GFX8: $vgpr1 = COPY %op_vop2 1493 ; GFX9-LABEL: name: v_min_i16 1494 ; GFX9: liveins: $vgpr0, $vgpr1 1495 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1496 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1497 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1498 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1499 ; GFX9: $vgpr0 = COPY %op_vop3 1500 ; GFX9: $vgpr1 = COPY %op_vop2 1501 ; GFX10-LABEL: name: v_min_i16 1502 ; GFX10: liveins: $vgpr0, $vgpr1 1503 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1504 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1505 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1506 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 [[COPY]], [[COPY1]], implicit $mode, implicit $exec 1507 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1508 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1509 ; GFX10: $vgpr0 = COPY %and_vop3 1510 ; GFX10: $vgpr1 = COPY %and_vop2 1511 %0:vgpr_32 = COPY $vgpr0 1512 %1:vgpr_32 = COPY $vgpr1 1513 %op_vop3:vgpr_32 = nofpexcept V_MIN_I16_e64 %0, %1, implicit $mode, implicit $exec 1514 %op_vop2:vgpr_32 = nofpexcept V_MIN_I16_e32 %0, %1, implicit $mode, implicit $exec 1515 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1516 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1517 $vgpr0 = COPY %and_vop3 1518 $vgpr1 = COPY %and_vop2 1519 1520... 1521 1522--- 1523name: v_mad_f16 1524tracksRegLiveness: true 1525body: | 1526 bb.0: 1527 liveins: $vgpr0, $vgpr1, $vgpr2 1528 ; GFX8-LABEL: name: v_mad_f16 1529 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2 1530 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1531 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1532 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1533 ; GFX8: %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1534 ; GFX8: $vgpr0 = COPY %op 1535 ; GFX9-LABEL: name: v_mad_f16 1536 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2 1537 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1538 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1539 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1540 ; GFX9: %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1541 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1542 ; GFX9: $vgpr0 = COPY %and 1543 ; GFX10-LABEL: name: v_mad_f16 1544 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2 1545 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1546 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1547 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1548 ; GFX10: %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1549 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1550 ; GFX10: $vgpr0 = COPY %and 1551 %0:vgpr_32 = COPY $vgpr0 1552 %1:vgpr_32 = COPY $vgpr1 1553 %2:vgpr_32 = COPY $vgpr2 1554 %op:vgpr_32 = nofpexcept V_MAD_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec 1555 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1556 $vgpr0 = COPY %and 1557 1558... 1559 1560--- 1561name: v_fma_f16 1562tracksRegLiveness: true 1563body: | 1564 bb.0: 1565 liveins: $vgpr0, $vgpr1, $vgpr2 1566 ; GFX8-LABEL: name: v_fma_f16 1567 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2 1568 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1569 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1570 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1571 ; GFX8: %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1572 ; GFX8: $vgpr0 = COPY %op 1573 ; GFX9-LABEL: name: v_fma_f16 1574 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2 1575 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1576 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1577 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1578 ; GFX9: %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1579 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1580 ; GFX9: $vgpr0 = COPY %and 1581 ; GFX10-LABEL: name: v_fma_f16 1582 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2 1583 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1584 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1585 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1586 ; GFX10: %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1587 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1588 ; GFX10: $vgpr0 = COPY %and 1589 %0:vgpr_32 = COPY $vgpr0 1590 %1:vgpr_32 = COPY $vgpr1 1591 %2:vgpr_32 = COPY $vgpr2 1592 %op:vgpr_32 = nofpexcept V_FMA_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec 1593 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1594 $vgpr0 = COPY %and 1595 1596... 1597 1598--- 1599name: v_div_fixup_f16 1600tracksRegLiveness: true 1601body: | 1602 bb.0: 1603 liveins: $vgpr0, $vgpr1, $vgpr2 1604 ; GFX8-LABEL: name: v_div_fixup_f16 1605 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2 1606 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1607 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1608 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1609 ; GFX8: %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1610 ; GFX8: $vgpr0 = COPY %op 1611 ; GFX9-LABEL: name: v_div_fixup_f16 1612 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2 1613 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1614 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1615 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1616 ; GFX9: %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1617 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1618 ; GFX9: $vgpr0 = COPY %and 1619 ; GFX10-LABEL: name: v_div_fixup_f16 1620 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2 1621 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1622 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1623 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1624 ; GFX10: %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1625 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1626 ; GFX10: $vgpr0 = COPY %and 1627 %0:vgpr_32 = COPY $vgpr0 1628 %1:vgpr_32 = COPY $vgpr1 1629 %2:vgpr_32 = COPY $vgpr2 1630 %op:vgpr_32 = nofpexcept V_DIV_FIXUP_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec 1631 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1632 $vgpr0 = COPY %and 1633 1634... 1635 1636--- 1637name: v_madak_f16 1638tracksRegLiveness: true 1639body: | 1640 bb.0: 1641 liveins: $vgpr0, $vgpr1 1642 ; GFX8-LABEL: name: v_madak_f16 1643 ; GFX8: liveins: $vgpr0, $vgpr1 1644 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1645 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1646 ; GFX8: %op:vgpr_32 = nofpexcept V_MADAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec 1647 ; GFX8: $vgpr0 = COPY %op 1648 ; GFX9-LABEL: name: v_madak_f16 1649 ; GFX9: liveins: $vgpr0, $vgpr1 1650 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1651 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1652 ; GFX9: %op:vgpr_32 = nofpexcept V_MADAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec 1653 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1654 ; GFX9: $vgpr0 = COPY %and 1655 ; GFX10-LABEL: name: v_madak_f16 1656 ; GFX10: liveins: $vgpr0, $vgpr1 1657 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1658 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1659 ; GFX10: %op:vgpr_32 = nofpexcept V_MADAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec 1660 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1661 ; GFX10: $vgpr0 = COPY %and 1662 %0:vgpr_32 = COPY $vgpr0 1663 %1:vgpr_32 = COPY $vgpr1 1664 %op:vgpr_32 = nofpexcept V_MADAK_F16 %0, %1, 1234, implicit $mode, implicit $exec 1665 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1666 $vgpr0 = COPY %and 1667 1668... 1669 1670--- 1671name: v_madmk_f16 1672tracksRegLiveness: true 1673body: | 1674 bb.0: 1675 liveins: $vgpr0, $vgpr1 1676 ; GFX8-LABEL: name: v_madmk_f16 1677 ; GFX8: liveins: $vgpr0, $vgpr1 1678 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1679 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1680 ; GFX8: %op:vgpr_32 = nofpexcept V_MADMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec 1681 ; GFX8: $vgpr0 = COPY %op 1682 ; GFX9-LABEL: name: v_madmk_f16 1683 ; GFX9: liveins: $vgpr0, $vgpr1 1684 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1685 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1686 ; GFX9: %op:vgpr_32 = nofpexcept V_MADMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec 1687 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1688 ; GFX9: $vgpr0 = COPY %and 1689 ; GFX10-LABEL: name: v_madmk_f16 1690 ; GFX10: liveins: $vgpr0, $vgpr1 1691 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1692 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1693 ; GFX10: %op:vgpr_32 = nofpexcept V_MADMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec 1694 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1695 ; GFX10: $vgpr0 = COPY %and 1696 %0:vgpr_32 = COPY $vgpr0 1697 %1:vgpr_32 = COPY $vgpr1 1698 %op:vgpr_32 = nofpexcept V_MADMK_F16 %0, 1234, %1, implicit $mode, implicit $exec 1699 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1700 $vgpr0 = COPY %and 1701 1702... 1703 1704--- 1705name: v_fmaak_f16 1706tracksRegLiveness: true 1707body: | 1708 bb.0: 1709 liveins: $vgpr0, $vgpr1 1710 ; GFX8-LABEL: name: v_fmaak_f16 1711 ; GFX8: liveins: $vgpr0, $vgpr1 1712 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1713 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1714 ; GFX8: %op:vgpr_32 = nofpexcept V_FMAAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec 1715 ; GFX8: $vgpr0 = COPY %op 1716 ; GFX9-LABEL: name: v_fmaak_f16 1717 ; GFX9: liveins: $vgpr0, $vgpr1 1718 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1719 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1720 ; GFX9: %op:vgpr_32 = nofpexcept V_FMAAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec 1721 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1722 ; GFX9: $vgpr0 = COPY %and 1723 ; GFX10-LABEL: name: v_fmaak_f16 1724 ; GFX10: liveins: $vgpr0, $vgpr1 1725 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1726 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1727 ; GFX10: %op:vgpr_32 = nofpexcept V_FMAAK_F16 [[COPY]], [[COPY1]], 1234, implicit $mode, implicit $exec 1728 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1729 ; GFX10: $vgpr0 = COPY %and 1730 %0:vgpr_32 = COPY $vgpr0 1731 %1:vgpr_32 = COPY $vgpr1 1732 %op:vgpr_32 = nofpexcept V_FMAAK_F16 %0, %1, 1234, implicit $mode, implicit $exec 1733 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1734 $vgpr0 = COPY %and 1735 1736... 1737 1738--- 1739name: v_fmamk_f16 1740tracksRegLiveness: true 1741body: | 1742 bb.0: 1743 liveins: $vgpr0, $vgpr1 1744 ; GFX8-LABEL: name: v_fmamk_f16 1745 ; GFX8: liveins: $vgpr0, $vgpr1 1746 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1747 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1748 ; GFX8: %op:vgpr_32 = nofpexcept V_FMAMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec 1749 ; GFX8: $vgpr0 = COPY %op 1750 ; GFX9-LABEL: name: v_fmamk_f16 1751 ; GFX9: liveins: $vgpr0, $vgpr1 1752 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1753 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1754 ; GFX9: %op:vgpr_32 = nofpexcept V_FMAMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec 1755 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1756 ; GFX9: $vgpr0 = COPY %and 1757 ; GFX10-LABEL: name: v_fmamk_f16 1758 ; GFX10: liveins: $vgpr0, $vgpr1 1759 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1760 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1761 ; GFX10: %op:vgpr_32 = nofpexcept V_FMAMK_F16 [[COPY]], 1234, [[COPY1]], implicit $mode, implicit $exec 1762 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1763 ; GFX10: $vgpr0 = COPY %and 1764 %0:vgpr_32 = COPY $vgpr0 1765 %1:vgpr_32 = COPY $vgpr1 1766 %op:vgpr_32 = nofpexcept V_FMAMK_F16 %0, 1234, %1, implicit $mode, implicit $exec 1767 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1768 $vgpr0 = COPY %and 1769 1770... 1771 1772--- 1773name: v_mac_f16 1774tracksRegLiveness: true 1775body: | 1776 bb.0: 1777 liveins: $vgpr0, $vgpr1, $vgpr2 1778 ; GFX8-LABEL: name: v_mac_f16 1779 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2 1780 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1781 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1782 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1783 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec 1784 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1785 ; GFX8: $vgpr0 = COPY %op_vop2 1786 ; GFX8: $vgpr0 = COPY %op_vop3 1787 ; GFX9-LABEL: name: v_mac_f16 1788 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2 1789 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1790 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1791 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1792 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec 1793 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1794 ; GFX9: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1795 ; GFX9: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1796 ; GFX9: $vgpr0 = COPY %and_vop2 1797 ; GFX9: $vgpr0 = COPY %and_vop3 1798 ; GFX10-LABEL: name: v_mac_f16 1799 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2 1800 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1801 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1802 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1803 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec 1804 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1805 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1806 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1807 ; GFX10: $vgpr0 = COPY %and_vop2 1808 ; GFX10: $vgpr0 = COPY %and_vop3 1809 %0:vgpr_32 = COPY $vgpr0 1810 %1:vgpr_32 = COPY $vgpr1 1811 %2:vgpr_32 = COPY $vgpr2 1812 %op_vop2:vgpr_32 = nofpexcept V_MAC_F16_e32 %0, %1, %2, implicit $mode, implicit $exec 1813 %op_vop3:vgpr_32 = nofpexcept V_MAC_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec 1814 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1815 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1816 $vgpr0 = COPY %and_vop2 1817 $vgpr0 = COPY %and_vop3 1818 1819... 1820 1821--- 1822name: v_fmac_f16 1823tracksRegLiveness: true 1824body: | 1825 bb.0: 1826 liveins: $vgpr0, $vgpr1, $vgpr2 1827 ; GFX8-LABEL: name: v_fmac_f16 1828 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2 1829 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1830 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1831 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1832 ; GFX8: %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec 1833 ; GFX8: %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1834 ; GFX8: $vgpr0 = COPY %op_vop2 1835 ; GFX8: $vgpr0 = COPY %op_vop3 1836 ; GFX9-LABEL: name: v_fmac_f16 1837 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2 1838 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1839 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1840 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1841 ; GFX9: %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec 1842 ; GFX9: %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1843 ; GFX9: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1844 ; GFX9: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1845 ; GFX9: $vgpr0 = COPY %and_vop2 1846 ; GFX9: $vgpr0 = COPY %and_vop3 1847 ; GFX10-LABEL: name: v_fmac_f16 1848 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2 1849 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1850 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1851 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1852 ; GFX10: %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 [[COPY]], [[COPY1]], [[COPY2]], implicit $mode, implicit $exec 1853 ; GFX10: %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec 1854 ; GFX10: %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1855 ; GFX10: %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1856 ; GFX10: $vgpr0 = COPY %and_vop2 1857 ; GFX10: $vgpr0 = COPY %and_vop3 1858 %0:vgpr_32 = COPY $vgpr0 1859 %1:vgpr_32 = COPY $vgpr1 1860 %2:vgpr_32 = COPY $vgpr2 1861 %op_vop2:vgpr_32 = nofpexcept V_FMAC_F16_e32 %0, %1, %2, implicit $mode, implicit $exec 1862 %op_vop3:vgpr_32 = nofpexcept V_FMAC_F16_e64 0, %0, 0, %1, 0, %2, 0, 0, implicit $mode, implicit $exec 1863 %and_vop2:vgpr_32 = V_AND_B32_e32 65535, %op_vop2, implicit $exec 1864 %and_vop3:vgpr_32 = V_AND_B32_e32 65535, %op_vop3, implicit $exec 1865 $vgpr0 = COPY %and_vop2 1866 $vgpr0 = COPY %and_vop3 1867 1868... 1869 1870--- 1871name: no_fold_v_mad_mixlo_f16 1872tracksRegLiveness: true 1873body: | 1874 bb.0: 1875 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1876 ; GFX8-LABEL: name: no_fold_v_mad_mixlo_f16 1877 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1878 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1879 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1880 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1881 ; GFX8: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3 1882 ; GFX8: %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec 1883 ; GFX8: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1884 ; GFX8: $vgpr0 = COPY %and 1885 ; GFX9-LABEL: name: no_fold_v_mad_mixlo_f16 1886 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1887 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1888 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1889 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1890 ; GFX9: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3 1891 ; GFX9: %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec 1892 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1893 ; GFX9: $vgpr0 = COPY %and 1894 ; GFX10-LABEL: name: no_fold_v_mad_mixlo_f16 1895 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1896 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1897 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1898 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1899 ; GFX10: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3 1900 ; GFX10: %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec 1901 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1902 ; GFX10: $vgpr0 = COPY %and 1903 %0:vgpr_32 = COPY $vgpr0 1904 %1:vgpr_32 = COPY $vgpr1 1905 %2:vgpr_32 = COPY $vgpr2 1906 %3:vgpr_32 = COPY $vgpr3 1907 %op:vgpr_32 = nofpexcept V_MAD_MIXLO_F16 0, %0, 0, %1, 0, %2, 0, %3, 0, 0, implicit $mode, implicit $exec 1908 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1909 $vgpr0 = COPY %and 1910 1911... 1912 1913--- 1914name: no_fold_v_mad_mixhi_f16 1915tracksRegLiveness: true 1916body: | 1917 bb.0: 1918 liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1919 ; GFX8-LABEL: name: no_fold_v_mad_mixhi_f16 1920 ; GFX8: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1921 ; GFX8: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1922 ; GFX8: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1923 ; GFX8: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1924 ; GFX8: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3 1925 ; GFX8: %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec 1926 ; GFX8: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1927 ; GFX8: $vgpr0 = COPY %and 1928 ; GFX9-LABEL: name: no_fold_v_mad_mixhi_f16 1929 ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1930 ; GFX9: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1931 ; GFX9: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1932 ; GFX9: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1933 ; GFX9: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3 1934 ; GFX9: %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec 1935 ; GFX9: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1936 ; GFX9: $vgpr0 = COPY %and 1937 ; GFX10-LABEL: name: no_fold_v_mad_mixhi_f16 1938 ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3 1939 ; GFX10: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 1940 ; GFX10: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 1941 ; GFX10: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2 1942 ; GFX10: [[COPY3:%[0-9]+]]:vgpr_32 = COPY $vgpr3 1943 ; GFX10: %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, [[COPY3]], 0, 0, implicit $mode, implicit $exec 1944 ; GFX10: %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1945 ; GFX10: $vgpr0 = COPY %and 1946 %0:vgpr_32 = COPY $vgpr0 1947 %1:vgpr_32 = COPY $vgpr1 1948 %2:vgpr_32 = COPY $vgpr2 1949 %3:vgpr_32 = COPY $vgpr3 1950 %op:vgpr_32 = nofpexcept V_MAD_MIXHI_F16 0, %0, 0, %1, 0, %2, 0, %3, 0, 0, implicit $mode, implicit $exec 1951 %and:vgpr_32 = V_AND_B32_e32 65535, %op, implicit $exec 1952 $vgpr0 = COPY %and 1953 1954... 1955