[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AArch64 / GlobalISel / select-imm.mir
blob406266b8caad4a2a71f4f9f2541f72d546bf3e24
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -O0 -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
4 --- |
5   target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
7   define void @imm_s32_gpr() { ret void }
8   define void @imm_s64_gpr() { ret void }
10 ...
12 ---
13 # Check that we select a 32-bit immediate into a MOVi32imm.
14 name:            imm_s32_gpr
15 legalized:       true
16 regBankSelected: true
18 registers:
19   - { id: 0, class: gpr }
21 body:             |
22   bb.0:
23     liveins: $w0, $w1
25     ; CHECK-LABEL: name: imm_s32_gpr
26     ; CHECK: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm -1234
27     ; CHECK: $w0 = COPY [[MOVi32imm]]
28     %0(s32) = G_CONSTANT i32 -1234
29     $w0 = COPY %0(s32)
30 ...
32 ---
33 # Check that we select a 64-bit immediate into a MOVi64imm.
34 name:            imm_s64_gpr
35 legalized:       true
36 regBankSelected: true
38 registers:
39   - { id: 0, class: gpr }
41 body:             |
42   bb.0:
43     liveins: $w0, $w1
45     ; CHECK-LABEL: name: imm_s64_gpr
46     ; CHECK: [[MOVi32imm:%[0-9]+]]:gpr32 = MOVi32imm 1234
47     ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gpr64all = SUBREG_TO_REG 0, [[MOVi32imm]], %subreg.sub_32
48     ; CHECK: $x0 = COPY [[SUBREG_TO_REG]]
49     %0(s64) = G_CONSTANT i64 1234
50     $x0 = COPY %0(s64)
51 ...