1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=arm64-unknown-unknown -global-isel -run-pass=legalizer -global-isel-abort=1 %s -o - | FileCheck %s
6 tracksRegLiveness: true
11 ; CHECK-LABEL: name: test_s32
12 ; CHECK: liveins: $w0, $w1
13 ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
14 ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY $w1
15 ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 31
16 ; CHECK: [[AND:%[0-9]+]]:_(s32) = G_AND [[COPY1]], [[C]]
17 ; CHECK: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
18 ; CHECK: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[COPY1]], [[C1]]
19 ; CHECK: [[AND1:%[0-9]+]]:_(s32) = G_AND [[XOR]], [[C]]
20 ; CHECK: [[SHL:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[AND]](s32)
21 ; CHECK: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
22 ; CHECK: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[COPY]], [[C2]](s64)
23 ; CHECK: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[LSHR]], [[AND1]](s32)
24 ; CHECK: [[OR:%[0-9]+]]:_(s32) = G_OR [[SHL]], [[LSHR1]]
25 ; CHECK: $w0 = COPY [[OR]](s32)
26 ; CHECK: RET_ReallyLR implicit $w0
29 %2:_(s32) = G_FSHL %0(s32), %0, %1
31 RET_ReallyLR implicit $w0
38 tracksRegLiveness: true
43 ; CHECK-LABEL: name: test_s64
44 ; CHECK: liveins: $x0, $x1
45 ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
46 ; CHECK: [[COPY1:%[0-9]+]]:_(s64) = COPY $x1
47 ; CHECK: [[C:%[0-9]+]]:_(s64) = G_CONSTANT i64 63
48 ; CHECK: [[AND:%[0-9]+]]:_(s64) = G_AND [[COPY1]], [[C]]
49 ; CHECK: [[C1:%[0-9]+]]:_(s64) = G_CONSTANT i64 -1
50 ; CHECK: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[COPY1]], [[C1]]
51 ; CHECK: [[AND1:%[0-9]+]]:_(s64) = G_AND [[XOR]], [[C]]
52 ; CHECK: [[C2:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
53 ; CHECK: [[SHL:%[0-9]+]]:_(s64) = G_SHL [[COPY]], [[AND]](s64)
54 ; CHECK: [[LSHR:%[0-9]+]]:_(s64) = G_LSHR [[COPY]], [[C2]](s64)
55 ; CHECK: [[LSHR1:%[0-9]+]]:_(s64) = G_LSHR [[LSHR]], [[AND1]](s64)
56 ; CHECK: [[OR:%[0-9]+]]:_(s64) = G_OR [[SHL]], [[LSHR1]]
57 ; CHECK: $x0 = COPY [[OR]](s64)
58 ; CHECK: RET_ReallyLR implicit $x0
61 %2:_(s64) = G_FSHL %0(s64), %0, %1(s64)
63 RET_ReallyLR implicit $x0