[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / AArch64 / GlobalISel / legalize-sext.mir
blobe0b747754293ed8d7370f7c83caa4667e8a8d511
1 # RUN: llc -march=aarch64 -run-pass=legalizer %s -o - | FileCheck %s
2 ---
3 name:            test_sext_inreg
4 body: |
5   bb.0.entry:
6     liveins: $w0, $w1
7     ; CHECK-LABEL: name: test_sext_inreg
8     ; CHECK-DAG: [[COPY:%[0-9]+]]:_(s32) = COPY $w1
9     ; CHECK-DAG: [[I25:%[0-9]+]]:_(s32) = G_CONSTANT i32 25
10     ; CHECK-DAG: [[SEXT1:%[0-9]+]]:_(s32) = G_SHL [[COPY]], [[I25]]
11     ; This constant is coming from a custom legalization for G_ASHR rather than G_SEXT_INREG lowering
12     ; CHECK-DAG: [[I25_64:%[0-9]+]]:_(s64) = G_CONSTANT i64 25
13     ; CHECK-DAG: [[SEXT2:%[0-9]+]]:_(s32) = G_ASHR [[SEXT1]], [[I25_64]]
14     ; CHECK-DAG: $w0 = COPY [[SEXT2]](s32)
15     %0:_(s32) = COPY $w1
16     %2:_(s32) = G_SEXT_INREG %0(s32), 7
17     $w0 = COPY %2(s32)
18 ...