180 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=tahiti -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=WAVE64 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck -check-prefix=WAVE32 %s4 5---6name: class_s32_vcc_sv7legalized: true8regBankSelected: true9tracksRegLiveness: true10 11body: |12 bb.0:13 liveins: $sgpr0, $vgpr014 ; WAVE64-LABEL: name: class_s32_vcc_sv15 ; WAVE64: liveins: $sgpr0, $vgpr016 ; WAVE64-NEXT: {{ $}}17 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr018 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr019 ; WAVE64-NEXT: [[V_CMP_CLASS_F32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_CLASS_F32_e64 0, [[COPY]], [[COPY1]], implicit $exec20 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F32_e64_]]21 ; WAVE32-LABEL: name: class_s32_vcc_sv22 ; WAVE32: liveins: $sgpr0, $vgpr023 ; WAVE32-NEXT: {{ $}}24 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr025 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr026 ; WAVE32-NEXT: [[V_CMP_CLASS_F32_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_CLASS_F32_e64 0, [[COPY]], [[COPY1]], implicit $exec27 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F32_e64_]]28 %0:sgpr(s32) = COPY $sgpr029 %1:vgpr(s32) = COPY $vgpr030 %2:vcc(s1) = G_INTRINSIC intrinsic(@llvm.amdgcn.class), %0, %131 S_ENDPGM 0, implicit %232...33 34---35name: class_s32_vcc_vs36legalized: true37regBankSelected: true38tracksRegLiveness: true39 40body: |41 bb.0:42 liveins: $sgpr0, $vgpr043 ; WAVE64-LABEL: name: class_s32_vcc_vs44 ; WAVE64: liveins: $sgpr0, $vgpr045 ; WAVE64-NEXT: {{ $}}46 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr047 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr048 ; WAVE64-NEXT: [[V_CMP_CLASS_F32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_CLASS_F32_e64 0, [[COPY]], [[COPY1]], implicit $exec49 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F32_e64_]]50 ; WAVE32-LABEL: name: class_s32_vcc_vs51 ; WAVE32: liveins: $sgpr0, $vgpr052 ; WAVE32-NEXT: {{ $}}53 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr054 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr055 ; WAVE32-NEXT: [[V_CMP_CLASS_F32_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_CLASS_F32_e64 0, [[COPY]], [[COPY1]], implicit $exec56 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F32_e64_]]57 %0:vgpr(s32) = COPY $vgpr058 %1:sgpr(s32) = COPY $sgpr059 %2:vcc(s1) = G_INTRINSIC intrinsic(@llvm.amdgcn.class), %0, %160 S_ENDPGM 0, implicit %261...62 63---64name: class_s32_vcc_vv65legalized: true66regBankSelected: true67tracksRegLiveness: true68 69body: |70 bb.0:71 liveins: $vgpr0, $vgpr172 ; WAVE64-LABEL: name: class_s32_vcc_vv73 ; WAVE64: liveins: $vgpr0, $vgpr174 ; WAVE64-NEXT: {{ $}}75 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr076 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr177 ; WAVE64-NEXT: [[V_CMP_CLASS_F32_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_CLASS_F32_e64 0, [[COPY]], [[COPY1]], implicit $exec78 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F32_e64_]]79 ; WAVE32-LABEL: name: class_s32_vcc_vv80 ; WAVE32: liveins: $vgpr0, $vgpr181 ; WAVE32-NEXT: {{ $}}82 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr083 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr184 ; WAVE32-NEXT: [[V_CMP_CLASS_F32_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_CLASS_F32_e64 0, [[COPY]], [[COPY1]], implicit $exec85 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F32_e64_]]86 %0:vgpr(s32) = COPY $vgpr087 %1:vgpr(s32) = COPY $vgpr188 %2:vcc(s1) = G_INTRINSIC intrinsic(@llvm.amdgcn.class), %0, %189 S_ENDPGM 0, implicit %290...91 92---93name: class_s64_vcc_sv94legalized: true95regBankSelected: true96tracksRegLiveness: true97 98body: |99 bb.0:100 liveins: $sgpr0_sgpr1, $vgpr0101 ; WAVE64-LABEL: name: class_s64_vcc_sv102 ; WAVE64: liveins: $sgpr0_sgpr1, $vgpr0103 ; WAVE64-NEXT: {{ $}}104 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1105 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0106 ; WAVE64-NEXT: [[V_CMP_CLASS_F64_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_CLASS_F64_e64 0, [[COPY]], [[COPY1]], implicit $exec107 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F64_e64_]]108 ; WAVE32-LABEL: name: class_s64_vcc_sv109 ; WAVE32: liveins: $sgpr0_sgpr1, $vgpr0110 ; WAVE32-NEXT: {{ $}}111 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:sreg_64 = COPY $sgpr0_sgpr1112 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr0113 ; WAVE32-NEXT: [[V_CMP_CLASS_F64_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_CLASS_F64_e64 0, [[COPY]], [[COPY1]], implicit $exec114 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F64_e64_]]115 %0:sgpr(s64) = COPY $sgpr0_sgpr1116 %1:vgpr(s32) = COPY $vgpr0117 %2:vcc(s1) = G_INTRINSIC intrinsic(@llvm.amdgcn.class), %0, %1118 S_ENDPGM 0, implicit %2119...120 121---122name: class_s64_vcc_vs123legalized: true124regBankSelected: true125tracksRegLiveness: true126 127body: |128 bb.0:129 liveins: $sgpr0_sgpr1, $vgpr0130 131 ; WAVE64-LABEL: name: class_s64_vcc_vs132 ; WAVE64: liveins: $sgpr0_sgpr1, $vgpr0133 ; WAVE64-NEXT: {{ $}}134 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1135 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0136 ; WAVE64-NEXT: [[V_CMP_CLASS_F64_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_CLASS_F64_e64 0, [[COPY]], [[COPY1]], implicit $exec137 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F64_e64_]]138 ; WAVE32-LABEL: name: class_s64_vcc_vs139 ; WAVE32: liveins: $sgpr0_sgpr1, $vgpr0140 ; WAVE32-NEXT: {{ $}}141 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1142 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0143 ; WAVE32-NEXT: [[V_CMP_CLASS_F64_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_CLASS_F64_e64 0, [[COPY]], [[COPY1]], implicit $exec144 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F64_e64_]]145 %0:vgpr(s64) = COPY $vgpr0_vgpr1146 %1:sgpr(s32) = COPY $sgpr0147 %2:vcc(s1) = G_INTRINSIC intrinsic(@llvm.amdgcn.class), %0, %1148 S_ENDPGM 0, implicit %2149...150 151---152name: class_s64_vcc_vv153legalized: true154regBankSelected: true155tracksRegLiveness: true156 157body: |158 bb.0:159 liveins: $vgpr0_vgpr1, $vgpr2160 161 ; WAVE64-LABEL: name: class_s64_vcc_vv162 ; WAVE64: liveins: $vgpr0_vgpr1, $vgpr2163 ; WAVE64-NEXT: {{ $}}164 ; WAVE64-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1165 ; WAVE64-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2166 ; WAVE64-NEXT: [[V_CMP_CLASS_F64_e64_:%[0-9]+]]:sreg_64_xexec = V_CMP_CLASS_F64_e64 0, [[COPY]], [[COPY1]], implicit $exec167 ; WAVE64-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F64_e64_]]168 ; WAVE32-LABEL: name: class_s64_vcc_vv169 ; WAVE32: liveins: $vgpr0_vgpr1, $vgpr2170 ; WAVE32-NEXT: {{ $}}171 ; WAVE32-NEXT: [[COPY:%[0-9]+]]:vreg_64 = COPY $vgpr0_vgpr1172 ; WAVE32-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr2173 ; WAVE32-NEXT: [[V_CMP_CLASS_F64_e64_:%[0-9]+]]:sreg_32_xm0_xexec = V_CMP_CLASS_F64_e64 0, [[COPY]], [[COPY1]], implicit $exec174 ; WAVE32-NEXT: S_ENDPGM 0, implicit [[V_CMP_CLASS_F64_e64_]]175 %0:vgpr(s64) = COPY $vgpr0_vgpr1176 %1:vgpr(s32) = COPY $vgpr2177 %2:vcc(s1) = G_INTRINSIC intrinsic(@llvm.amdgcn.class), %0, %1178 S_ENDPGM 0, implicit %2179...180