brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.7 KiB · 0b086a2 Raw
264 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=GFX6 %s3# RUN: llc -mtriple=amdgcn -mcpu=gfx906 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX9-DL %s4# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX10 %s5# RUN: llc -mtriple=amdgcn -mcpu=gfx1100 -run-pass=instruction-select -verify-machineinstrs -o - %s | FileCheck -check-prefix=GFX10 %s6 7---8 9name:            fma_f3210legalized:       true11regBankSelected: true12 13body: |14  bb.0:15    liveins: $vgpr0, $vgpr1, $vgpr216 17    ; GFX6-LABEL: name: fma_f3218    ; GFX6: liveins: $vgpr0, $vgpr1, $vgpr219    ; GFX6-NEXT: {{  $}}20    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr021    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr122    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr223    ; GFX6-NEXT: %3:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec24    ; GFX6-NEXT: S_ENDPGM 0, implicit %325    ; GFX9-DL-LABEL: name: fma_f3226    ; GFX9-DL: liveins: $vgpr0, $vgpr1, $vgpr227    ; GFX9-DL-NEXT: {{  $}}28    ; GFX9-DL-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr029    ; GFX9-DL-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr130    ; GFX9-DL-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr231    ; GFX9-DL-NEXT: %3:vgpr_32 = nofpexcept V_FMAC_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec32    ; GFX9-DL-NEXT: S_ENDPGM 0, implicit %333    ; GFX10-LABEL: name: fma_f3234    ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr235    ; GFX10-NEXT: {{  $}}36    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr037    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr138    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr239    ; GFX10-NEXT: %3:vgpr_32 = nofpexcept V_FMAC_F32_e64 0, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec40    ; GFX10-NEXT: S_ENDPGM 0, implicit %341    %0:vgpr(s32) = COPY $vgpr042    %1:vgpr(s32) = COPY $vgpr143    %2:vgpr(s32) = COPY $vgpr244    %3:vgpr(s32) = G_FMA %0, %1, %245    S_ENDPGM 0, implicit %346 47...48 49---50 51name:            fma_f32_fneg_src052legalized:       true53regBankSelected: true54 55body: |56  bb.0:57    liveins: $vgpr0, $vgpr1, $vgpr258 59    ; GFX6-LABEL: name: fma_f32_fneg_src060    ; GFX6: liveins: $vgpr0, $vgpr1, $vgpr261    ; GFX6-NEXT: {{  $}}62    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr063    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr164    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr265    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 1, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec66    ; GFX6-NEXT: S_ENDPGM 0, implicit %467    ; GFX9-DL-LABEL: name: fma_f32_fneg_src068    ; GFX9-DL: liveins: $vgpr0, $vgpr1, $vgpr269    ; GFX9-DL-NEXT: {{  $}}70    ; GFX9-DL-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr071    ; GFX9-DL-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr172    ; GFX9-DL-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr273    ; GFX9-DL-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 1, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec74    ; GFX9-DL-NEXT: S_ENDPGM 0, implicit %475    ; GFX10-LABEL: name: fma_f32_fneg_src076    ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr277    ; GFX10-NEXT: {{  $}}78    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr079    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr180    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr281    ; GFX10-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 1, [[COPY]], 0, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec82    ; GFX10-NEXT: S_ENDPGM 0, implicit %483    %0:vgpr(s32) = COPY $vgpr084    %1:vgpr(s32) = COPY $vgpr185    %2:vgpr(s32) = COPY $vgpr286    %3:vgpr(s32) = G_FNEG %087    %4:vgpr(s32) = G_FMA %3, %1, %288    S_ENDPGM 0, implicit %489 90...91 92---93 94name:            fma_f32_fneg_src195legalized:       true96regBankSelected: true97 98body: |99  bb.0:100    liveins: $vgpr0, $vgpr1, $vgpr2101 102    ; GFX6-LABEL: name: fma_f32_fneg_src1103    ; GFX6: liveins: $vgpr0, $vgpr1, $vgpr2104    ; GFX6-NEXT: {{  $}}105    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0106    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1107    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2108    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 1, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec109    ; GFX6-NEXT: S_ENDPGM 0, implicit %4110    ; GFX9-DL-LABEL: name: fma_f32_fneg_src1111    ; GFX9-DL: liveins: $vgpr0, $vgpr1, $vgpr2112    ; GFX9-DL-NEXT: {{  $}}113    ; GFX9-DL-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0114    ; GFX9-DL-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1115    ; GFX9-DL-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2116    ; GFX9-DL-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 1, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec117    ; GFX9-DL-NEXT: S_ENDPGM 0, implicit %4118    ; GFX10-LABEL: name: fma_f32_fneg_src1119    ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2120    ; GFX10-NEXT: {{  $}}121    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0122    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1123    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2124    ; GFX10-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 1, [[COPY1]], 0, [[COPY2]], 0, 0, implicit $mode, implicit $exec125    ; GFX10-NEXT: S_ENDPGM 0, implicit %4126    %0:vgpr(s32) = COPY $vgpr0127    %1:vgpr(s32) = COPY $vgpr1128    %2:vgpr(s32) = COPY $vgpr2129    %3:vgpr(s32) = G_FNEG %1130    %4:vgpr(s32) = G_FMA %0, %3, %2131    S_ENDPGM 0, implicit %4132 133...134 135---136 137name:            fma_f32_fneg_src2138legalized:       true139regBankSelected: true140 141body: |142  bb.0:143    liveins: $vgpr0, $vgpr1, $vgpr2144 145    ; GFX6-LABEL: name: fma_f32_fneg_src2146    ; GFX6: liveins: $vgpr0, $vgpr1, $vgpr2147    ; GFX6-NEXT: {{  $}}148    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0149    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1150    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2151    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec152    ; GFX6-NEXT: S_ENDPGM 0, implicit %4153    ; GFX9-DL-LABEL: name: fma_f32_fneg_src2154    ; GFX9-DL: liveins: $vgpr0, $vgpr1, $vgpr2155    ; GFX9-DL-NEXT: {{  $}}156    ; GFX9-DL-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0157    ; GFX9-DL-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1158    ; GFX9-DL-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2159    ; GFX9-DL-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec160    ; GFX9-DL-NEXT: S_ENDPGM 0, implicit %4161    ; GFX10-LABEL: name: fma_f32_fneg_src2162    ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2163    ; GFX10-NEXT: {{  $}}164    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0165    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1166    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2167    ; GFX10-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec168    ; GFX10-NEXT: S_ENDPGM 0, implicit %4169    %0:vgpr(s32) = COPY $vgpr0170    %1:vgpr(s32) = COPY $vgpr1171    %2:vgpr(s32) = COPY $vgpr2172    %3:vgpr(s32) = G_FNEG %2173    %4:vgpr(s32) = G_FMA %0, %1, %3174    S_ENDPGM 0, implicit %4175 176...177 178---179 180name:            fma_f32_fabs_src2181legalized:       true182regBankSelected: true183 184body: |185  bb.0:186    liveins: $vgpr0, $vgpr1, $vgpr2187 188    ; GFX6-LABEL: name: fma_f32_fabs_src2189    ; GFX6: liveins: $vgpr0, $vgpr1, $vgpr2190    ; GFX6-NEXT: {{  $}}191    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0192    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1193    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2194    ; GFX6-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 2, [[COPY2]], 0, 0, implicit $mode, implicit $exec195    ; GFX6-NEXT: S_ENDPGM 0, implicit %4196    ; GFX9-DL-LABEL: name: fma_f32_fabs_src2197    ; GFX9-DL: liveins: $vgpr0, $vgpr1, $vgpr2198    ; GFX9-DL-NEXT: {{  $}}199    ; GFX9-DL-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0200    ; GFX9-DL-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1201    ; GFX9-DL-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2202    ; GFX9-DL-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 2, [[COPY2]], 0, 0, implicit $mode, implicit $exec203    ; GFX9-DL-NEXT: S_ENDPGM 0, implicit %4204    ; GFX10-LABEL: name: fma_f32_fabs_src2205    ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2206    ; GFX10-NEXT: {{  $}}207    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0208    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1209    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2210    ; GFX10-NEXT: %4:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 2, [[COPY2]], 0, 0, implicit $mode, implicit $exec211    ; GFX10-NEXT: S_ENDPGM 0, implicit %4212    %0:vgpr(s32) = COPY $vgpr0213    %1:vgpr(s32) = COPY $vgpr1214    %2:vgpr(s32) = COPY $vgpr2215    %3:vgpr(s32) = G_FABS %2216    %4:vgpr(s32) = G_FMA %0, %1, %3217    S_ENDPGM 0, implicit %4218 219...220 221---222 223name:            fma_f32_copy_fneg_src2224legalized:       true225regBankSelected: true226 227body: |228  bb.0:229    liveins: $vgpr0, $vgpr1, $vgpr2230 231    ; GFX6-LABEL: name: fma_f32_copy_fneg_src2232    ; GFX6: liveins: $vgpr0, $vgpr1, $vgpr2233    ; GFX6-NEXT: {{  $}}234    ; GFX6-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0235    ; GFX6-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1236    ; GFX6-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2237    ; GFX6-NEXT: %5:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec238    ; GFX6-NEXT: S_ENDPGM 0, implicit %5239    ; GFX9-DL-LABEL: name: fma_f32_copy_fneg_src2240    ; GFX9-DL: liveins: $vgpr0, $vgpr1, $vgpr2241    ; GFX9-DL-NEXT: {{  $}}242    ; GFX9-DL-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0243    ; GFX9-DL-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1244    ; GFX9-DL-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2245    ; GFX9-DL-NEXT: %5:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec246    ; GFX9-DL-NEXT: S_ENDPGM 0, implicit %5247    ; GFX10-LABEL: name: fma_f32_copy_fneg_src2248    ; GFX10: liveins: $vgpr0, $vgpr1, $vgpr2249    ; GFX10-NEXT: {{  $}}250    ; GFX10-NEXT: [[COPY:%[0-9]+]]:vgpr_32 = COPY $vgpr0251    ; GFX10-NEXT: [[COPY1:%[0-9]+]]:vgpr_32 = COPY $vgpr1252    ; GFX10-NEXT: [[COPY2:%[0-9]+]]:vgpr_32 = COPY $vgpr2253    ; GFX10-NEXT: %5:vgpr_32 = nofpexcept V_FMA_F32_e64 0, [[COPY]], 0, [[COPY1]], 1, [[COPY2]], 0, 0, implicit $mode, implicit $exec254    ; GFX10-NEXT: S_ENDPGM 0, implicit %5255    %0:vgpr(s32) = COPY $vgpr0256    %1:vgpr(s32) = COPY $vgpr1257    %2:vgpr(s32) = COPY $vgpr2258    %3:vgpr(s32) = G_FNEG %2259    %4:vgpr(s32) = COPY %3260    %5:vgpr(s32) = G_FMA %0, %1, %4261    S_ENDPGM 0, implicit %5262 263...264