[llvm-objdump] - Remove one overload of reportError. NFCI.
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-cmp.mir
blobef1e658c467082cac83d6bbfdd6373042dc3e2cb
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
3 ---
4 name:            cmp_imm_32
5 legalized:       true
6 regBankSelected: true
7 tracksRegLiveness: true
8 body:             |
9   bb.1:
10     liveins: $w0
12     ; CHECK-LABEL: name: cmp_imm_32
13     ; CHECK: liveins: $w0
14     ; CHECK: [[COPY:%[0-9]+]]:gpr32sp = COPY $w0
15     ; CHECK: $wzr = SUBSWri [[COPY]], 42, 0, implicit-def $nzcv
16     ; CHECK: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv
17     ; CHECK: $w0 = COPY [[CSINCWr]]
18     ; CHECK: RET_ReallyLR implicit $w0
19     %0:gpr(s32) = COPY $w0
20     %1:gpr(s32) = G_CONSTANT i32 42
21     %5:gpr(s32) = G_ICMP intpred(eq), %0(s32), %1
22     $w0 = COPY %5(s32)
23     RET_ReallyLR implicit $w0
25 ...
26 ---
27 name:            cmp_imm_64
28 legalized:       true
29 regBankSelected: true
30 tracksRegLiveness: true
31 body:             |
32   bb.1:
33     liveins: $x0
35     ; CHECK-LABEL: name: cmp_imm_64
36     ; CHECK: liveins: $x0
37     ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
38     ; CHECK: $xzr = SUBSXri [[COPY]], 42, 0, implicit-def $nzcv
39     ; CHECK: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv
40     ; CHECK: $w0 = COPY [[CSINCWr]]
41     ; CHECK: RET_ReallyLR implicit $w0
42     %0:gpr(s64) = COPY $x0
43     %1:gpr(s64) = G_CONSTANT i64 42
44     %5:gpr(s32) = G_ICMP intpred(eq), %0(s64), %1
45     $w0 = COPY %5(s32)
46     RET_ReallyLR implicit $w0
48 ...
49 ---
50 name:            cmp_imm_out_of_range
51 legalized:       true
52 regBankSelected: true
53 tracksRegLiveness: true
54 body:             |
55   bb.1:
56     liveins: $x0
58     ; CHECK-LABEL: name: cmp_imm_out_of_range
59     ; CHECK: liveins: $x0
60     ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
61     ; CHECK: [[MOVi64imm:%[0-9]+]]:gpr64 = MOVi64imm 13132
62     ; CHECK: $xzr = SUBSXrr [[COPY]], [[MOVi64imm]], implicit-def $nzcv
63     ; CHECK: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv
64     ; CHECK: $w0 = COPY [[CSINCWr]]
65     ; CHECK: RET_ReallyLR implicit $w0
66     %0:gpr(s64) = COPY $x0
67     %1:gpr(s64) = G_CONSTANT i64 13132
68     %5:gpr(s32) = G_ICMP intpred(eq), %0(s64), %1
69     $w0 = COPY %5(s32)
70     RET_ReallyLR implicit $w0
72 ...
73 ---
74 name:            cmp_imm_lookthrough
75 legalized:       true
76 regBankSelected: true
77 tracksRegLiveness: true
78 body:             |
79   bb.1:
80     liveins: $w0
81     ; CHECK-LABEL: name: cmp_imm_lookthrough
82     ; CHECK: liveins: $w0
83     ; CHECK: [[COPY:%[0-9]+]]:gpr32sp = COPY $w0
84     ; CHECK: $wzr = SUBSWri [[COPY]], 42, 0, implicit-def $nzcv
85     ; CHECK: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv
86     ; CHECK: $w0 = COPY [[CSINCWr]]
87     ; CHECK: RET_ReallyLR implicit $w0
88     %0:gpr(s32) = COPY $w0
89     %1:gpr(s64) = G_CONSTANT i64 42
90     %2:gpr(s32) = G_TRUNC %1(s64)
91     %5:gpr(s32) = G_ICMP intpred(eq), %0(s32), %2
92     $w0 = COPY %5(s32)
93     RET_ReallyLR implicit $w0
95 ...
96 ---
97 name:            cmp_imm_lookthrough_bad_trunc
98 legalized:       true
99 regBankSelected: true
100 tracksRegLiveness: true
101 body:             |
102   bb.1:
103     liveins: $w0
104     ; CHECK-LABEL: name: cmp_imm_lookthrough_bad_trunc
105     ; CHECK: liveins: $w0
106     ; CHECK: [[COPY:%[0-9]+]]:gpr32sp = COPY $w0
107     ; CHECK: $wzr = SUBSWri [[COPY]], 0, 0, implicit-def $nzcv
108     ; CHECK: [[CSINCWr:%[0-9]+]]:gpr32 = CSINCWr $wzr, $wzr, 1, implicit $nzcv
109     ; CHECK: $w0 = COPY [[CSINCWr]]
110     ; CHECK: RET_ReallyLR implicit $w0
111     %0:gpr(s32) = COPY $w0
112     %1:gpr(s64) = G_CONSTANT i64 68719476736 ; 0x1000000000
113     %2:gpr(s32) = G_TRUNC %1(s64) ; Value truncates to 0
114     %5:gpr(s32) = G_ICMP intpred(eq), %0(s32), %2
115     $w0 = COPY %5(s32)
116     RET_ReallyLR implicit $w0