210 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=fiji -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX8 %s3 4---5 6name: fadd_s16_vvv7legalized: true8regBankSelected: true9 10body: |11 bb.0:12 liveins: $vgpr0, $vgpr113 ; GFX8-LABEL: name: fadd_s16_vvv14 ; GFX8: liveins: $vgpr0, $vgpr115 ; GFX8-NEXT: {{ $}}16 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr017 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr118 ; GFX8-NEXT: %4:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec19 ; GFX8-NEXT: S_ENDPGM 0, implicit %420 %0:vgpr(s32) = COPY $vgpr021 %1:vgpr(s32) = COPY $vgpr122 %2:vgpr(s16) = G_TRUNC %023 %3:vgpr(s16) = G_TRUNC %124 %4:vgpr(s16) = G_FADD %2, %325 S_ENDPGM 0, implicit %426 27...28 29---30 31name: fadd_s16_vsv32legalized: true33regBankSelected: true34 35body: |36 bb.0:37 liveins: $vgpr0, $sgpr038 ; GFX8-LABEL: name: fadd_s16_vsv39 ; GFX8: liveins: $vgpr0, $sgpr040 ; GFX8-NEXT: {{ $}}41 ; GFX8-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr042 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr043 ; GFX8-NEXT: %4:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec44 ; GFX8-NEXT: S_ENDPGM 0, implicit %445 %0:sgpr(s32) = COPY $sgpr046 %1:vgpr(s32) = COPY $vgpr047 %2:sgpr(s16) = G_TRUNC %048 %3:vgpr(s16) = G_TRUNC %149 %4:vgpr(s16) = G_FADD %2, %350 S_ENDPGM 0, implicit %451 52...53 54---55 56name: fadd_s16_vvs57legalized: true58regBankSelected: true59 60body: |61 bb.0:62 liveins: $vgpr0, $sgpr063 ; GFX8-LABEL: name: fadd_s16_vvs64 ; GFX8: liveins: $vgpr0, $sgpr065 ; GFX8-NEXT: {{ $}}66 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr067 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr068 ; GFX8-NEXT: %4:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec69 ; GFX8-NEXT: S_ENDPGM 0, implicit %470 %0:vgpr(s32) = COPY $vgpr071 %1:sgpr(s32) = COPY $sgpr072 %2:vgpr(s16) = G_TRUNC %073 %3:sgpr(s16) = G_TRUNC %174 %4:vgpr(s16) = G_FADD %2, %375 S_ENDPGM 0, implicit %476 77...78 79---80 81name: fadd_s16_vvv_fabs_lhs82legalized: true83regBankSelected: true84 85body: |86 bb.0:87 liveins: $vgpr0, $vgpr188 ; GFX8-LABEL: name: fadd_s16_vvv_fabs_lhs89 ; GFX8: liveins: $vgpr0, $vgpr190 ; GFX8-NEXT: {{ $}}91 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr092 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr193 ; GFX8-NEXT: %5:vgpr_32 = nofpexcept V_ADD_F16_e64 2, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec94 ; GFX8-NEXT: S_ENDPGM 0, implicit %595 %0:vgpr(s32) = COPY $vgpr096 %1:vgpr(s32) = COPY $vgpr197 %2:vgpr(s16) = G_TRUNC %098 %3:vgpr(s16) = G_TRUNC %199 %4:vgpr(s16) = G_FABS %2100 %5:vgpr(s16) = G_FADD %4, %3101 S_ENDPGM 0, implicit %5102 103...104 105---106 107name: fadd_s16_vvv_fabs_rhs108legalized: true109regBankSelected: true110 111body: |112 bb.0:113 liveins: $vgpr0, $vgpr1114 ; GFX8-LABEL: name: fadd_s16_vvv_fabs_rhs115 ; GFX8: liveins: $vgpr0, $vgpr1116 ; GFX8-NEXT: {{ $}}117 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0118 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1119 ; GFX8-NEXT: %5:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 2, [[COPY1]], 0, 0, implicit $mode, implicit $exec120 ; GFX8-NEXT: S_ENDPGM 0, implicit %5121 %0:vgpr(s32) = COPY $vgpr0122 %1:vgpr(s32) = COPY $vgpr1123 %2:vgpr(s16) = G_TRUNC %0124 %3:vgpr(s16) = G_TRUNC %1125 %4:vgpr(s16) = G_FABS %3126 %5:vgpr(s16) = G_FADD %2, %4127 S_ENDPGM 0, implicit %5128 129...130 131---132 133name: fadd_s16_vvv_fneg_fabs_lhs134legalized: true135regBankSelected: true136 137body: |138 bb.0:139 liveins: $vgpr0, $vgpr1140 ; GFX8-LABEL: name: fadd_s16_vvv_fneg_fabs_lhs141 ; GFX8: liveins: $vgpr0, $vgpr1142 ; GFX8-NEXT: {{ $}}143 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0144 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1145 ; GFX8-NEXT: %6:vgpr_32 = nofpexcept V_ADD_F16_e64 3, [[COPY]], 0, [[COPY1]], 0, 0, implicit $mode, implicit $exec146 ; GFX8-NEXT: S_ENDPGM 0, implicit %6147 %0:vgpr(s32) = COPY $vgpr0148 %1:vgpr(s32) = COPY $vgpr1149 %2:vgpr(s16) = G_TRUNC %0150 %3:vgpr(s16) = G_TRUNC %1151 %4:vgpr(s16) = G_FABS %2152 %5:vgpr(s16) = G_FNEG %4153 %6:vgpr(s16) = G_FADD %5, %3154 S_ENDPGM 0, implicit %6155 156...157 158---159 160name: fadd_s16_vvv_fneg_fabs_rhs161legalized: true162regBankSelected: true163 164body: |165 bb.0:166 liveins: $vgpr0, $vgpr1167 ; GFX8-LABEL: name: fadd_s16_vvv_fneg_fabs_rhs168 ; GFX8: liveins: $vgpr0, $vgpr1169 ; GFX8-NEXT: {{ $}}170 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0171 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1172 ; GFX8-NEXT: %6:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 3, [[COPY1]], 0, 0, implicit $mode, implicit $exec173 ; GFX8-NEXT: S_ENDPGM 0, implicit %6174 %0:vgpr(s32) = COPY $vgpr0175 %1:vgpr(s32) = COPY $vgpr1176 %2:vgpr(s16) = G_TRUNC %0177 %3:vgpr(s16) = G_TRUNC %1178 %4:vgpr(s16) = G_FABS %3179 %5:vgpr(s16) = G_FNEG %4180 %6:vgpr(s16) = G_FADD %2, %5181 S_ENDPGM 0, implicit %6182 183...184 185---186 187name: fadd_s16_fneg_copy_sgpr188legalized: true189regBankSelected: true190 191body: |192 bb.0:193 liveins: $vgpr0, $sgpr0194 ; GFX8-LABEL: name: fadd_s16_fneg_copy_sgpr195 ; GFX8: liveins: $vgpr0, $sgpr0196 ; GFX8-NEXT: {{ $}}197 ; GFX8-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0198 ; GFX8-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr0199 ; GFX8-NEXT: %5:vgpr_32 = nofpexcept V_ADD_F16_e64 0, [[COPY]], 1, [[COPY1]], 0, 0, implicit $mode, implicit $exec200 ; GFX8-NEXT: S_ENDPGM 0, implicit %5201 %0:vgpr(s32) = COPY $vgpr0202 %1:sgpr(s32) = COPY $sgpr0203 %2:vgpr(s16) = G_TRUNC %0204 %3:sgpr(s16) = G_TRUNC %1205 %4:sgpr(s16) = G_FNEG %3206 %5:vgpr(s16) = G_FADD %2, %4207 S_ENDPGM 0, implicit %5208 209...210