brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.6 KiB · 36ac7eb Raw
207 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 62# RUN: llc -mtriple=aarch64 -run-pass=legalizer %s -o - | FileCheck %s3---4name:            test_modf_f165body:             |6  bb.0.entry:7    ; CHECK-LABEL: name: test_modf_f168    ; CHECK: [[COPY:%[0-9]+]]:_(s16) = COPY $h09    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[COPY]](s16)10    ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.011    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp12    ; CHECK-NEXT: $s0 = COPY [[FPEXT]](s32)13    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX]](p0)14    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s015    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp16    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $s017    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %stack.0)18    ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[LOAD]](s32)19    ; CHECK-NEXT: [[FPTRUNC1:%[0-9]+]]:_(s16) = G_FPTRUNC [[COPY1]](s32)20    ; CHECK-NEXT: $h0 = COPY [[FPTRUNC1]](s16)21    ; CHECK-NEXT: $h1 = COPY [[FPTRUNC]](s16)22    ; CHECK-NEXT: RET_ReallyLR implicit $h0, implicit $h123    %0:_(s16) = COPY $h024    %1:_(s16), %2:_(s16) = G_FMODF %025    $h0 = COPY %1(s16)26    $h1 = COPY %2(s16)27    RET_ReallyLR implicit $h0, implicit $h128...29---30name:            test_modf_f16_only_use_fractional_part31body:             |32  bb.0.entry:33    ; CHECK-LABEL: name: test_modf_f16_only_use_fractional_part34    ; CHECK: [[COPY:%[0-9]+]]:_(s16) = COPY $h035    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[COPY]](s16)36    ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.037    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp38    ; CHECK-NEXT: $s0 = COPY [[FPEXT]](s32)39    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX]](p0)40    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s041    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp42    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $s043    ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[COPY1]](s32)44    ; CHECK-NEXT: $h0 = COPY [[FPTRUNC]](s16)45    ; CHECK-NEXT: RET_ReallyLR implicit $h046    %0:_(s16) = COPY $h047    %1:_(s16), %2:_(s16) = G_FMODF %048    $h0 = COPY %1(s16)49    RET_ReallyLR implicit $h050...51---52name:            test_modf_v2f1653body:             |54  bb.0.entry:55    ; CHECK-LABEL: name: test_modf_v2f1656    ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s16>) = COPY $d057    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s16), [[UV1:%[0-9]+]]:_(s16), [[UV2:%[0-9]+]]:_(s16), [[UV3:%[0-9]+]]:_(s16) = G_UNMERGE_VALUES [[COPY]](<4 x s16>)58    ; CHECK-NEXT: [[FPEXT:%[0-9]+]]:_(s32) = G_FPEXT [[UV]](s16)59    ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.160    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp61    ; CHECK-NEXT: $s0 = COPY [[FPEXT]](s32)62    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX]](p0)63    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s064    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp65    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $s066    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %stack.1)67    ; CHECK-NEXT: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[LOAD]](s32)68    ; CHECK-NEXT: [[FPTRUNC1:%[0-9]+]]:_(s16) = G_FPTRUNC [[COPY1]](s32)69    ; CHECK-NEXT: [[FPEXT1:%[0-9]+]]:_(s32) = G_FPEXT [[UV1]](s16)70    ; CHECK-NEXT: [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.071    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp72    ; CHECK-NEXT: $s0 = COPY [[FPEXT1]](s32)73    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX1]](p0)74    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s075    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp76    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $s077    ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (s32) from %stack.0)78    ; CHECK-NEXT: [[FPTRUNC2:%[0-9]+]]:_(s16) = G_FPTRUNC [[LOAD1]](s32)79    ; CHECK-NEXT: [[FPTRUNC3:%[0-9]+]]:_(s16) = G_FPTRUNC [[COPY2]](s32)80    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s16) = G_IMPLICIT_DEF81    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s16>) = G_BUILD_VECTOR [[FPTRUNC1]](s16), [[FPTRUNC3]](s16), [[DEF]](s16), [[DEF]](s16)82    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s16>) = G_BUILD_VECTOR [[FPTRUNC]](s16), [[FPTRUNC2]](s16), [[DEF]](s16), [[DEF]](s16)83    ; CHECK-NEXT: $d0 = COPY [[BUILD_VECTOR]](<4 x s16>)84    ; CHECK-NEXT: $d1 = COPY [[BUILD_VECTOR1]](<4 x s16>)85    ; CHECK-NEXT: RET_ReallyLR implicit $d0, implicit $d186    %1:_(<4 x s16>) = COPY $d087    %0:_(<2 x s16>), %2:_(<2 x s16>) = G_UNMERGE_VALUES %1(<4 x s16>)88    %3:_(<2 x s16>), %4:_(<2 x s16>) = G_FMODF %089    %5:_(s16), %6:_(s16) = G_UNMERGE_VALUES %3(<2 x s16>)90    %7:_(s16) = G_IMPLICIT_DEF91    %8:_(<4 x s16>) = G_BUILD_VECTOR %5(s16), %6(s16), %7(s16), %7(s16)92    %9:_(s16), %10:_(s16) = G_UNMERGE_VALUES %4(<2 x s16>)93    %11:_(<4 x s16>) = G_BUILD_VECTOR %9(s16), %10(s16), %7(s16), %7(s16)94    $d0 = COPY %8(<4 x s16>)95    $d1 = COPY %11(<4 x s16>)96    RET_ReallyLR implicit $d0, implicit $d197...98---99name:            test_modf_v3f32100body:             |101  bb.0.entry:102    ; CHECK-LABEL: name: test_modf_v3f32103    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0104    ; CHECK-NEXT: [[BITCAST:%[0-9]+]]:_(<4 x s32>) = G_BITCAST [[COPY]](<2 x s64>)105    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s32), [[UV1:%[0-9]+]]:_(s32), [[UV2:%[0-9]+]]:_(s32), [[UV3:%[0-9]+]]:_(s32) = G_UNMERGE_VALUES [[BITCAST]](<4 x s32>)106    ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.2107    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp108    ; CHECK-NEXT: $s0 = COPY [[UV]](s32)109    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX]](p0)110    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s0111    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp112    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $s0113    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s32) from %stack.2)114    ; CHECK-NEXT: [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.1115    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp116    ; CHECK-NEXT: $s0 = COPY [[UV1]](s32)117    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX1]](p0)118    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s0119    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp120    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $s0121    ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (s32) from %stack.1)122    ; CHECK-NEXT: [[FRAME_INDEX2:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0123    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp124    ; CHECK-NEXT: $s0 = COPY [[UV2]](s32)125    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX2]](p0)126    ; CHECK-NEXT: BL &modff, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $s0, implicit $x0, implicit-def $s0127    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp128    ; CHECK-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $s0129    ; CHECK-NEXT: [[LOAD2:%[0-9]+]]:_(s32) = G_LOAD [[FRAME_INDEX2]](p0) :: (load (s32) from %stack.0)130    ; CHECK-NEXT: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF131    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[COPY1]](s32), [[COPY2]](s32), [[COPY3]](s32), [[DEF]](s32)132    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<4 x s32>) = G_BUILD_VECTOR [[LOAD]](s32), [[LOAD1]](s32), [[LOAD2]](s32), [[DEF]](s32)133    ; CHECK-NEXT: $q0 = COPY [[BUILD_VECTOR]](<4 x s32>)134    ; CHECK-NEXT: $q1 = COPY [[BUILD_VECTOR1]](<4 x s32>)135    ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1136    %1:_(<2 x s64>) = COPY $q0137    %2:_(<4 x s32>) = G_BITCAST %1(<2 x s64>)138    %3:_(s32), %4:_(s32), %5:_(s32), %6:_(s32) = G_UNMERGE_VALUES %2(<4 x s32>)139    %0:_(<3 x s32>) = G_BUILD_VECTOR %3(s32), %4(s32), %5(s32)140    %7:_(<3 x s32>), %8:_(<3 x s32>) = G_FMODF %0141    %9:_(s32), %10:_(s32), %11:_(s32) = G_UNMERGE_VALUES %7(<3 x s32>)142    %12:_(s32) = G_IMPLICIT_DEF143    %13:_(<4 x s32>) = G_BUILD_VECTOR %9(s32), %10(s32), %11(s32), %12(s32)144    %14:_(s32), %15:_(s32), %16:_(s32) = G_UNMERGE_VALUES %8(<3 x s32>)145    %17:_(<4 x s32>) = G_BUILD_VECTOR %14(s32), %15(s32), %16(s32), %12(s32)146    $q0 = COPY %13(<4 x s32>)147    $q1 = COPY %17(<4 x s32>)148    RET_ReallyLR implicit $q0, implicit $q1149...150---151name:            test_modf_v2f64152body:             |153  bb.0.entry:154    ; CHECK-LABEL: name: test_modf_v2f64155    ; CHECK: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $q0156    ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)157    ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.1158    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp159    ; CHECK-NEXT: $d0 = COPY [[UV]](s64)160    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX]](p0)161    ; CHECK-NEXT: BL &modf, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit $x0, implicit-def $d0162    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp163    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $d0164    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s64) from %stack.1)165    ; CHECK-NEXT: [[FRAME_INDEX1:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0166    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp167    ; CHECK-NEXT: $d0 = COPY [[UV1]](s64)168    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX1]](p0)169    ; CHECK-NEXT: BL &modf, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit $x0, implicit-def $d0170    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp171    ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $d0172    ; CHECK-NEXT: [[LOAD1:%[0-9]+]]:_(s64) = G_LOAD [[FRAME_INDEX1]](p0) :: (load (s64) from %stack.0)173    ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[COPY1]](s64), [[COPY2]](s64)174    ; CHECK-NEXT: [[BUILD_VECTOR1:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[LOAD]](s64), [[LOAD1]](s64)175    ; CHECK-NEXT: $q0 = COPY [[BUILD_VECTOR]](<2 x s64>)176    ; CHECK-NEXT: $q1 = COPY [[BUILD_VECTOR1]](<2 x s64>)177    ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1178    %0:_(<2 x s64>) = COPY $q0179    %1:_(<2 x s64>), %2:_(<2 x s64>) = G_FMODF %0180    $q0 = COPY %1(<2 x s64>)181    $q1 = COPY %2(<2 x s64>)182    RET_ReallyLR implicit $q0, implicit $q1183...184---185name:            test_modf_fp128186body:             |187  bb.0.entry:188    ; CHECK-LABEL: name: test_modf_fp128189    ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $q0190    ; CHECK-NEXT: [[FRAME_INDEX:%[0-9]+]]:_(p0) = G_FRAME_INDEX %stack.0191    ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp192    ; CHECK-NEXT: $q0 = COPY [[COPY]](s128)193    ; CHECK-NEXT: $x0 = COPY [[FRAME_INDEX]](p0)194    ; CHECK-NEXT: BL &modfl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $x0, implicit-def $q0195    ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp196    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s128) = COPY $q0197    ; CHECK-NEXT: [[LOAD:%[0-9]+]]:_(s128) = G_LOAD [[FRAME_INDEX]](p0) :: (load (s128) from %stack.0)198    ; CHECK-NEXT: $q0 = COPY [[COPY1]](s128)199    ; CHECK-NEXT: $q1 = COPY [[LOAD]](s128)200    ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q1201    %0:_(s128) = COPY $q0202    %1:_(s128), %2:_(s128) = G_FMODF %0203    $q0 = COPY %1(s128)204    $q1 = COPY %2(s128)205    RET_ReallyLR implicit $q0, implicit $q1206...207