1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -global-isel-abort=1 -verify-machineinstrs %s -o - | FileCheck %s 3 4--- | 5 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128" 6 7 define void @inttoptr_p0_s64() { ret void } 8 define void @ptrtoint_s64_p0() { ret void } 9 define void @ptrtoint_s32_p0() { ret void } 10 define void @ptrtoint_s16_p0() { ret void } 11 define void @ptrtoint_s8_p0() { ret void } 12 define void @inttoptr_v2p0_v2s64() { ret void } 13 define void @ptrtoint_v2s64_v2p0() { ret void } 14... 15 16--- 17name: inttoptr_p0_s64 18legalized: true 19regBankSelected: true 20 21registers: 22 - { id: 0, class: gpr } 23 - { id: 1, class: gpr } 24body: | 25 bb.0: 26 liveins: $x0 27 ; CHECK-LABEL: name: inttoptr_p0_s64 28 ; CHECK: [[COPY:%[0-9]+]]:gpr64all = COPY $x0 29 ; CHECK-NEXT: $x0 = COPY [[COPY]] 30 %0(s64) = COPY $x0 31 %1(p0) = G_INTTOPTR %0 32 $x0 = COPY %1(p0) 33... 34 35--- 36name: ptrtoint_s64_p0 37legalized: true 38regBankSelected: true 39 40registers: 41 - { id: 0, class: gpr } 42 - { id: 1, class: gpr } 43body: | 44 bb.0: 45 liveins: $x0 46 ; CHECK-LABEL: name: ptrtoint_s64_p0 47 ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0 48 ; CHECK-NEXT: $x0 = COPY [[COPY]] 49 %0(p0) = COPY $x0 50 %1(s64) = G_PTRTOINT %0 51 $x0 = COPY %1(s64) 52... 53 54--- 55name: ptrtoint_s32_p0 56legalized: true 57regBankSelected: true 58 59registers: 60 - { id: 0, class: gpr } 61 - { id: 1, class: gpr } 62body: | 63 bb.0: 64 liveins: $x0 65 ; CHECK-LABEL: name: ptrtoint_s32_p0 66 ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0 67 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]].sub_32 68 ; CHECK-NEXT: $w0 = COPY [[COPY1]] 69 %0(p0) = COPY $x0 70 %1(s32) = G_PTRTOINT %0 71 $w0 = COPY %1(s32) 72... 73 74--- 75name: ptrtoint_s16_p0 76legalized: true 77regBankSelected: true 78 79registers: 80 - { id: 0, class: gpr } 81 - { id: 1, class: gpr } 82body: | 83 bb.0: 84 liveins: $x0 85 ; CHECK-LABEL: name: ptrtoint_s16_p0 86 ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0 87 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]].sub_32 88 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32all = COPY [[COPY1]] 89 ; CHECK-NEXT: $w0 = COPY [[COPY2]] 90 %0(p0) = COPY $x0 91 %1(s16) = G_PTRTOINT %0 92 %2:gpr(s32) = G_ANYEXT %1 93 $w0 = COPY %2(s32) 94... 95 96--- 97name: ptrtoint_s8_p0 98legalized: true 99regBankSelected: true 100 101registers: 102 - { id: 0, class: gpr } 103 - { id: 1, class: gpr } 104body: | 105 bb.0: 106 liveins: $x0 107 ; CHECK-LABEL: name: ptrtoint_s8_p0 108 ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0 109 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr32 = COPY [[COPY]].sub_32 110 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr32all = COPY [[COPY1]] 111 ; CHECK-NEXT: $w0 = COPY [[COPY2]] 112 %0(p0) = COPY $x0 113 %1(s8) = G_PTRTOINT %0 114 %2:gpr(s32) = G_ANYEXT %1 115 $w0 = COPY %2(s32) 116... 117 118--- 119name: inttoptr_v2p0_v2s64 120legalized: true 121regBankSelected: true 122tracksRegLiveness: true 123body: | 124 bb.0: 125 liveins: $q0, $x0 126 ; CHECK-LABEL: name: inttoptr_v2p0_v2s64 127 ; CHECK: liveins: $q0, $x0 128 ; CHECK-NEXT: {{ $}} 129 ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr128 = COPY $q0 130 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:fpr64 = COPY [[COPY]].dsub 131 ; CHECK-NEXT: $x0 = COPY [[COPY1]] 132 ; CHECK-NEXT: RET_ReallyLR implicit $x0 133 %1:fpr(<2 x s64>) = COPY $q0 134 %2:fpr(<2 x p0>) = G_INTTOPTR %1(<2 x s64>) 135 %4:gpr(s64) = G_CONSTANT i64 0 136 %3:fpr(p0) = G_EXTRACT_VECTOR_ELT %2(<2 x p0>), %4(s64) 137 $x0 = COPY %3(p0) 138 RET_ReallyLR implicit $x0 139... 140... 141--- 142name: ptrtoint_v2s64_v2p0 143legalized: true 144regBankSelected: true 145tracksRegLiveness: true 146body: | 147 bb.0: 148 liveins: $q0 149 ; CHECK-LABEL: name: ptrtoint_v2s64_v2p0 150 ; CHECK: liveins: $q0 151 ; CHECK-NEXT: {{ $}} 152 ; CHECK-NEXT: %ptr:fpr128 = COPY $q0 153 ; CHECK-NEXT: $q0 = COPY %ptr 154 ; CHECK-NEXT: RET_ReallyLR implicit $q0 155 %ptr:fpr(<2 x p0>) = COPY $q0 156 %int:fpr(<2 x s64>) = G_PTRTOINT %ptr(<2 x p0>) 157 $q0 = COPY %int(<2 x s64>) 158 RET_ReallyLR implicit $q0 159... 160