137 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 62# RUN: llc -verify-machineinstrs -mtriple aarch64-unknown-unknown -run-pass=instruction-select %s -o - | FileCheck %s3---4name: test_modf_fp1285alignment: 46legalized: true7regBankSelected: true8tracksRegLiveness: true9liveins:10 - { reg: '$q0' }11frameInfo:12 maxAlignment: 1613stack:14 - { id: 0, size: 16, alignment: 16 }15body: |16 bb.1:17 liveins: $q018 19 ; CHECK-LABEL: name: test_modf_fp12820 ; CHECK: liveins: $q021 ; CHECK-NEXT: {{ $}}22 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q023 ; CHECK-NEXT: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri %stack.0, 0, 024 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp25 ; CHECK-NEXT: $q0 = COPY [[COPY]]26 ; CHECK-NEXT: $x0 = COPY [[ADDXri]]27 ; CHECK-NEXT: BL &modfl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $x0, implicit-def $q028 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp29 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr128 = COPY $q030 ; CHECK-NEXT: [[LDRQui:%[0-9]+]]:fpr128 = LDRQui %stack.0, 0 :: (load (s128) from %stack.0)31 ; CHECK-NEXT: $q0 = COPY [[COPY1]]32 ; CHECK-NEXT: $q1 = COPY [[LDRQui]]33 ; CHECK-NEXT: RET_ReallyLR implicit $q0, implicit $q134 %0:fpr(s128) = COPY $q035 %3:gpr(p0) = G_FRAME_INDEX %stack.036 ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp37 $q0 = COPY %0(s128)38 $x0 = COPY %3(p0)39 BL &modfl, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $q0, implicit $x0, implicit-def $q040 ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp41 %1:fpr(s128) = COPY $q042 %2:fpr(s128) = G_LOAD %3(p0) :: (load (s128) from %stack.0)43 $q0 = COPY %1(s128)44 $q1 = COPY %2(s128)45 RET_ReallyLR implicit $q0, implicit $q146...47---48name: test_modf_double49alignment: 450legalized: true51regBankSelected: true52tracksRegLiveness: true53liveins:54 - { reg: '$d0' }55frameInfo:56 maxAlignment: 857stack:58 - { id: 0, size: 8, alignment: 8 }59machineFunctionInfo: {}60body: |61 bb.1:62 liveins: $d063 64 ; CHECK-LABEL: name: test_modf_double65 ; CHECK: liveins: $d066 ; CHECK-NEXT: {{ $}}67 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d068 ; CHECK-NEXT: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri %stack.0, 0, 069 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp70 ; CHECK-NEXT: $d0 = COPY [[COPY]]71 ; CHECK-NEXT: $x0 = COPY [[ADDXri]]72 ; CHECK-NEXT: BL &modf, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit $x0, implicit-def $d073 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp74 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d075 ; CHECK-NEXT: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui %stack.0, 0 :: (load (s64) from %stack.0)76 ; CHECK-NEXT: $d0 = COPY [[COPY1]]77 ; CHECK-NEXT: $d1 = COPY [[LDRDui]]78 ; CHECK-NEXT: RET_ReallyLR implicit $d0, implicit $d179 %0:fpr(s64) = COPY $d080 %3:gpr(p0) = G_FRAME_INDEX %stack.081 ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp82 $d0 = COPY %0(s64)83 $x0 = COPY %3(p0)84 BL &modf, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit $x0, implicit-def $d085 ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp86 %1:fpr(s64) = COPY $d087 %2:fpr(s64) = G_LOAD %3(p0) :: (load (s64) from %stack.0)88 $d0 = COPY %1(s64)89 $d1 = COPY %2(s64)90 RET_ReallyLR implicit $d0, implicit $d191...92---93name: test_modf_double_vec94alignment: 495legalized: true96regBankSelected: true97tracksRegLiveness: true98liveins:99 - { reg: '$d0' }100frameInfo:101 maxAlignment: 8102stack:103 - { id: 0, size: 8, alignment: 8 }104machineFunctionInfo: {}105body: |106 bb.1:107 liveins: $d0108 109 ; CHECK-LABEL: name: test_modf_double_vec110 ; CHECK: liveins: $d0111 ; CHECK-NEXT: {{ $}}112 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $d0113 ; CHECK-NEXT: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri %stack.0, 0, 0114 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp115 ; CHECK-NEXT: $d0 = COPY [[COPY]]116 ; CHECK-NEXT: $x0 = COPY [[ADDXri]]117 ; CHECK-NEXT: BL &modf, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit $x0, implicit-def $d0118 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp119 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY $d0120 ; CHECK-NEXT: [[LDRDui:%[0-9]+]]:fpr64 = LDRDui %stack.0, 0 :: (load (s64) from %stack.0)121 ; CHECK-NEXT: $d0 = COPY [[COPY1]]122 ; CHECK-NEXT: $d1 = COPY [[LDRDui]]123 ; CHECK-NEXT: RET_ReallyLR implicit $d0, implicit $d1124 %0:fpr(s64) = COPY $d0125 %3:gpr(p0) = G_FRAME_INDEX %stack.0126 ADJCALLSTACKDOWN 0, 0, implicit-def $sp, implicit $sp127 $d0 = COPY %0(s64)128 $x0 = COPY %3(p0)129 BL &modf, csr_aarch64_aapcs, implicit-def $lr, implicit $sp, implicit $d0, implicit $x0, implicit-def $d0130 ADJCALLSTACKUP 0, 0, implicit-def $sp, implicit $sp131 %1:fpr(s64) = COPY $d0132 %2:fpr(s64) = G_LOAD %3(p0) :: (load (s64) from %stack.0)133 $d0 = COPY %1(s64)134 $d1 = COPY %2(s64)135 RET_ReallyLR implicit $d0, implicit $d1136...137