[ORC] Add std::tuple support to SimplePackedSerialization.
[llvm-project.git] / llvm / test / CodeGen / AArch64 / GlobalISel / postlegalizer-combiner-constant-fold.mir
blobd5b2b9fa0502ac564aa749903e904f08b306b2c6
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple aarch64 -run-pass=aarch64-postlegalizer-combiner -verify-machineinstrs %s -o - | FileCheck %s
4 ---
5 name:            add
6 alignment:       4
7 legalized:       true
8 liveins:
9   - { reg: '$w0' }
10 body:             |
11   bb.1.entry:
12     liveins: $x0
14     ; CHECK-LABEL: name: add
15     ; CHECK: %res:_(s64) = G_CONSTANT i64 42
16     ; CHECK: $x0 = COPY %res(s64)
17     ; CHECK: RET_ReallyLR implicit $x0
18     %a:_(s64) = G_CONSTANT i64 40
19     %b:_(s64) = G_CONSTANT i64 2
20     %res:_(s64) = G_ADD %a, %b
21     $x0 = COPY %res(s64)
22     RET_ReallyLR implicit $x0
24 ...
25 ---
26 name:            sub
27 alignment:       4
28 legalized:       true
29 liveins:
30   - { reg: '$w0' }
31 body:             |
32   bb.1.entry:
33     liveins: $x0
35     ; CHECK-LABEL: name: sub
36     ; CHECK: %res:_(s64) = G_CONSTANT i64 38
37     ; CHECK: $x0 = COPY %res(s64)
38     ; CHECK: RET_ReallyLR implicit $x0
39     %a:_(s64) = G_CONSTANT i64 40
40     %b:_(s64) = G_CONSTANT i64 2
41     %res:_(s64) = G_SUB %a, %b
42     $x0 = COPY %res(s64)
43     RET_ReallyLR implicit $x0
45 ...
46 ---
47 name:            mul
48 alignment:       4
49 legalized:       true
50 liveins:
51   - { reg: '$w0' }
52 body:             |
53   bb.1.entry:
54     liveins: $x0
56     ; CHECK-LABEL: name: mul
57     ; CHECK: %res:_(s64) = G_CONSTANT i64 80
58     ; CHECK: $x0 = COPY %res(s64)
59     ; CHECK: RET_ReallyLR implicit $x0
60     %a:_(s64) = G_CONSTANT i64 40
61     %b:_(s64) = G_CONSTANT i64 2
62     %res:_(s64) = G_MUL %a, %b
63     $x0 = COPY %res(s64)
64     RET_ReallyLR implicit $x0
66 ...
67 ---
68 name:            and
69 alignment:       4
70 legalized:       true
71 liveins:
72   - { reg: '$w0' }
73 body:             |
74   bb.1.entry:
75     liveins: $x0
77     ; CHECK-LABEL: name: and
78     ; CHECK: %res:_(s64) = G_CONSTANT i64 0
79     ; CHECK: $x0 = COPY %res(s64)
80     ; CHECK: RET_ReallyLR implicit $x0
81     %a:_(s64) = G_CONSTANT i64 40
82     %b:_(s64) = G_CONSTANT i64 2
83     %res:_(s64) = G_AND %a, %b
84     $x0 = COPY %res(s64)
85     RET_ReallyLR implicit $x0
87 ...
88 ---
89 name:            or
90 alignment:       4
91 legalized:       true
92 liveins:
93   - { reg: '$w0' }
94 body:             |
95   bb.1.entry:
96     liveins: $x0
98     ; CHECK-LABEL: name: or
99     ; CHECK: %res:_(s64) = G_CONSTANT i64 62
100     ; CHECK: $x0 = COPY %res(s64)
101     ; CHECK: RET_ReallyLR implicit $x0
102     %a:_(s64) = G_CONSTANT i64 42
103     %b:_(s64) = G_CONSTANT i64 22
104     %res:_(s64) = G_OR %a, %b
105     $x0 = COPY %res(s64)
106     RET_ReallyLR implicit $x0
110 name:            xor
111 alignment:       4
112 legalized:       true
113 liveins:
114   - { reg: '$w0' }
115 body:             |
116   bb.1.entry:
117     liveins: $x0
119     ; CHECK-LABEL: name: xor
120     ; CHECK: %res:_(s64) = G_CONSTANT i64 12
121     ; CHECK: $x0 = COPY %res(s64)
122     ; CHECK: RET_ReallyLR implicit $x0
123     %a:_(s64) = G_CONSTANT i64 8
124     %b:_(s64) = G_CONSTANT i64 4
125     %res:_(s64) = G_XOR %a, %b
126     $x0 = COPY %res(s64)
127     RET_ReallyLR implicit $x0