[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / legalize-extload.mir
blob68d55e3ffd26331dd8a72dbb26f7f439ec56646c
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64 -run-pass=legalizer %s -o - -verify-machineinstrs | FileCheck %s
3 ...
4 ---
5 name:            test_extload
6 body: |
7   bb.0.entry:
8     liveins: $x0
9     ; CHECK-LABEL: name: test_extload
10     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
11     ; CHECK: [[LOAD:%[0-9]+]]:_(s32) = G_LOAD [[COPY]](p0) :: (load (s8))
12     ; CHECK: $w0 = COPY [[LOAD]](s32)
13     %0:_(p0) = COPY $x0
14     %1:_(s32) = G_LOAD %0 :: (load (s8))
15     $w0 = COPY %1
16 ...
17 ---
18 name:            sext_i32_i64
19 body:             |
20   bb.1:
21     liveins: $x0
23     ; CHECK-LABEL: name: sext_i32_i64
24     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
25     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s32))
26     ; CHECK: $x0 = COPY [[SEXTLOAD]](s64)
27     ; CHECK: RET_ReallyLR implicit $x0
28     %0:_(p0) = COPY $x0
29     %2:_(s64) = G_SEXTLOAD %0(p0) :: (load (s32))
30     $x0 = COPY %2(s64)
31     RET_ReallyLR implicit $x0
33 ...
34 ---
35 name:            sext_i16_i64
36 body:             |
37   bb.1:
38     liveins: $x0
40     ; CHECK-LABEL: name: sext_i16_i64
41     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
42     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s16))
43     ; CHECK: $x0 = COPY [[SEXTLOAD]](s64)
44     ; CHECK: RET_ReallyLR implicit $x0
45     %0:_(p0) = COPY $x0
46     %2:_(s64) = G_SEXTLOAD %0(p0) :: (load (s16))
47     $x0 = COPY %2(s64)
48     RET_ReallyLR implicit $x0
50 ...
51 ---
52 name:            sext_i8_i64
53 body:             |
54   bb.1:
55     liveins: $x0
57     ; CHECK-LABEL: name: sext_i8_i64
58     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
59     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD [[COPY]](p0) :: (load (s8))
60     ; CHECK: $x0 = COPY [[SEXTLOAD]](s64)
61     ; CHECK: RET_ReallyLR implicit $x0
62     %0:_(p0) = COPY $x0
63     %2:_(s64) = G_SEXTLOAD %0(p0) :: (load (s8))
64     $x0 = COPY %2(s64)
65     RET_ReallyLR implicit $x0
67 ...
68 ---
69 name:            zext_i32_i64
70 body:             |
71   bb.1:
72     liveins: $x0
74     ; CHECK-LABEL: name: zext_i32_i64
75     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
76     ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s32))
77     ; CHECK: $x0 = COPY [[ZEXTLOAD]](s64)
78     ; CHECK: RET_ReallyLR implicit $x0
79     %0:_(p0) = COPY $x0
80     %2:_(s64) = G_ZEXTLOAD %0(p0) :: (load (s32))
81     $x0 = COPY %2(s64)
82     RET_ReallyLR implicit $x0
84 ...
85 ---
86 name:            zext_i16_i64
87 body:             |
88   bb.1:
89     liveins: $x0
91     ; CHECK-LABEL: name: zext_i16_i64
92     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
93     ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s16))
94     ; CHECK: $x0 = COPY [[ZEXTLOAD]](s64)
95     ; CHECK: RET_ReallyLR implicit $x0
96     %0:_(p0) = COPY $x0
97     %2:_(s64) = G_ZEXTLOAD %0(p0) :: (load (s16))
98     $x0 = COPY %2(s64)
99     RET_ReallyLR implicit $x0
103 name:            zext_i8_i64
104 body:             |
105   bb.1:
106     liveins: $x0
108     ; CHECK-LABEL: name: zext_i8_i64
109     ; CHECK: [[COPY:%[0-9]+]]:_(p0) = COPY $x0
110     ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s64) = G_ZEXTLOAD [[COPY]](p0) :: (load (s8))
111     ; CHECK: $x0 = COPY [[ZEXTLOAD]](s64)
112     ; CHECK: RET_ReallyLR implicit $x0
113     %0:_(p0) = COPY $x0
114     %2:_(s64) = G_ZEXTLOAD %0(p0) :: (load (s8))
115     $x0 = COPY %2(s64)
116     RET_ReallyLR implicit $x0
120 name:            zext_i8_i88
121 body:             |
122   bb.1:
123     liveins: $x0
124     ; CHECK-LABEL: name: zext_i8_i88
125     ; CHECK: %ptr:_(p0) = COPY $x0
126     ; CHECK: [[ZEXTLOAD:%[0-9]+]]:_(s64) = G_ZEXTLOAD %ptr(p0) :: (load (s8))
127     ; CHECK: $x0 = COPY [[ZEXTLOAD]](s64)
128     ; CHECK: RET_ReallyLR implicit $x0
129     %ptr:_(p0) = COPY $x0
130     %load:_(s88) = G_ZEXTLOAD %ptr(p0) :: (load (s8))
131     %trunc:_(s64) = G_TRUNC %load
132     $x0 = COPY %trunc(s64)
133     RET_ReallyLR implicit $x0
137 name:            sext_i8_i88
138 body:             |
139   bb.1:
140     liveins: $x0
141     ; CHECK-LABEL: name: sext_i8_i88
142     ; CHECK: %ptr:_(p0) = COPY $x0
143     ; CHECK: [[SEXTLOAD:%[0-9]+]]:_(s64) = G_SEXTLOAD %ptr(p0) :: (load (s8))
144     ; CHECK: $x0 = COPY [[SEXTLOAD]](s64)
145     ; CHECK: RET_ReallyLR implicit $x0
146     %ptr:_(p0) = COPY $x0
147     %load:_(s88) = G_SEXTLOAD %ptr(p0) :: (load (s8))
148     %trunc:_(s64) = G_TRUNC %load
149     $x0 = COPY %trunc(s64)
150     RET_ReallyLR implicit $x0