1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=WAVE64 %s 3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=WAVE32 %s 4# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -global-isel-abort=0 -o - %s | FileCheck -check-prefix=GFX11 %s 5 6--- 7name: fcmp_false_s16_vv 8legalized: true 9regBankSelected: true 10 11body: | 12 bb.0: 13 liveins: $vgpr0, $vgpr1 14 ; WAVE64-LABEL: name: fcmp_false_s16_vv 15 ; WAVE64: liveins: $vgpr0, $vgpr1 16 ; WAVE64-NEXT: {{ $}} 17 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 18 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 19 ; WAVE64-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 20 ; WAVE64-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32) 21 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[TRUNC]](s16), [[TRUNC1]] 22 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 23 ; 24 ; WAVE32-LABEL: name: fcmp_false_s16_vv 25 ; WAVE32: liveins: $vgpr0, $vgpr1 26 ; WAVE32-NEXT: {{ $}} 27 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 28 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 29 ; WAVE32-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 30 ; WAVE32-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32) 31 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[TRUNC]](s16), [[TRUNC1]] 32 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 33 ; 34 ; GFX11-LABEL: name: fcmp_false_s16_vv 35 ; GFX11: liveins: $vgpr0, $vgpr1 36 ; GFX11-NEXT: {{ $}} 37 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 38 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 39 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 40 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32) 41 ; GFX11-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[TRUNC]](s16), [[TRUNC1]] 42 ; GFX11-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 43 %0:vgpr(s32) = COPY $vgpr0 44 %1:vgpr(s32) = COPY $vgpr1 45 %2:vgpr(s16) = G_TRUNC %0 46 %3:vgpr(s16) = G_TRUNC %1 47 %4:vcc(s1) = G_FCMP floatpred(false), %2, %3 48 S_ENDPGM 0, implicit %4 49... 50 51--- 52name: fcmp_oeq_s16_vv 53legalized: true 54regBankSelected: true 55 56body: | 57 bb.0: 58 liveins: $vgpr0, $vgpr1 59 ; WAVE64-LABEL: name: fcmp_oeq_s16_vv 60 ; WAVE64: liveins: $vgpr0, $vgpr1 61 ; WAVE64-NEXT: {{ $}} 62 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 63 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 64 ; WAVE64-NEXT: [[V_CMP_EQ_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_EQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 65 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_F16_e64_]] 66 ; 67 ; WAVE32-LABEL: name: fcmp_oeq_s16_vv 68 ; WAVE32: liveins: $vgpr0, $vgpr1 69 ; WAVE32-NEXT: {{ $}} 70 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 71 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 72 ; WAVE32-NEXT: [[V_CMP_EQ_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 73 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_F16_e64_]] 74 ; 75 ; GFX11-LABEL: name: fcmp_oeq_s16_vv 76 ; GFX11: liveins: $vgpr0, $vgpr1 77 ; GFX11-NEXT: {{ $}} 78 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 79 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 80 ; GFX11-NEXT: [[V_CMP_EQ_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 81 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_EQ_F16_fake16_e64_]] 82 %0:vgpr(s32) = COPY $vgpr0 83 %1:vgpr(s32) = COPY $vgpr1 84 %2:vgpr(s16) = G_TRUNC %0 85 %3:vgpr(s16) = G_TRUNC %1 86 %4:vcc(s1) = G_FCMP floatpred(oeq), %2, %3 87 S_ENDPGM 0, implicit %4 88... 89 90--- 91name: fcmp_ogt_s16_vv 92legalized: true 93regBankSelected: true 94 95body: | 96 bb.0: 97 liveins: $vgpr0, $vgpr1 98 ; WAVE64-LABEL: name: fcmp_ogt_s16_vv 99 ; WAVE64: liveins: $vgpr0, $vgpr1 100 ; WAVE64-NEXT: {{ $}} 101 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 102 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 103 ; WAVE64-NEXT: [[V_CMP_GT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_GT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 104 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_GT_F16_e64_]] 105 ; 106 ; WAVE32-LABEL: name: fcmp_ogt_s16_vv 107 ; WAVE32: liveins: $vgpr0, $vgpr1 108 ; WAVE32-NEXT: {{ $}} 109 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 110 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 111 ; WAVE32-NEXT: [[V_CMP_GT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 112 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_GT_F16_e64_]] 113 ; 114 ; GFX11-LABEL: name: fcmp_ogt_s16_vv 115 ; GFX11: liveins: $vgpr0, $vgpr1 116 ; GFX11-NEXT: {{ $}} 117 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 118 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 119 ; GFX11-NEXT: [[V_CMP_GT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 120 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_GT_F16_fake16_e64_]] 121 %0:vgpr(s32) = COPY $vgpr0 122 %1:vgpr(s32) = COPY $vgpr1 123 %2:vgpr(s16) = G_TRUNC %0 124 %3:vgpr(s16) = G_TRUNC %1 125 %4:vcc(s1) = G_FCMP floatpred(ogt), %2, %3 126 S_ENDPGM 0, implicit %4 127... 128 129--- 130name: fcmp_oge_s16_vv 131legalized: true 132regBankSelected: true 133 134body: | 135 bb.0: 136 liveins: $vgpr0, $vgpr1 137 ; WAVE64-LABEL: name: fcmp_oge_s16_vv 138 ; WAVE64: liveins: $vgpr0, $vgpr1 139 ; WAVE64-NEXT: {{ $}} 140 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 141 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 142 ; WAVE64-NEXT: [[V_CMP_GE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_GE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 143 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_GE_F16_e64_]] 144 ; 145 ; WAVE32-LABEL: name: fcmp_oge_s16_vv 146 ; WAVE32: liveins: $vgpr0, $vgpr1 147 ; WAVE32-NEXT: {{ $}} 148 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 149 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 150 ; WAVE32-NEXT: [[V_CMP_GE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 151 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_GE_F16_e64_]] 152 ; 153 ; GFX11-LABEL: name: fcmp_oge_s16_vv 154 ; GFX11: liveins: $vgpr0, $vgpr1 155 ; GFX11-NEXT: {{ $}} 156 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 157 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 158 ; GFX11-NEXT: [[V_CMP_GE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 159 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_GE_F16_fake16_e64_]] 160 %0:vgpr(s32) = COPY $vgpr0 161 %1:vgpr(s32) = COPY $vgpr1 162 %2:vgpr(s16) = G_TRUNC %0 163 %3:vgpr(s16) = G_TRUNC %1 164 %4:vcc(s1) = G_FCMP floatpred(oge), %2, %3 165 S_ENDPGM 0, implicit %4 166... 167 168--- 169name: fcmp_olt_s16_vv 170legalized: true 171regBankSelected: true 172 173body: | 174 bb.0: 175 liveins: $vgpr0, $vgpr1 176 ; WAVE64-LABEL: name: fcmp_olt_s16_vv 177 ; WAVE64: liveins: $vgpr0, $vgpr1 178 ; WAVE64-NEXT: {{ $}} 179 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 180 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 181 ; WAVE64-NEXT: [[V_CMP_LT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 182 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_F16_e64_]] 183 ; 184 ; WAVE32-LABEL: name: fcmp_olt_s16_vv 185 ; WAVE32: liveins: $vgpr0, $vgpr1 186 ; WAVE32-NEXT: {{ $}} 187 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 188 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 189 ; WAVE32-NEXT: [[V_CMP_LT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 190 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_F16_e64_]] 191 ; 192 ; GFX11-LABEL: name: fcmp_olt_s16_vv 193 ; GFX11: liveins: $vgpr0, $vgpr1 194 ; GFX11-NEXT: {{ $}} 195 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 196 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 197 ; GFX11-NEXT: [[V_CMP_LT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 198 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LT_F16_fake16_e64_]] 199 %0:vgpr(s32) = COPY $vgpr0 200 %1:vgpr(s32) = COPY $vgpr1 201 %2:vgpr(s16) = G_TRUNC %0 202 %3:vgpr(s16) = G_TRUNC %1 203 %4:vcc(s1) = G_FCMP floatpred(olt), %2, %3 204 S_ENDPGM 0, implicit %4 205... 206 207--- 208name: fcmp_ole_s16_vv 209legalized: true 210regBankSelected: true 211 212body: | 213 bb.0: 214 liveins: $vgpr0, $vgpr1 215 ; WAVE64-LABEL: name: fcmp_ole_s16_vv 216 ; WAVE64: liveins: $vgpr0, $vgpr1 217 ; WAVE64-NEXT: {{ $}} 218 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 219 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 220 ; WAVE64-NEXT: [[V_CMP_LE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 221 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_F16_e64_]] 222 ; 223 ; WAVE32-LABEL: name: fcmp_ole_s16_vv 224 ; WAVE32: liveins: $vgpr0, $vgpr1 225 ; WAVE32-NEXT: {{ $}} 226 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 227 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 228 ; WAVE32-NEXT: [[V_CMP_LE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 229 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_F16_e64_]] 230 ; 231 ; GFX11-LABEL: name: fcmp_ole_s16_vv 232 ; GFX11: liveins: $vgpr0, $vgpr1 233 ; GFX11-NEXT: {{ $}} 234 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 235 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 236 ; GFX11-NEXT: [[V_CMP_LE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 237 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LE_F16_fake16_e64_]] 238 %0:vgpr(s32) = COPY $vgpr0 239 %1:vgpr(s32) = COPY $vgpr1 240 %2:vgpr(s16) = G_TRUNC %0 241 %3:vgpr(s16) = G_TRUNC %1 242 %4:vcc(s1) = G_FCMP floatpred(ole), %2, %3 243 S_ENDPGM 0, implicit %4 244... 245--- 246name: fcmp_one_s16_vv 247legalized: true 248regBankSelected: true 249 250body: | 251 bb.0: 252 liveins: $vgpr0, $vgpr1 253 ; WAVE64-LABEL: name: fcmp_one_s16_vv 254 ; WAVE64: liveins: $vgpr0, $vgpr1 255 ; WAVE64-NEXT: {{ $}} 256 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 257 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 258 ; WAVE64-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 259 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]] 260 ; 261 ; WAVE32-LABEL: name: fcmp_one_s16_vv 262 ; WAVE32: liveins: $vgpr0, $vgpr1 263 ; WAVE32-NEXT: {{ $}} 264 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 265 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 266 ; WAVE32-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 267 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]] 268 ; 269 ; GFX11-LABEL: name: fcmp_one_s16_vv 270 ; GFX11: liveins: $vgpr0, $vgpr1 271 ; GFX11-NEXT: {{ $}} 272 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 273 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 274 ; GFX11-NEXT: [[V_CMP_LG_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 275 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_fake16_e64_]] 276 %0:vgpr(s32) = COPY $vgpr0 277 %1:vgpr(s32) = COPY $vgpr1 278 %2:vgpr(s16) = G_TRUNC %0 279 %3:vgpr(s16) = G_TRUNC %1 280 %4:vcc(s1) = G_FCMP floatpred(one), %2, %3 281 S_ENDPGM 0, implicit %4 282... 283 284--- 285name: fcmp_ord_s16_vv 286legalized: true 287regBankSelected: true 288 289body: | 290 bb.0: 291 liveins: $vgpr0, $vgpr1 292 ; WAVE64-LABEL: name: fcmp_ord_s16_vv 293 ; WAVE64: liveins: $vgpr0, $vgpr1 294 ; WAVE64-NEXT: {{ $}} 295 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 296 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 297 ; WAVE64-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 298 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]] 299 ; 300 ; WAVE32-LABEL: name: fcmp_ord_s16_vv 301 ; WAVE32: liveins: $vgpr0, $vgpr1 302 ; WAVE32-NEXT: {{ $}} 303 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 304 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 305 ; WAVE32-NEXT: [[V_CMP_LG_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 306 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_e64_]] 307 ; 308 ; GFX11-LABEL: name: fcmp_ord_s16_vv 309 ; GFX11: liveins: $vgpr0, $vgpr1 310 ; GFX11-NEXT: {{ $}} 311 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 312 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 313 ; GFX11-NEXT: [[V_CMP_LG_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 314 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_LG_F16_fake16_e64_]] 315 %0:vgpr(s32) = COPY $vgpr0 316 %1:vgpr(s32) = COPY $vgpr1 317 %2:vgpr(s16) = G_TRUNC %0 318 %3:vgpr(s16) = G_TRUNC %1 319 %4:vcc(s1) = G_FCMP floatpred(one), %2, %3 320 S_ENDPGM 0, implicit %4 321... 322 323--- 324name: fcmp_uno_s16_vv 325legalized: true 326regBankSelected: true 327 328body: | 329 bb.0: 330 liveins: $vgpr0, $vgpr1 331 ; WAVE64-LABEL: name: fcmp_uno_s16_vv 332 ; WAVE64: liveins: $vgpr0, $vgpr1 333 ; WAVE64-NEXT: {{ $}} 334 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 335 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 336 ; WAVE64-NEXT: [[V_CMP_U_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_U_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 337 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_U_F16_e64_]] 338 ; 339 ; WAVE32-LABEL: name: fcmp_uno_s16_vv 340 ; WAVE32: liveins: $vgpr0, $vgpr1 341 ; WAVE32-NEXT: {{ $}} 342 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 343 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 344 ; WAVE32-NEXT: [[V_CMP_U_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 345 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_U_F16_e64_]] 346 ; 347 ; GFX11-LABEL: name: fcmp_uno_s16_vv 348 ; GFX11: liveins: $vgpr0, $vgpr1 349 ; GFX11-NEXT: {{ $}} 350 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 351 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 352 ; GFX11-NEXT: [[V_CMP_U_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 353 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_U_F16_fake16_e64_]] 354 %0:vgpr(s32) = COPY $vgpr0 355 %1:vgpr(s32) = COPY $vgpr1 356 %2:vgpr(s16) = G_TRUNC %0 357 %3:vgpr(s16) = G_TRUNC %1 358 %4:vcc(s1) = G_FCMP floatpred(uno), %2, %3 359 S_ENDPGM 0, implicit %4 360... 361 362--- 363name: fcmp_ueq_s16_vv 364legalized: true 365regBankSelected: true 366 367body: | 368 bb.0: 369 liveins: $vgpr0, $vgpr1 370 ; WAVE64-LABEL: name: fcmp_ueq_s16_vv 371 ; WAVE64: liveins: $vgpr0, $vgpr1 372 ; WAVE64-NEXT: {{ $}} 373 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 374 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 375 ; WAVE64-NEXT: [[V_CMP_NLG_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NLG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 376 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLG_F16_e64_]] 377 ; 378 ; WAVE32-LABEL: name: fcmp_ueq_s16_vv 379 ; WAVE32: liveins: $vgpr0, $vgpr1 380 ; WAVE32-NEXT: {{ $}} 381 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 382 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 383 ; WAVE32-NEXT: [[V_CMP_NLG_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 384 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLG_F16_e64_]] 385 ; 386 ; GFX11-LABEL: name: fcmp_ueq_s16_vv 387 ; GFX11: liveins: $vgpr0, $vgpr1 388 ; GFX11-NEXT: {{ $}} 389 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 390 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 391 ; GFX11-NEXT: [[V_CMP_NLG_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 392 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLG_F16_fake16_e64_]] 393 %0:vgpr(s32) = COPY $vgpr0 394 %1:vgpr(s32) = COPY $vgpr1 395 %2:vgpr(s16) = G_TRUNC %0 396 %3:vgpr(s16) = G_TRUNC %1 397 %4:vcc(s1) = G_FCMP floatpred(ueq), %2, %3 398 S_ENDPGM 0, implicit %4 399... 400 401--- 402name: fcmp_ugt_s16_vv 403legalized: true 404regBankSelected: true 405 406body: | 407 bb.0: 408 liveins: $vgpr0, $vgpr1 409 ; WAVE64-LABEL: name: fcmp_ugt_s16_vv 410 ; WAVE64: liveins: $vgpr0, $vgpr1 411 ; WAVE64-NEXT: {{ $}} 412 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 413 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 414 ; WAVE64-NEXT: [[V_CMP_NLE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NLE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 415 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLE_F16_e64_]] 416 ; 417 ; WAVE32-LABEL: name: fcmp_ugt_s16_vv 418 ; WAVE32: liveins: $vgpr0, $vgpr1 419 ; WAVE32-NEXT: {{ $}} 420 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 421 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 422 ; WAVE32-NEXT: [[V_CMP_NLE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 423 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLE_F16_e64_]] 424 ; 425 ; GFX11-LABEL: name: fcmp_ugt_s16_vv 426 ; GFX11: liveins: $vgpr0, $vgpr1 427 ; GFX11-NEXT: {{ $}} 428 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 429 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 430 ; GFX11-NEXT: [[V_CMP_NLE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 431 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLE_F16_fake16_e64_]] 432 %0:vgpr(s32) = COPY $vgpr0 433 %1:vgpr(s32) = COPY $vgpr1 434 %2:vgpr(s16) = G_TRUNC %0 435 %3:vgpr(s16) = G_TRUNC %1 436 %4:vcc(s1) = G_FCMP floatpred(ugt), %2, %3 437 S_ENDPGM 0, implicit %4 438... 439 440--- 441name: fcmp_uge_s16_vv 442legalized: true 443regBankSelected: true 444 445body: | 446 bb.0: 447 liveins: $vgpr0, $vgpr1 448 ; WAVE64-LABEL: name: fcmp_uge_s16_vv 449 ; WAVE64: liveins: $vgpr0, $vgpr1 450 ; WAVE64-NEXT: {{ $}} 451 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 452 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 453 ; WAVE64-NEXT: [[V_CMP_NLT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NLT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 454 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLT_F16_e64_]] 455 ; 456 ; WAVE32-LABEL: name: fcmp_uge_s16_vv 457 ; WAVE32: liveins: $vgpr0, $vgpr1 458 ; WAVE32-NEXT: {{ $}} 459 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 460 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 461 ; WAVE32-NEXT: [[V_CMP_NLT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 462 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLT_F16_e64_]] 463 ; 464 ; GFX11-LABEL: name: fcmp_uge_s16_vv 465 ; GFX11: liveins: $vgpr0, $vgpr1 466 ; GFX11-NEXT: {{ $}} 467 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 468 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 469 ; GFX11-NEXT: [[V_CMP_NLT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 470 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NLT_F16_fake16_e64_]] 471 %0:vgpr(s32) = COPY $vgpr0 472 %1:vgpr(s32) = COPY $vgpr1 473 %2:vgpr(s16) = G_TRUNC %0 474 %3:vgpr(s16) = G_TRUNC %1 475 %4:vcc(s1) = G_FCMP floatpred(uge), %2, %3 476 S_ENDPGM 0, implicit %4 477... 478 479--- 480name: fcmp_ult_s16_vv 481legalized: true 482regBankSelected: true 483 484body: | 485 bb.0: 486 liveins: $vgpr0, $vgpr1 487 ; WAVE64-LABEL: name: fcmp_ult_s16_vv 488 ; WAVE64: liveins: $vgpr0, $vgpr1 489 ; WAVE64-NEXT: {{ $}} 490 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 491 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 492 ; WAVE64-NEXT: [[V_CMP_NGE_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NGE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 493 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGE_F16_e64_]] 494 ; 495 ; WAVE32-LABEL: name: fcmp_ult_s16_vv 496 ; WAVE32: liveins: $vgpr0, $vgpr1 497 ; WAVE32-NEXT: {{ $}} 498 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 499 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 500 ; WAVE32-NEXT: [[V_CMP_NGE_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 501 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGE_F16_e64_]] 502 ; 503 ; GFX11-LABEL: name: fcmp_ult_s16_vv 504 ; GFX11: liveins: $vgpr0, $vgpr1 505 ; GFX11-NEXT: {{ $}} 506 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 507 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 508 ; GFX11-NEXT: [[V_CMP_NGE_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 509 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGE_F16_fake16_e64_]] 510 %0:vgpr(s32) = COPY $vgpr0 511 %1:vgpr(s32) = COPY $vgpr1 512 %2:vgpr(s16) = G_TRUNC %0 513 %3:vgpr(s16) = G_TRUNC %1 514 %4:vcc(s1) = G_FCMP floatpred(ult), %2, %3 515 S_ENDPGM 0, implicit %4 516... 517 518--- 519name: fcmp_ule_s16_vv 520legalized: true 521regBankSelected: true 522 523body: | 524 bb.0: 525 liveins: $vgpr0, $vgpr1 526 ; WAVE64-LABEL: name: fcmp_ule_s16_vv 527 ; WAVE64: liveins: $vgpr0, $vgpr1 528 ; WAVE64-NEXT: {{ $}} 529 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 530 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 531 ; WAVE64-NEXT: [[V_CMP_NGT_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NGT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 532 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGT_F16_e64_]] 533 ; 534 ; WAVE32-LABEL: name: fcmp_ule_s16_vv 535 ; WAVE32: liveins: $vgpr0, $vgpr1 536 ; WAVE32-NEXT: {{ $}} 537 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 538 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 539 ; WAVE32-NEXT: [[V_CMP_NGT_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 540 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGT_F16_e64_]] 541 ; 542 ; GFX11-LABEL: name: fcmp_ule_s16_vv 543 ; GFX11: liveins: $vgpr0, $vgpr1 544 ; GFX11-NEXT: {{ $}} 545 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 546 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 547 ; GFX11-NEXT: [[V_CMP_NGT_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 548 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NGT_F16_fake16_e64_]] 549 %0:vgpr(s32) = COPY $vgpr0 550 %1:vgpr(s32) = COPY $vgpr1 551 %2:vgpr(s16) = G_TRUNC %0 552 %3:vgpr(s16) = G_TRUNC %1 553 %4:vcc(s1) = G_FCMP floatpred(ule), %2, %3 554 S_ENDPGM 0, implicit %4 555... 556 557--- 558name: fcmp_une_s16_vv 559legalized: true 560regBankSelected: true 561 562body: | 563 bb.0: 564 liveins: $vgpr0, $vgpr1 565 ; WAVE64-LABEL: name: fcmp_une_s16_vv 566 ; WAVE64: liveins: $vgpr0, $vgpr1 567 ; WAVE64-NEXT: {{ $}} 568 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 569 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 570 ; WAVE64-NEXT: [[V_CMP_NEQ_F16_e64_:%[0-9]+]]:sreg_64_xexec = nofpexcept V_CMP_NEQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 571 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_NEQ_F16_e64_]] 572 ; 573 ; WAVE32-LABEL: name: fcmp_une_s16_vv 574 ; WAVE32: liveins: $vgpr0, $vgpr1 575 ; WAVE32-NEXT: {{ $}} 576 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 577 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 578 ; WAVE32-NEXT: [[V_CMP_NEQ_F16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 579 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_NEQ_F16_e64_]] 580 ; 581 ; GFX11-LABEL: name: fcmp_une_s16_vv 582 ; GFX11: liveins: $vgpr0, $vgpr1 583 ; GFX11-NEXT: {{ $}} 584 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 585 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 586 ; GFX11-NEXT: [[V_CMP_NEQ_F16_fake16_e64_:%[0-9]+]]:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F16_fake16_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 587 ; GFX11-NEXT: S_ENDPGM 0, implicit [[V_CMP_NEQ_F16_fake16_e64_]] 588 %0:vgpr(s32) = COPY $vgpr0 589 %1:vgpr(s32) = COPY $vgpr1 590 %2:vgpr(s16) = G_TRUNC %0 591 %3:vgpr(s16) = G_TRUNC %1 592 %4:vcc(s1) = G_FCMP floatpred(une), %2, %3 593 S_ENDPGM 0, implicit %4 594... 595 596--- 597name: fcmp_true_s16_vv 598legalized: true 599regBankSelected: true 600 601body: | 602 bb.0: 603 liveins: $vgpr0, $vgpr1 604 ; WAVE64-LABEL: name: fcmp_true_s16_vv 605 ; WAVE64: liveins: $vgpr0, $vgpr1 606 ; WAVE64-NEXT: {{ $}} 607 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 608 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 609 ; WAVE64-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 610 ; WAVE64-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32) 611 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[TRUNC]](s16), [[TRUNC1]] 612 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 613 ; 614 ; WAVE32-LABEL: name: fcmp_true_s16_vv 615 ; WAVE32: liveins: $vgpr0, $vgpr1 616 ; WAVE32-NEXT: {{ $}} 617 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 618 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 619 ; WAVE32-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 620 ; WAVE32-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32) 621 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[TRUNC]](s16), [[TRUNC1]] 622 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 623 ; 624 ; GFX11-LABEL: name: fcmp_true_s16_vv 625 ; GFX11: liveins: $vgpr0, $vgpr1 626 ; GFX11-NEXT: {{ $}} 627 ; GFX11-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 628 ; GFX11-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 629 ; GFX11-NEXT: [[TRUNC:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY]](s32) 630 ; GFX11-NEXT: [[TRUNC1:%[0-9]+]]:vgpr(s16) = G_TRUNC [[COPY1]](s32) 631 ; GFX11-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[TRUNC]](s16), [[TRUNC1]] 632 ; GFX11-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 633 %0:vgpr(s32) = COPY $vgpr0 634 %1:vgpr(s32) = COPY $vgpr1 635 %2:vgpr(s16) = G_TRUNC %0 636 %3:vgpr(s16) = G_TRUNC %1 637 %4:vcc(s1) = G_FCMP floatpred(true), %2, %3 638 S_ENDPGM 0, implicit %4 639... 640 641