1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-unknown-unknown -verify-machineinstrs -O0 -run-pass=regbankselect -global-isel-abort=1 %s -o - | FileCheck %s
7 tracksRegLiveness: true
16 %0:_(<2 x s32>) = COPY $d0
17 %2:_(s64) = G_CONSTANT i64 1
18 %1:_(s32) = G_EXTRACT_VECTOR_ELT %0(<2 x s32>), %2(s64)
20 RET_ReallyLR implicit $s0
27 tracksRegLiveness: true
36 ; CHECK-LABEL: name: v4s32_gpr
38 ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY $q0
39 ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 0
40 ; CHECK: [[EVEC:%[0-9]+]]:fpr(s32) = G_EXTRACT_VECTOR_ELT [[COPY]](<4 x s32>), [[C]](s64)
41 ; CHECK: $s0 = COPY [[EVEC]](s32)
42 ; CHECK: RET_ReallyLR implicit $s0
43 %0:_(<4 x s32>) = COPY $q0
44 %2:_(s64) = G_CONSTANT i64 0
45 %1:_(s32) = G_EXTRACT_VECTOR_ELT %0(<4 x s32>), %2(s64)
47 RET_ReallyLR implicit $s0
54 tracksRegLiveness: true
63 ; CHECK-LABEL: name: v2s64_fpr
65 ; CHECK: [[COPY:%[0-9]+]]:fpr(<2 x s64>) = COPY $q0
66 ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 2
67 ; CHECK: [[EVEC:%[0-9]+]]:fpr(s64) = G_EXTRACT_VECTOR_ELT [[COPY]](<2 x s64>), [[C]](s64)
68 ; CHECK: $d0 = COPY [[EVEC]](s64)
69 ; CHECK: RET_ReallyLR implicit $d0
70 %0:_(<2 x s64>) = COPY $q0
71 %2:_(s64) = G_CONSTANT i64 2
72 %1:_(s64) = G_EXTRACT_VECTOR_ELT %0(<2 x s64>), %2(s64)
74 RET_ReallyLR implicit $d0
81 tracksRegLiveness: true
90 ; CHECK-LABEL: name: v4s16_fpr
92 ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s16>) = COPY $d0
93 ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 1
94 ; CHECK: [[EVEC:%[0-9]+]]:fpr(s16) = G_EXTRACT_VECTOR_ELT [[COPY]](<4 x s16>), [[C]](s64)
95 ; CHECK: $h0 = COPY [[EVEC]](s16)
96 ; CHECK: RET_ReallyLR implicit $h0
97 %0:_(<4 x s16>) = COPY $d0
98 %2:_(s64) = G_CONSTANT i64 1
99 %1:_(s16) = G_EXTRACT_VECTOR_ELT %0(<4 x s16>), %2(s64)
101 RET_ReallyLR implicit $h0