241 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1150 -verify-machineinstrs -run-pass=si-fold-operands %s -o - | FileCheck %s3 4---5name: fmac_fold_inlinable_src0_to_fmamk6tracksRegLiveness: true7body: |8 bb.0:9 liveins: $sgpr0, $sgpr110 11 ; CHECK-LABEL: name: fmac_fold_inlinable_src0_to_fmamk12 ; CHECK: liveins: $sgpr0, $sgpr113 ; CHECK-NEXT: {{ $}}14 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr015 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr116 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAC_F32 1056964608, [[COPY]], [[COPY1]], implicit $mode17 ; CHECK-NEXT: $sgpr0 = COPY %fma18 %0:sreg_32 = COPY $sgpr019 %1:sreg_32 = COPY $sgpr120 %inlinable:sreg_32 = S_MOV_B32 105696460821 %fma:sreg_32 = nofpexcept S_FMAC_F32 %inlinable, %0, %1, implicit $mode22 $sgpr0 = COPY %fma23...24---25name: fmac_fold_inlinable_src1_to_fmamk26tracksRegLiveness: true27body: |28 bb.0:29 liveins: $sgpr0, $sgpr130 31 ; CHECK-LABEL: name: fmac_fold_inlinable_src1_to_fmamk32 ; CHECK: liveins: $sgpr0, $sgpr133 ; CHECK-NEXT: {{ $}}34 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr035 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr136 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAC_F32 [[COPY]], 1056964608, [[COPY1]], implicit $mode37 ; CHECK-NEXT: $sgpr0 = COPY %fma38 %0:sreg_32 = COPY $sgpr039 %1:sreg_32 = COPY $sgpr140 %inlinable:sreg_32 = S_MOV_B32 105696460841 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %inlinable, %1, implicit $mode42 $sgpr0 = COPY %fma43...44---45name: fmac_fold_inlinable_src2_to_fmaak46tracksRegLiveness: true47body: |48 bb.0:49 liveins: $sgpr0, $sgpr150 51 ; CHECK-LABEL: name: fmac_fold_inlinable_src2_to_fmaak52 ; CHECK: liveins: $sgpr0, $sgpr153 ; CHECK-NEXT: {{ $}}54 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr055 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr156 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 [[COPY]], [[COPY1]], 1056964608, implicit $mode57 ; CHECK-NEXT: $sgpr0 = COPY %fma58 %0:sreg_32 = COPY $sgpr059 %1:sreg_32 = COPY $sgpr160 %inlinable:sreg_32 = S_MOV_B32 105696460861 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %1, %inlinable, implicit $mode62 $sgpr0 = COPY %fma63...64---65name: fmac_fold_noninlinable_src0_to_fmamk66tracksRegLiveness: true67body: |68 bb.0:69 liveins: $sgpr0, $sgpr170 71 ; CHECK-LABEL: name: fmac_fold_noninlinable_src0_to_fmamk72 ; CHECK: liveins: $sgpr0, $sgpr173 ; CHECK-NEXT: {{ $}}74 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr075 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr176 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAC_F32 1234567890, [[COPY]], [[COPY1]], implicit $mode77 ; CHECK-NEXT: $sgpr0 = COPY %fma78 %0:sreg_32 = COPY $sgpr079 %1:sreg_32 = COPY $sgpr180 %noninlinable:sreg_32 = S_MOV_B32 123456789081 %fma:sreg_32 = nofpexcept S_FMAC_F32 %noninlinable, %0, %1, implicit $mode82 $sgpr0 = COPY %fma83...84---85name: fmac_fold_noninlinable_src1_to_fmamk86tracksRegLiveness: true87body: |88 bb.0:89 liveins: $sgpr0, $sgpr190 91 ; CHECK-LABEL: name: fmac_fold_noninlinable_src1_to_fmamk92 ; CHECK: liveins: $sgpr0, $sgpr193 ; CHECK-NEXT: {{ $}}94 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr095 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr196 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAC_F32 [[COPY]], 1234567890, [[COPY1]], implicit $mode97 ; CHECK-NEXT: $sgpr0 = COPY %fma98 %0:sreg_32 = COPY $sgpr099 %1:sreg_32 = COPY $sgpr1100 %noninlinable:sreg_32 = S_MOV_B32 1234567890101 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %noninlinable, %1, implicit $mode102 $sgpr0 = COPY %fma103...104---105name: fmac_fold_noninlinable_src2_to_fmaak106tracksRegLiveness: true107body: |108 bb.0:109 liveins: $sgpr0, $sgpr1110 111 ; CHECK-LABEL: name: fmac_fold_noninlinable_src2_to_fmaak112 ; CHECK: liveins: $sgpr0, $sgpr1113 ; CHECK-NEXT: {{ $}}114 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0115 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:sreg_32 = COPY $sgpr1116 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 [[COPY]], [[COPY1]], 1234567890, implicit $mode117 ; CHECK-NEXT: $sgpr0 = COPY %fma118 %0:sreg_32 = COPY $sgpr0119 %1:sreg_32 = COPY $sgpr1120 %noninlinable:sreg_32 = S_MOV_B32 1234567890121 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %1, %noninlinable, implicit $mode122 $sgpr0 = COPY %fma123...124 125---126name: fmac_fold_inlinable_src2_to_fmaak_noninlinable_src0_to_fmamk127tracksRegLiveness: true128body: |129 bb.0:130 liveins: $sgpr0131 132 ; CHECK-LABEL: name: fmac_fold_inlinable_src2_to_fmaak_noninlinable_src0_to_fmamk133 ; CHECK: liveins: $sgpr0134 ; CHECK-NEXT: {{ $}}135 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0136 ; CHECK-NEXT: %noninlinable:sreg_32 = S_MOV_B32 1234567890137 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 %noninlinable, [[COPY]], 1056964608, implicit $mode138 ; CHECK-NEXT: $sgpr0 = COPY %fma139 %0:sreg_32 = COPY $sgpr0140 %inlinable:sreg_32 = S_MOV_B32 1056964608141 %noninlinable:sreg_32 = S_MOV_B32 1234567890142 %fma:sreg_32 = nofpexcept S_FMAC_F32 %noninlinable, %0, %inlinable, implicit $mode143 $sgpr0 = COPY %fma144...145---146name: fmac_fold_inlinable_src2_to_fmaak_noninlinable_src1_to_fmamk147tracksRegLiveness: true148body: |149 bb.0:150 liveins: $sgpr0151 152 ; CHECK-LABEL: name: fmac_fold_inlinable_src2_to_fmaak_noninlinable_src1_to_fmamk153 ; CHECK: liveins: $sgpr0154 ; CHECK-NEXT: {{ $}}155 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0156 ; CHECK-NEXT: %noninlinable:sreg_32 = S_MOV_B32 1234567890157 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 [[COPY]], %noninlinable, 1056964608, implicit $mode158 ; CHECK-NEXT: $sgpr0 = COPY %fma159 %0:sreg_32 = COPY $sgpr0160 %inlinable:sreg_32 = S_MOV_B32 1056964608161 %noninlinable:sreg_32 = S_MOV_B32 1234567890162 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %noninlinable, %inlinable, implicit $mode163 $sgpr0 = COPY %fma164...165---166name: fmac_fold_noninlinable_src2_to_fmaak_inlinable_src1167tracksRegLiveness: true168body: |169 bb.0:170 liveins: $sgpr0171 172 ; CHECK-LABEL: name: fmac_fold_noninlinable_src2_to_fmaak_inlinable_src1173 ; CHECK: liveins: $sgpr0174 ; CHECK-NEXT: {{ $}}175 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0176 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 [[COPY]], 1056964608, 1234567890, implicit $mode177 ; CHECK-NEXT: $sgpr0 = COPY %fma178 %0:sreg_32 = COPY $sgpr0179 %noninlinable:sreg_32 = S_MOV_B32 1234567890180 %inlinable:sreg_32 = S_MOV_B32 1056964608181 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %inlinable, %noninlinable, implicit $mode182 $sgpr0 = COPY %fma183...184---185name: fmac_fold_noninlinable_src2_to_fmaak_dont_fold_other_noninlinable186tracksRegLiveness: true187body: |188 bb.0:189 liveins: $sgpr0190 191 ; CHECK-LABEL: name: fmac_fold_noninlinable_src2_to_fmaak_dont_fold_other_noninlinable192 ; CHECK: liveins: $sgpr0193 ; CHECK-NEXT: {{ $}}194 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0195 ; CHECK-NEXT: %noninlinable2:sreg_32 = S_MOV_B32 1234567891196 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 [[COPY]], %noninlinable2, 1234567890, implicit $mode197 ; CHECK-NEXT: $sgpr0 = COPY %fma198 %0:sreg_32 = COPY $sgpr0199 %noninlinable:sreg_32 = S_MOV_B32 1234567890200 %noninlinable2:sreg_32 = S_MOV_B32 1234567891201 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %noninlinable2, %noninlinable, implicit $mode202 $sgpr0 = COPY %fma203...204---205name: fmac_fold_inlinable_src1_to_fmamk_noninlinable_src2_to_fmaak206tracksRegLiveness: true207body: |208 bb.0:209 liveins: $sgpr0210 211 ; CHECK-LABEL: name: fmac_fold_inlinable_src1_to_fmamk_noninlinable_src2_to_fmaak212 ; CHECK: liveins: $sgpr0213 ; CHECK-NEXT: {{ $}}214 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0215 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAAK_F32 [[COPY]], 1056964608, 1234567890, implicit $mode216 ; CHECK-NEXT: $sgpr0 = COPY %fma217 %0:sreg_32 = COPY $sgpr0218 %inlinable:sreg_32 = S_MOV_B32 1056964608219 %noninlinable:sreg_32 = S_MOV_B32 1234567890220 %fma:sreg_32 = nofpexcept S_FMAC_F32 %0, %inlinable, %noninlinable, implicit $mode221 $sgpr0 = COPY %fma222...223---224name: fmac_fold_same_noninlinable_src0_and_src1_to_fmamk225tracksRegLiveness: true226body: |227 bb.0:228 liveins: $sgpr0229 230 ; CHECK-LABEL: name: fmac_fold_same_noninlinable_src0_and_src1_to_fmamk231 ; CHECK: liveins: $sgpr0232 ; CHECK-NEXT: {{ $}}233 ; CHECK-NEXT: [[COPY:%[0-9]+]]:sreg_32 = COPY $sgpr0234 ; CHECK-NEXT: %fma:sreg_32 = nofpexcept S_FMAC_F32 1234567890, 1234567890, [[COPY]], implicit $mode235 ; CHECK-NEXT: $sgpr0 = COPY %fma236 %0:sreg_32 = COPY $sgpr0237 %noninlinable:sreg_32 = S_MOV_B32 1234567890238 %fma:sreg_32 = nofpexcept S_FMAC_F32 %noninlinable, %noninlinable, %0, implicit $mode239 $sgpr0 = COPY %fma240...241