1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
11 - { id: 0, class: gpr }
12 - { id: 1, class: gpr }
18 ; CHECK-LABEL: name: bswap_s32
19 ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
20 ; CHECK: [[REVWr:%[0-9]+]]:gpr32 = REVWr [[COPY]]
21 ; CHECK: $w0 = COPY [[REVWr]]
33 - { id: 0, class: gpr }
34 - { id: 1, class: gpr }
40 ; CHECK-LABEL: name: bswap_s64
41 ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
42 ; CHECK: [[REVXr:%[0-9]+]]:gpr64 = REVXr [[COPY]]
43 ; CHECK: $x0 = COPY [[REVXr]]
54 tracksRegLiveness: true
55 machineFunctionInfo: {}
60 ; CHECK-LABEL: name: bswap_v4s32
62 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
63 ; CHECK: [[REV32v16i8_:%[0-9]+]]:fpr128 = REV32v16i8 [[COPY]]
64 ; CHECK: $q0 = COPY [[REV32v16i8_]]
65 ; CHECK: RET_ReallyLR implicit $q0
66 %0:fpr(<4 x s32>) = COPY $q0
67 %1:fpr(<4 x s32>) = G_BSWAP %0
68 $q0 = COPY %1(<4 x s32>)
69 RET_ReallyLR implicit $q0
77 tracksRegLiveness: true
78 machineFunctionInfo: {}
83 ; CHECK-LABEL: name: bswap_v2s32
85 ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
86 ; CHECK: [[REV32v8i8_:%[0-9]+]]:fpr64 = REV32v8i8 [[COPY]]
87 ; CHECK: $d0 = COPY [[REV32v8i8_]]
88 ; CHECK: RET_ReallyLR implicit $d0
89 %0:fpr(<2 x s32>) = COPY $d0
90 %1:fpr(<2 x s32>) = G_BSWAP %0
91 $d0 = COPY %1(<2 x s32>)
92 RET_ReallyLR implicit $d0
100 tracksRegLiveness: true
101 machineFunctionInfo: {}
106 ; CHECK-LABEL: name: bswap_v2s64
107 ; CHECK: liveins: $q0
108 ; CHECK: [[COPY:%[0-9]+]]:fpr128 = COPY $q0
109 ; CHECK: [[REV64v16i8_:%[0-9]+]]:fpr128 = REV64v16i8 [[COPY]]
110 ; CHECK: $q0 = COPY [[REV64v16i8_]]
111 ; CHECK: RET_ReallyLR implicit $q0
112 %0:fpr(<2 x s64>) = COPY $q0
113 %1:fpr(<2 x s64>) = G_BSWAP %0
114 $q0 = COPY %1(<2 x s64>)
115 RET_ReallyLR implicit $q0