• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -mtriple aarch64-unknown-unknown -run-pass=regbankselect -verify-machineinstrs %s -o - | FileCheck %s
3---
4name:            shl_cimm_32
5legalized:       true
6tracksRegLiveness: true
7body:             |
8  bb.1:
9    liveins: $w0
10
11    ; CHECK-LABEL: name: shl_cimm_32
12    ; CHECK: liveins: $w0
13    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0
14    ; CHECK: [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT i32 8
15    ; CHECK: [[SHL:%[0-9]+]]:gpr(s32) = G_SHL [[COPY]], [[C]](s32)
16    ; CHECK: $w0 = COPY [[SHL]](s32)
17    ; CHECK: RET_ReallyLR implicit $w0
18    %0:_(s32) = COPY $w0
19    %1:_(s32) = G_CONSTANT i32 8
20    %2:_(s32) = G_SHL %0, %1(s32)
21    $w0 = COPY %2(s32)
22    RET_ReallyLR implicit $w0
23
24...
25---
26name:            shl_cimm_64
27legalized:       true
28tracksRegLiveness: true
29body:             |
30  bb.1:
31    liveins: $x0
32
33    ; CHECK-LABEL: name: shl_cimm_64
34    ; CHECK: liveins: $x0
35    ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0
36    ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 8
37    ; CHECK: [[SHL:%[0-9]+]]:gpr(s64) = G_SHL [[COPY]], [[C]](s64)
38    ; CHECK: $x0 = COPY [[SHL]](s64)
39    ; CHECK: RET_ReallyLR implicit $x0
40    %0:_(s64) = COPY $x0
41    %1:_(s64) = G_CONSTANT i64 8
42    %2:_(s64) = G_SHL %0, %1(s64)
43    $x0 = COPY %2(s64)
44    RET_ReallyLR implicit $x0
45
46...
47---
48name:            lshr_cimm_32
49legalized:       true
50tracksRegLiveness: true
51body:             |
52  bb.1:
53    liveins: $w0
54
55    ; CHECK-LABEL: name: lshr_cimm_32
56    ; CHECK: liveins: $w0
57    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0
58    ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 8
59    ; CHECK: [[LSHR:%[0-9]+]]:gpr(s32) = G_LSHR [[COPY]], [[C]](s64)
60    ; CHECK: $w0 = COPY [[LSHR]](s32)
61    ; CHECK: RET_ReallyLR implicit $w0
62    %0:_(s32) = COPY $w0
63    %3:_(s64) = G_CONSTANT i64 8
64    %2:_(s32) = G_LSHR %0, %3(s64)
65    $w0 = COPY %2(s32)
66    RET_ReallyLR implicit $w0
67
68...
69---
70name:            lshr_cimm_64
71legalized:       true
72tracksRegLiveness: true
73body:             |
74  bb.1:
75    liveins: $x0
76
77    ; CHECK-LABEL: name: lshr_cimm_64
78    ; CHECK: liveins: $x0
79    ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0
80    ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 8
81    ; CHECK: [[LSHR:%[0-9]+]]:gpr(s64) = G_LSHR [[COPY]], [[C]](s64)
82    ; CHECK: $x0 = COPY [[LSHR]](s64)
83    ; CHECK: RET_ReallyLR implicit $x0
84    %0:_(s64) = COPY $x0
85    %1:_(s64) = G_CONSTANT i64 8
86    %2:_(s64) = G_LSHR %0, %1(s64)
87    $x0 = COPY %2(s64)
88    RET_ReallyLR implicit $x0
89
90...
91---
92name:            ashr_cimm_32
93legalized:       true
94tracksRegLiveness: true
95body:             |
96  bb.1:
97    liveins: $w0
98
99    ; CHECK-LABEL: name: ashr_cimm_32
100    ; CHECK: liveins: $w0
101    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY $w0
102    ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 8
103    ; CHECK: [[ASHR:%[0-9]+]]:gpr(s32) = G_ASHR [[COPY]], [[C]](s64)
104    ; CHECK: $w0 = COPY [[ASHR]](s32)
105    ; CHECK: RET_ReallyLR implicit $w0
106    %0:_(s32) = COPY $w0
107    %3:_(s64) = G_CONSTANT i64 8
108    %2:_(s32) = G_ASHR %0, %3(s64)
109    $w0 = COPY %2(s32)
110    RET_ReallyLR implicit $w0
111
112...
113---
114name:            ashr_cimm_64
115legalized:       true
116tracksRegLiveness: true
117body:             |
118  bb.1:
119    liveins: $x0
120
121    ; CHECK-LABEL: name: ashr_cimm_64
122    ; CHECK: liveins: $x0
123    ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY $x0
124    ; CHECK: [[C:%[0-9]+]]:gpr(s64) = G_CONSTANT i64 8
125    ; CHECK: [[ASHR:%[0-9]+]]:gpr(s64) = G_ASHR [[COPY]], [[C]](s64)
126    ; CHECK: $x0 = COPY [[ASHR]](s64)
127    ; CHECK: RET_ReallyLR implicit $x0
128    %0:_(s64) = COPY $x0
129    %1:_(s64) = G_CONSTANT i64 8
130    %2:_(s64) = G_ASHR %0, %1(s64)
131    $x0 = COPY %2(s64)
132    RET_ReallyLR implicit $x0
133
134...
135