[MIParser] Set RegClassOrRegBank during instruction parsing
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / legalize-bswap.mir
blob5e5cbf63bb0736941ed5a2caa43892b595575301
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -march=aarch64 -run-pass=legalizer %s -o - -verify-machineinstrs | FileCheck %s
3 --- |
4   target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
5   target triple = "aarch64"
7   declare i16 @llvm.bswap.i16(i16) #0
9   define i16 @bswap_s16(i16 %a) { ret i16 0 }
11   attributes #0 = { nounwind readnone speculatable willreturn }
13 ...
14 ---
15 name:            bswap_s16
16 alignment:       4
17 tracksRegLiveness: true
18 liveins:
19   - { reg: '$w0' }
20 frameInfo:
21   maxAlignment:    1
22 machineFunctionInfo: {}
23 body:             |
24   bb.1:
25     liveins: $w0
27     ; CHECK-LABEL: name: bswap_s16
28     ; CHECK: liveins: $w0
29     ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
30     ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[COPY]](s32)
31     ; CHECK: [[BSWAP:%[0-9]+]]:_(s32) = G_BSWAP [[COPY1]]
32     ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 16
33     ; CHECK: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BSWAP]], [[C]](s64)
34     ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY [[LSHR]](s32)
35     ; CHECK: $w0 = COPY [[COPY2]](s32)
36     ; CHECK: RET_ReallyLR implicit $w0
37     %1:_(s32) = COPY $w0
38     %0:_(s16) = G_TRUNC %1(s32)
39     %2:_(s16) = G_BSWAP %0
40     %3:_(s32) = G_ANYEXT %2(s16)
41     $w0 = COPY %3(s32)
42     RET_ReallyLR implicit $w0
44 ...