brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · a0ba67f Raw
168 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn -mcpu=gfx1010 -run-pass=amdgpu-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck -check-prefix=GCN %s3 4---5name:            rcp_sqrt_test_f326body:             |7  bb.0:8    liveins: $sgpr09 10    ; GCN-LABEL: name: rcp_sqrt_test_f3211    ; GCN: liveins: $sgpr012    ; GCN-NEXT: {{  $}}13    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr014    ; GCN-NEXT: [[FSQRT:%[0-9]+]]:_(s32) = G_FSQRT [[COPY]]15    ; GCN-NEXT: [[INT:%[0-9]+]]:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), [[FSQRT]](s32)16    ; GCN-NEXT: $vgpr0 = COPY [[INT]](s32)17    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr018    %0:_(s32) = COPY $sgpr019    %2:_(s32) = G_FSQRT %0:_20    %3:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %2:_(s32)21    $vgpr0 = COPY %3:_(s32)22    SI_RETURN_TO_EPILOG implicit $vgpr023 24...25 26---27name:            contract_afn_rcp_contract_sqrt_test_f3228body:             |29  bb.0:30    liveins: $sgpr031 32    ; GCN-LABEL: name: contract_afn_rcp_contract_sqrt_test_f3233    ; GCN: liveins: $sgpr034    ; GCN-NEXT: {{  $}}35    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr036    ; GCN-NEXT: [[INT:%[0-9]+]]:_(s32) = contract afn G_INTRINSIC intrinsic(@llvm.amdgcn.rsq), [[COPY]](s32)37    ; GCN-NEXT: $vgpr0 = COPY [[INT]](s32)38    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr039    %0:_(s32) = COPY $sgpr040    %2:_(s32) = contract G_FSQRT %0:_41    %3:_(s32) = contract afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %2:_(s32)42    $vgpr0 = COPY %3:_(s32)43    SI_RETURN_TO_EPILOG implicit $vgpr044 45...46 47---48name:            sqrt_rcp_test_f3249body:             |50  bb.0:51    liveins: $sgpr052 53    ; GCN-LABEL: name: sqrt_rcp_test_f3254    ; GCN: liveins: $sgpr055    ; GCN-NEXT: {{  $}}56    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr057    ; GCN-NEXT: [[INT:%[0-9]+]]:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), [[COPY]](s32)58    ; GCN-NEXT: [[FSQRT:%[0-9]+]]:_(s32) = G_FSQRT [[INT]]59    ; GCN-NEXT: $vgpr0 = COPY [[FSQRT]](s32)60    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr061    %0:_(s32) = COPY $sgpr062    %2:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %0:_(s32)63    %3:_(s32) = G_FSQRT %2:_64    $vgpr0 = COPY %3:_(s32)65    SI_RETURN_TO_EPILOG implicit $vgpr066 67...68 69---70name:            afn_rcp_afn_amdgcn_sqrt_test_f3271body:             |72  bb.0:73    liveins: $sgpr074 75    ; GCN-LABEL: name: afn_rcp_afn_amdgcn_sqrt_test_f3276    ; GCN: liveins: $sgpr077    ; GCN-NEXT: {{  $}}78    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr079    ; GCN-NEXT: [[INT:%[0-9]+]]:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), [[COPY]](s32)80    ; GCN-NEXT: [[INT1:%[0-9]+]]:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), [[INT]](s32)81    ; GCN-NEXT: $vgpr0 = COPY [[INT1]](s32)82    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr083    %0:_(s32) = COPY $sgpr084    %1:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), %0:_(s32)85    %2:_(s32) = afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %1:_(s32)86    $vgpr0 = COPY %287    SI_RETURN_TO_EPILOG implicit $vgpr088 89...90 91---92name:            afn_contract_rcp_afn_contract_amdgcn_sqrt_test_f3293body:             |94  bb.0:95    liveins: $sgpr096 97    ; GCN-LABEL: name: afn_contract_rcp_afn_contract_amdgcn_sqrt_test_f3298    ; GCN: liveins: $sgpr099    ; GCN-NEXT: {{  $}}100    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0101    ; GCN-NEXT: [[INT:%[0-9]+]]:_(s32) = contract afn G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), [[COPY]](s32)102    ; GCN-NEXT: [[INT1:%[0-9]+]]:_(s32) = contract afn G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), [[INT]](s32)103    ; GCN-NEXT: $vgpr0 = COPY [[INT1]](s32)104    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0105    %0:_(s32) = COPY $sgpr0106    %1:_(s32) = afn contract G_INTRINSIC intrinsic(@llvm.amdgcn.sqrt), %0:_(s32)107    %2:_(s32) = afn contract G_INTRINSIC intrinsic(@llvm.amdgcn.rcp), %1:_(s32)108    $vgpr0 = COPY %2109    SI_RETURN_TO_EPILOG implicit $vgpr0110 111...112 113---114name:            rsq_test_f16115body:             |116  bb.0:117    liveins: $sgpr0118 119    ; GCN-LABEL: name: rsq_test_f16120    ; GCN: liveins: $sgpr0121    ; GCN-NEXT: {{  $}}122    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0123    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)124    ; GCN-NEXT: %sqrt:_(s16) = G_FSQRT [[TRUNC]]125    ; GCN-NEXT: %one:_(s16) = contract G_FCONSTANT half 0xH3C00126    ; GCN-NEXT: %rsq:_(s16) = contract G_FDIV %one, %sqrt127    ; GCN-NEXT: %ext:_(s32) = G_ANYEXT %rsq(s16)128    ; GCN-NEXT: $vgpr0 = COPY %ext(s32)129    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0130    %0:_(s32) = COPY $sgpr0131    %1:_(s16) = G_TRUNC %0132    %sqrt:_(s16) = G_FSQRT %1:_133    %one:_(s16) = contract G_FCONSTANT half 1.0134    %rsq:_(s16) = contract G_FDIV %one, %sqrt135    %ext:_(s32) = G_ANYEXT %rsq136    $vgpr0 = COPY %ext137    SI_RETURN_TO_EPILOG implicit $vgpr0138 139...140 141---142name:            neg_rsq_test_f16143body:             |144  bb.0:145    liveins: $sgpr0146 147    ; GCN-LABEL: name: neg_rsq_test_f16148    ; GCN: liveins: $sgpr0149    ; GCN-NEXT: {{  $}}150    ; GCN-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $sgpr0151    ; GCN-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)152    ; GCN-NEXT: %sqrt:_(s16) = G_FSQRT [[TRUNC]]153    ; GCN-NEXT: %one:_(s16) = contract G_FCONSTANT half 0xHBC00154    ; GCN-NEXT: %rsq:_(s16) = contract G_FDIV %one, %sqrt155    ; GCN-NEXT: %ext:_(s32) = G_ANYEXT %rsq(s16)156    ; GCN-NEXT: $vgpr0 = COPY %ext(s32)157    ; GCN-NEXT: SI_RETURN_TO_EPILOG implicit $vgpr0158    %0:_(s32) = COPY $sgpr0159    %1:_(s16) = G_TRUNC %0160    %sqrt:_(s16) = G_FSQRT %1:_161    %one:_(s16) = contract G_FCONSTANT half -1.0162    %rsq:_(s16) = contract G_FDIV %one, %sqrt163    %ext:_(s32) = G_ANYEXT %rsq164    $vgpr0 = COPY %ext165    SI_RETURN_TO_EPILOG implicit $vgpr0166 167...168