1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -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=WAVE32 %s 5 6--- 7name: fcmp_false_s32_vv 8legalized: true 9regBankSelected: true 10 11body: | 12 bb.0: 13 liveins: $vgpr0, $vgpr1 14 ; WAVE64-LABEL: name: fcmp_false_s32_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: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s32), [[COPY1]] 20 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 21 ; WAVE32-LABEL: name: fcmp_false_s32_vv 22 ; WAVE32: liveins: $vgpr0, $vgpr1 23 ; WAVE32-NEXT: {{ $}} 24 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 25 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 26 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s32), [[COPY1]] 27 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 28 %0:vgpr(s32) = COPY $vgpr0 29 %1:vgpr(s32) = COPY $vgpr1 30 %2:vcc(s1) = G_FCMP floatpred(false), %0, %1 31 S_ENDPGM 0, implicit %2 32... 33 34--- 35name: fcmp_oeq_s32_vv 36legalized: true 37regBankSelected: true 38 39body: | 40 bb.0: 41 liveins: $vgpr0, $vgpr1 42 ; WAVE64-LABEL: name: fcmp_oeq_s32_vv 43 ; WAVE64: liveins: $vgpr0, $vgpr1 44 ; WAVE64-NEXT: {{ $}} 45 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 46 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 47 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 48 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 49 ; WAVE32-LABEL: name: fcmp_oeq_s32_vv 50 ; WAVE32: liveins: $vgpr0, $vgpr1 51 ; WAVE32-NEXT: {{ $}} 52 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 53 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 54 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 55 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 56 %0:vgpr(s32) = COPY $vgpr0 57 %1:vgpr(s32) = COPY $vgpr1 58 %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1 59 S_ENDPGM 0, implicit %2 60... 61 62--- 63name: fcmp_ogt_s32_vv 64legalized: true 65regBankSelected: true 66 67body: | 68 bb.0: 69 liveins: $vgpr0, $vgpr1 70 ; WAVE64-LABEL: name: fcmp_ogt_s32_vv 71 ; WAVE64: liveins: $vgpr0, $vgpr1 72 ; WAVE64-NEXT: {{ $}} 73 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 74 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 75 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 76 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 77 ; WAVE32-LABEL: name: fcmp_ogt_s32_vv 78 ; WAVE32: liveins: $vgpr0, $vgpr1 79 ; WAVE32-NEXT: {{ $}} 80 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 81 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 82 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 83 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 84 %0:vgpr(s32) = COPY $vgpr0 85 %1:vgpr(s32) = COPY $vgpr1 86 %2:vcc(s1) = G_FCMP floatpred(ogt), %0, %1 87 S_ENDPGM 0, implicit %2 88... 89 90--- 91name: fcmp_oge_s32_vv 92legalized: true 93regBankSelected: true 94 95body: | 96 bb.0: 97 liveins: $vgpr0, $vgpr1 98 ; WAVE64-LABEL: name: fcmp_oge_s32_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: %2:sreg_64_xexec = nofpexcept V_CMP_GE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 104 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 105 ; WAVE32-LABEL: name: fcmp_oge_s32_vv 106 ; WAVE32: liveins: $vgpr0, $vgpr1 107 ; WAVE32-NEXT: {{ $}} 108 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 109 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 110 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 111 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 112 %0:vgpr(s32) = COPY $vgpr0 113 %1:vgpr(s32) = COPY $vgpr1 114 %2:vcc(s1) = G_FCMP floatpred(oge), %0, %1 115 S_ENDPGM 0, implicit %2 116... 117 118--- 119name: fcmp_olt_s32_vv 120legalized: true 121regBankSelected: true 122 123body: | 124 bb.0: 125 liveins: $vgpr0, $vgpr1 126 ; WAVE64-LABEL: name: fcmp_olt_s32_vv 127 ; WAVE64: liveins: $vgpr0, $vgpr1 128 ; WAVE64-NEXT: {{ $}} 129 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 130 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 131 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 132 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 133 ; WAVE32-LABEL: name: fcmp_olt_s32_vv 134 ; WAVE32: liveins: $vgpr0, $vgpr1 135 ; WAVE32-NEXT: {{ $}} 136 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 137 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 138 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 139 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 140 %0:vgpr(s32) = COPY $vgpr0 141 %1:vgpr(s32) = COPY $vgpr1 142 %2:vcc(s1) = G_FCMP floatpred(olt), %0, %1 143 S_ENDPGM 0, implicit %2 144... 145 146--- 147name: fcmp_ole_s32_vv 148legalized: true 149regBankSelected: true 150 151body: | 152 bb.0: 153 liveins: $vgpr0, $vgpr1 154 ; WAVE64-LABEL: name: fcmp_ole_s32_vv 155 ; WAVE64: liveins: $vgpr0, $vgpr1 156 ; WAVE64-NEXT: {{ $}} 157 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 158 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 159 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 160 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 161 ; WAVE32-LABEL: name: fcmp_ole_s32_vv 162 ; WAVE32: liveins: $vgpr0, $vgpr1 163 ; WAVE32-NEXT: {{ $}} 164 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 165 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 166 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 167 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 168 %0:vgpr(s32) = COPY $vgpr0 169 %1:vgpr(s32) = COPY $vgpr1 170 %2:vcc(s1) = G_FCMP floatpred(ole), %0, %1 171 S_ENDPGM 0, implicit %2 172... 173 174--- 175name: fcmp_one_s32_vv 176legalized: true 177regBankSelected: true 178 179body: | 180 bb.0: 181 liveins: $vgpr0, $vgpr1 182 ; WAVE64-LABEL: name: fcmp_one_s32_vv 183 ; WAVE64: liveins: $vgpr0, $vgpr1 184 ; WAVE64-NEXT: {{ $}} 185 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 186 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 187 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 188 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 189 ; WAVE32-LABEL: name: fcmp_one_s32_vv 190 ; WAVE32: liveins: $vgpr0, $vgpr1 191 ; WAVE32-NEXT: {{ $}} 192 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 193 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 194 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 195 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 196 %0:vgpr(s32) = COPY $vgpr0 197 %1:vgpr(s32) = COPY $vgpr1 198 %2:vcc(s1) = G_FCMP floatpred(one), %0, %1 199 S_ENDPGM 0, implicit %2 200... 201 202--- 203name: fcmp_ord_s32_vv 204legalized: true 205regBankSelected: true 206 207body: | 208 bb.0: 209 liveins: $vgpr0, $vgpr1 210 ; WAVE64-LABEL: name: fcmp_ord_s32_vv 211 ; WAVE64: liveins: $vgpr0, $vgpr1 212 ; WAVE64-NEXT: {{ $}} 213 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 214 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 215 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_O_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 216 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 217 ; WAVE32-LABEL: name: fcmp_ord_s32_vv 218 ; WAVE32: liveins: $vgpr0, $vgpr1 219 ; WAVE32-NEXT: {{ $}} 220 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 221 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 222 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_O_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 223 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 224 %0:vgpr(s32) = COPY $vgpr0 225 %1:vgpr(s32) = COPY $vgpr1 226 %2:vcc(s1) = G_FCMP floatpred(ord), %0, %1 227 S_ENDPGM 0, implicit %2 228... 229 230--- 231name: fcmp_uno_s32_vv 232legalized: true 233regBankSelected: true 234 235body: | 236 bb.0: 237 liveins: $vgpr0, $vgpr1 238 ; WAVE64-LABEL: name: fcmp_uno_s32_vv 239 ; WAVE64: liveins: $vgpr0, $vgpr1 240 ; WAVE64-NEXT: {{ $}} 241 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 242 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 243 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_U_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 244 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 245 ; WAVE32-LABEL: name: fcmp_uno_s32_vv 246 ; WAVE32: liveins: $vgpr0, $vgpr1 247 ; WAVE32-NEXT: {{ $}} 248 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 249 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 250 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 251 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 252 %0:vgpr(s32) = COPY $vgpr0 253 %1:vgpr(s32) = COPY $vgpr1 254 %2:vcc(s1) = G_FCMP floatpred(uno), %0, %1 255 S_ENDPGM 0, implicit %2 256... 257 258--- 259name: fcmp_ueq_s32_vv 260legalized: true 261regBankSelected: true 262 263body: | 264 bb.0: 265 liveins: $vgpr0, $vgpr1 266 ; WAVE64-LABEL: name: fcmp_ueq_s32_vv 267 ; WAVE64: liveins: $vgpr0, $vgpr1 268 ; WAVE64-NEXT: {{ $}} 269 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 270 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 271 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 272 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 273 ; WAVE32-LABEL: name: fcmp_ueq_s32_vv 274 ; WAVE32: liveins: $vgpr0, $vgpr1 275 ; WAVE32-NEXT: {{ $}} 276 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 277 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 278 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 279 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 280 %0:vgpr(s32) = COPY $vgpr0 281 %1:vgpr(s32) = COPY $vgpr1 282 %2:vcc(s1) = G_FCMP floatpred(ueq), %0, %1 283 S_ENDPGM 0, implicit %2 284... 285 286--- 287name: fcmp_ugt_s32_vv 288legalized: true 289regBankSelected: true 290 291body: | 292 bb.0: 293 liveins: $vgpr0, $vgpr1 294 ; WAVE64-LABEL: name: fcmp_ugt_s32_vv 295 ; WAVE64: liveins: $vgpr0, $vgpr1 296 ; WAVE64-NEXT: {{ $}} 297 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 298 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 299 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 300 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 301 ; WAVE32-LABEL: name: fcmp_ugt_s32_vv 302 ; WAVE32: liveins: $vgpr0, $vgpr1 303 ; WAVE32-NEXT: {{ $}} 304 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 305 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 306 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 307 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 308 %0:vgpr(s32) = COPY $vgpr0 309 %1:vgpr(s32) = COPY $vgpr1 310 %2:vcc(s1) = G_FCMP floatpred(ugt), %0, %1 311 S_ENDPGM 0, implicit %2 312... 313 314--- 315name: fcmp_uge_s32_vv 316legalized: true 317regBankSelected: true 318 319body: | 320 bb.0: 321 liveins: $vgpr0, $vgpr1 322 ; WAVE64-LABEL: name: fcmp_uge_s32_vv 323 ; WAVE64: liveins: $vgpr0, $vgpr1 324 ; WAVE64-NEXT: {{ $}} 325 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 326 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 327 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 328 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 329 ; WAVE32-LABEL: name: fcmp_uge_s32_vv 330 ; WAVE32: liveins: $vgpr0, $vgpr1 331 ; WAVE32-NEXT: {{ $}} 332 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 333 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 334 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 335 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 336 %0:vgpr(s32) = COPY $vgpr0 337 %1:vgpr(s32) = COPY $vgpr1 338 %2:vcc(s1) = G_FCMP floatpred(uge), %0, %1 339 S_ENDPGM 0, implicit %2 340... 341 342--- 343name: fcmp_ult_s32_vv 344legalized: true 345regBankSelected: true 346 347body: | 348 bb.0: 349 liveins: $vgpr0, $vgpr1 350 ; WAVE64-LABEL: name: fcmp_ult_s32_vv 351 ; WAVE64: liveins: $vgpr0, $vgpr1 352 ; WAVE64-NEXT: {{ $}} 353 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 354 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 355 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 356 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 357 ; WAVE32-LABEL: name: fcmp_ult_s32_vv 358 ; WAVE32: liveins: $vgpr0, $vgpr1 359 ; WAVE32-NEXT: {{ $}} 360 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 361 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 362 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 363 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 364 %0:vgpr(s32) = COPY $vgpr0 365 %1:vgpr(s32) = COPY $vgpr1 366 %2:vcc(s1) = G_FCMP floatpred(ult), %0, %1 367 S_ENDPGM 0, implicit %2 368... 369 370--- 371name: fcmp_ule_s32_vv 372legalized: true 373regBankSelected: true 374 375body: | 376 bb.0: 377 liveins: $vgpr0, $vgpr1 378 ; WAVE64-LABEL: name: fcmp_ule_s32_vv 379 ; WAVE64: liveins: $vgpr0, $vgpr1 380 ; WAVE64-NEXT: {{ $}} 381 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 382 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 383 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 384 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 385 ; WAVE32-LABEL: name: fcmp_ule_s32_vv 386 ; WAVE32: liveins: $vgpr0, $vgpr1 387 ; WAVE32-NEXT: {{ $}} 388 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 389 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 390 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 391 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 392 %0:vgpr(s32) = COPY $vgpr0 393 %1:vgpr(s32) = COPY $vgpr1 394 %2:vcc(s1) = G_FCMP floatpred(ule), %0, %1 395 S_ENDPGM 0, implicit %2 396... 397 398--- 399name: fcmp_une_s32_vv 400legalized: true 401regBankSelected: true 402 403body: | 404 bb.0: 405 liveins: $vgpr0, $vgpr1 406 ; WAVE64-LABEL: name: fcmp_une_s32_vv 407 ; WAVE64: liveins: $vgpr0, $vgpr1 408 ; WAVE64-NEXT: {{ $}} 409 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 410 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 411 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NEQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 412 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 413 ; WAVE32-LABEL: name: fcmp_une_s32_vv 414 ; WAVE32: liveins: $vgpr0, $vgpr1 415 ; WAVE32-NEXT: {{ $}} 416 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 417 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 418 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 419 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 420 %0:vgpr(s32) = COPY $vgpr0 421 %1:vgpr(s32) = COPY $vgpr1 422 %2:vcc(s1) = G_FCMP floatpred(une), %0, %1 423 S_ENDPGM 0, implicit %2 424... 425 426--- 427name: fcmp_true_s32_vv 428legalized: true 429regBankSelected: true 430 431body: | 432 bb.0: 433 liveins: $vgpr0, $vgpr1 434 ; WAVE64-LABEL: name: fcmp_true_s32_vv 435 ; WAVE64: liveins: $vgpr0, $vgpr1 436 ; WAVE64-NEXT: {{ $}} 437 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 438 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 439 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s32), [[COPY1]] 440 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 441 ; WAVE32-LABEL: name: fcmp_true_s32_vv 442 ; WAVE32: liveins: $vgpr0, $vgpr1 443 ; WAVE32-NEXT: {{ $}} 444 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s32) = COPY $vgpr0 445 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s32) = COPY $vgpr1 446 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s32), [[COPY1]] 447 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 448 %0:vgpr(s32) = COPY $vgpr0 449 %1:vgpr(s32) = COPY $vgpr1 450 %2:vcc(s1) = G_FCMP floatpred(true), %0, %1 451 S_ENDPGM 0, implicit %2 452... 453 454--- 455name: fcmp_false_s64_vv 456legalized: true 457regBankSelected: true 458 459body: | 460 bb.0: 461 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 462 ; WAVE64-LABEL: name: fcmp_false_s64_vv 463 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 464 ; WAVE64-NEXT: {{ $}} 465 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 466 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3 467 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s64), [[COPY1]] 468 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 469 ; WAVE32-LABEL: name: fcmp_false_s64_vv 470 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 471 ; WAVE32-NEXT: {{ $}} 472 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 473 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3 474 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(false), [[COPY]](s64), [[COPY1]] 475 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 476 %0:vgpr(s64) = COPY $vgpr0_vgpr1 477 %1:vgpr(s64) = COPY $vgpr2_vgpr3 478 %2:vcc(s1) = G_FCMP floatpred(false), %0, %1 479 S_ENDPGM 0, implicit %2 480... 481 482--- 483name: fcmp_oeq_s64_vv 484legalized: true 485regBankSelected: true 486 487body: | 488 bb.0: 489 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 490 ; WAVE64-LABEL: name: fcmp_oeq_s64_vv 491 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 492 ; WAVE64-NEXT: {{ $}} 493 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 494 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 495 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 496 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 497 ; WAVE32-LABEL: name: fcmp_oeq_s64_vv 498 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 499 ; WAVE32-NEXT: {{ $}} 500 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 501 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 502 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 503 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 504 %0:vgpr(s64) = COPY $vgpr0_vgpr1 505 %1:vgpr(s64) = COPY $vgpr2_vgpr3 506 %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1 507 S_ENDPGM 0, implicit %2 508... 509 510--- 511name: fcmp_ogt_s64_vv 512legalized: true 513regBankSelected: true 514 515body: | 516 bb.0: 517 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 518 ; WAVE64-LABEL: name: fcmp_ogt_s64_vv 519 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 520 ; WAVE64-NEXT: {{ $}} 521 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 522 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 523 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 524 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 525 ; WAVE32-LABEL: name: fcmp_ogt_s64_vv 526 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 527 ; WAVE32-NEXT: {{ $}} 528 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 529 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 530 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 531 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 532 %0:vgpr(s64) = COPY $vgpr0_vgpr1 533 %1:vgpr(s64) = COPY $vgpr2_vgpr3 534 %2:vcc(s1) = G_FCMP floatpred(ogt), %0, %1 535 S_ENDPGM 0, implicit %2 536... 537 538--- 539name: fcmp_oge_s64_vv 540legalized: true 541regBankSelected: true 542 543body: | 544 bb.0: 545 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 546 ; WAVE64-LABEL: name: fcmp_oge_s64_vv 547 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 548 ; WAVE64-NEXT: {{ $}} 549 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 550 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 551 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_GE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 552 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 553 ; WAVE32-LABEL: name: fcmp_oge_s64_vv 554 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 555 ; WAVE32-NEXT: {{ $}} 556 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 557 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 558 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_GE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 559 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 560 %0:vgpr(s64) = COPY $vgpr0_vgpr1 561 %1:vgpr(s64) = COPY $vgpr2_vgpr3 562 %2:vcc(s1) = G_FCMP floatpred(oge), %0, %1 563 S_ENDPGM 0, implicit %2 564... 565 566--- 567name: fcmp_olt_s64_vv 568legalized: true 569regBankSelected: true 570 571body: | 572 bb.0: 573 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 574 ; WAVE64-LABEL: name: fcmp_olt_s64_vv 575 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 576 ; WAVE64-NEXT: {{ $}} 577 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 578 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 579 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 580 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 581 ; WAVE32-LABEL: name: fcmp_olt_s64_vv 582 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 583 ; WAVE32-NEXT: {{ $}} 584 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 585 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 586 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 587 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 588 %0:vgpr(s64) = COPY $vgpr0_vgpr1 589 %1:vgpr(s64) = COPY $vgpr2_vgpr3 590 %2:vcc(s1) = G_FCMP floatpred(olt), %0, %1 591 S_ENDPGM 0, implicit %2 592... 593 594--- 595name: fcmp_ole_s64_vv 596legalized: true 597regBankSelected: true 598 599body: | 600 bb.0: 601 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 602 ; WAVE64-LABEL: name: fcmp_ole_s64_vv 603 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 604 ; WAVE64-NEXT: {{ $}} 605 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 606 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 607 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 608 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 609 ; WAVE32-LABEL: name: fcmp_ole_s64_vv 610 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 611 ; WAVE32-NEXT: {{ $}} 612 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 613 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 614 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 615 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 616 %0:vgpr(s64) = COPY $vgpr0_vgpr1 617 %1:vgpr(s64) = COPY $vgpr2_vgpr3 618 %2:vcc(s1) = G_FCMP floatpred(ole), %0, %1 619 S_ENDPGM 0, implicit %2 620... 621 622--- 623name: fcmp_one_s64_vv 624legalized: true 625regBankSelected: true 626 627body: | 628 bb.0: 629 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 630 ; WAVE64-LABEL: name: fcmp_one_s64_vv 631 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 632 ; WAVE64-NEXT: {{ $}} 633 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 634 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 635 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_LG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 636 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 637 ; WAVE32-LABEL: name: fcmp_one_s64_vv 638 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 639 ; WAVE32-NEXT: {{ $}} 640 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 641 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 642 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_LG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 643 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 644 %0:vgpr(s64) = COPY $vgpr0_vgpr1 645 %1:vgpr(s64) = COPY $vgpr2_vgpr3 646 %2:vcc(s1) = G_FCMP floatpred(one), %0, %1 647 S_ENDPGM 0, implicit %2 648... 649 650--- 651name: fcmp_ord_s64_vv 652legalized: true 653regBankSelected: true 654 655body: | 656 bb.0: 657 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 658 ; WAVE64-LABEL: name: fcmp_ord_s64_vv 659 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 660 ; WAVE64-NEXT: {{ $}} 661 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 662 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 663 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_O_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 664 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 665 ; WAVE32-LABEL: name: fcmp_ord_s64_vv 666 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 667 ; WAVE32-NEXT: {{ $}} 668 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 669 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 670 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_O_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 671 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 672 %0:vgpr(s64) = COPY $vgpr0_vgpr1 673 %1:vgpr(s64) = COPY $vgpr2_vgpr3 674 %2:vcc(s1) = G_FCMP floatpred(ord), %0, %1 675 S_ENDPGM 0, implicit %2 676... 677 678--- 679name: fcmp_uno_s64_vv 680legalized: true 681regBankSelected: true 682 683body: | 684 bb.0: 685 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 686 ; WAVE64-LABEL: name: fcmp_uno_s64_vv 687 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 688 ; WAVE64-NEXT: {{ $}} 689 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 690 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 691 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_U_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 692 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 693 ; WAVE32-LABEL: name: fcmp_uno_s64_vv 694 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 695 ; WAVE32-NEXT: {{ $}} 696 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 697 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 698 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_U_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 699 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 700 %0:vgpr(s64) = COPY $vgpr0_vgpr1 701 %1:vgpr(s64) = COPY $vgpr2_vgpr3 702 %2:vcc(s1) = G_FCMP floatpred(uno), %0, %1 703 S_ENDPGM 0, implicit %2 704... 705 706--- 707name: fcmp_ueq_s64_vv 708legalized: true 709regBankSelected: true 710 711body: | 712 bb.0: 713 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 714 ; WAVE64-LABEL: name: fcmp_ueq_s64_vv 715 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 716 ; WAVE64-NEXT: {{ $}} 717 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 718 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 719 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 720 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 721 ; WAVE32-LABEL: name: fcmp_ueq_s64_vv 722 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 723 ; WAVE32-NEXT: {{ $}} 724 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 725 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 726 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLG_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 727 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 728 %0:vgpr(s64) = COPY $vgpr0_vgpr1 729 %1:vgpr(s64) = COPY $vgpr2_vgpr3 730 %2:vcc(s1) = G_FCMP floatpred(ueq), %0, %1 731 S_ENDPGM 0, implicit %2 732... 733 734--- 735name: fcmp_ugt_s64_vv 736legalized: true 737regBankSelected: true 738 739body: | 740 bb.0: 741 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 742 ; WAVE64-LABEL: name: fcmp_ugt_s64_vv 743 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 744 ; WAVE64-NEXT: {{ $}} 745 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 746 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 747 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 748 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 749 ; WAVE32-LABEL: name: fcmp_ugt_s64_vv 750 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 751 ; WAVE32-NEXT: {{ $}} 752 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 753 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 754 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 755 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 756 %0:vgpr(s64) = COPY $vgpr0_vgpr1 757 %1:vgpr(s64) = COPY $vgpr2_vgpr3 758 %2:vcc(s1) = G_FCMP floatpred(ugt), %0, %1 759 S_ENDPGM 0, implicit %2 760... 761 762--- 763name: fcmp_uge_s64_vv 764legalized: true 765regBankSelected: true 766 767body: | 768 bb.0: 769 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 770 ; WAVE64-LABEL: name: fcmp_uge_s64_vv 771 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 772 ; WAVE64-NEXT: {{ $}} 773 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 774 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 775 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NLT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 776 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 777 ; WAVE32-LABEL: name: fcmp_uge_s64_vv 778 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 779 ; WAVE32-NEXT: {{ $}} 780 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 781 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 782 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NLT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 783 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 784 %0:vgpr(s64) = COPY $vgpr0_vgpr1 785 %1:vgpr(s64) = COPY $vgpr2_vgpr3 786 %2:vcc(s1) = G_FCMP floatpred(uge), %0, %1 787 S_ENDPGM 0, implicit %2 788... 789 790--- 791name: fcmp_ult_s64_vv 792legalized: true 793regBankSelected: true 794 795body: | 796 bb.0: 797 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 798 ; WAVE64-LABEL: name: fcmp_ult_s64_vv 799 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 800 ; WAVE64-NEXT: {{ $}} 801 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 802 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 803 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 804 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 805 ; WAVE32-LABEL: name: fcmp_ult_s64_vv 806 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 807 ; WAVE32-NEXT: {{ $}} 808 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 809 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 810 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGE_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 811 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 812 %0:vgpr(s64) = COPY $vgpr0_vgpr1 813 %1:vgpr(s64) = COPY $vgpr2_vgpr3 814 %2:vcc(s1) = G_FCMP floatpred(ult), %0, %1 815 S_ENDPGM 0, implicit %2 816... 817 818--- 819name: fcmp_ule_s64_vv 820legalized: true 821regBankSelected: true 822 823body: | 824 bb.0: 825 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 826 ; WAVE64-LABEL: name: fcmp_ule_s64_vv 827 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 828 ; WAVE64-NEXT: {{ $}} 829 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 830 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 831 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NGT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 832 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 833 ; WAVE32-LABEL: name: fcmp_ule_s64_vv 834 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 835 ; WAVE32-NEXT: {{ $}} 836 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 837 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 838 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NGT_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 839 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 840 %0:vgpr(s64) = COPY $vgpr0_vgpr1 841 %1:vgpr(s64) = COPY $vgpr2_vgpr3 842 %2:vcc(s1) = G_FCMP floatpred(ule), %0, %1 843 S_ENDPGM 0, implicit %2 844... 845 846--- 847name: fcmp_une_s64_vv 848legalized: true 849regBankSelected: true 850 851body: | 852 bb.0: 853 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 854 ; WAVE64-LABEL: name: fcmp_une_s64_vv 855 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 856 ; WAVE64-NEXT: {{ $}} 857 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 858 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 859 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_NEQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 860 ; WAVE64-NEXT: S_ENDPGM 0, implicit %2 861 ; WAVE32-LABEL: name: fcmp_une_s64_vv 862 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 863 ; WAVE32-NEXT: {{ $}} 864 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1 865 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vreg_64 = COPY $vgpr2_vgpr3 866 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_NEQ_F64_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 867 ; WAVE32-NEXT: S_ENDPGM 0, implicit %2 868 %0:vgpr(s64) = COPY $vgpr0_vgpr1 869 %1:vgpr(s64) = COPY $vgpr2_vgpr3 870 %2:vcc(s1) = G_FCMP floatpred(une), %0, %1 871 S_ENDPGM 0, implicit %2 872... 873 874--- 875name: fcmp_true_s64_vv 876legalized: true 877regBankSelected: true 878 879body: | 880 bb.0: 881 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 882 ; WAVE64-LABEL: name: fcmp_true_s64_vv 883 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 884 ; WAVE64-NEXT: {{ $}} 885 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 886 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3 887 ; WAVE64-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s64), [[COPY1]] 888 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 889 ; WAVE32-LABEL: name: fcmp_true_s64_vv 890 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3 891 ; WAVE32-NEXT: {{ $}} 892 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr(s64) = COPY $vgpr0_vgpr1 893 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr(s64) = COPY $vgpr2_vgpr3 894 ; WAVE32-NEXT: [[FCMP:%[0-9]+]]:vcc(s1) = G_FCMP floatpred(true), [[COPY]](s64), [[COPY1]] 895 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[FCMP]](s1) 896 %0:vgpr(s64) = COPY $vgpr0_vgpr1 897 %1:vgpr(s64) = COPY $vgpr2_vgpr3 898 %2:vcc(s1) = G_FCMP floatpred(true), %0, %1 899 S_ENDPGM 0, implicit %2 900... 901 902--- 903name: fcmp_oeq_s32_vv_select_user 904legalized: true 905regBankSelected: true 906 907body: | 908 bb.0: 909 liveins: $vgpr0, $vgpr1 910 ; WAVE64-LABEL: name: fcmp_oeq_s32_vv_select_user 911 ; WAVE64: liveins: $vgpr0, $vgpr1 912 ; WAVE64-NEXT: {{ $}} 913 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 914 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 915 ; WAVE64-NEXT: %2:sreg_64_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 916 ; WAVE64-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], %2, implicit $exec 917 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CNDMASK_B32_e64_]] 918 ; WAVE32-LABEL: name: fcmp_oeq_s32_vv_select_user 919 ; WAVE32: liveins: $vgpr0, $vgpr1 920 ; WAVE32-NEXT: {{ $}} 921 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0 922 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1 923 ; WAVE32-NEXT: %2:sreg_32_xm0_xexec = nofpexcept V_CMP_EQ_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, implicit $mode, implicit $exec 924 ; WAVE32-NEXT: [[V_CNDMASK_B32_e64_:%[0-9]+]]:vgpr_32 = V_CNDMASK_B32_e64 0, [[COPY1]], 0, [[COPY]], %2, implicit $exec 925 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CNDMASK_B32_e64_]] 926 %0:vgpr(s32) = COPY $vgpr0 927 %1:vgpr(s32) = COPY $vgpr1 928 %2:vcc(s1) = G_FCMP floatpred(oeq), %0, %1 929 %3:vgpr(s32) = G_SELECT %2, %0, %1 930 S_ENDPGM 0, implicit %3 931... 932