[InstCombine] Signed saturation patterns
[llvm-core.git] / test / CodeGen / ARM / GlobalISel / thumb-select-select.mir
blob42e20cb32c56feca0eba72d649871cdc4ab473ac
1 # RUN: llc -O0 -mtriple thumb-- -mattr=+v6t2 -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
2 --- |
3   define void @test_select_s32() { ret void }
4   define void @test_select_ptr() { ret void }
5 ...
6 ---
7 name:            test_select_s32
8 # CHECK-LABEL: name: test_select_s32
9 legalized:       true
10 regBankSelected: true
11 selected:        false
12 # CHECK: selected: true
13 registers:
14   - { id: 0, class: gprb }
15   - { id: 1, class: gprb }
16   - { id: 2, class: gprb }
17   - { id: 3, class: gprb }
18 body:             |
19   bb.0:
20     liveins: $r0, $r1
22     %0(s32) = COPY $r0
23     ; CHECK: [[VREGX:%[0-9]+]]:rgpr = COPY $r0
25     %1(s32) = COPY $r1
26     ; CHECK: [[VREGY:%[0-9]+]]:rgpr = COPY $r1
28     %2(s1) = G_TRUNC %1(s32)
30     %3(s32) = G_SELECT %2(s1),  %0, %1
31     ; CHECK: t2TSTri [[VREGY]], 1, 14, $noreg, implicit-def $cpsr
32     ; CHECK: [[RES:%[0-9]+]]:rgpr = t2MOVCCr [[VREGX]], [[VREGY]], 0, $cpsr
34     $r0 = COPY %3(s32)
35     ; CHECK: $r0 = COPY [[RES]]
37     BX_RET 14, $noreg, implicit $r0
38     ; CHECK: BX_RET 14, $noreg, implicit $r0
39 ...
40 ---
41 name:            test_select_ptr
42 # CHECK-LABEL: name: test_select_ptr
43 legalized:       true
44 regBankSelected: true
45 selected:        false
46 # CHECK: selected: true
47 registers:
48   - { id: 0, class: gprb }
49   - { id: 1, class: gprb }
50   - { id: 2, class: gprb }
51   - { id: 3, class: gprb }
52   - { id: 4, class: gprb }
53 body:             |
54   bb.0:
55     liveins: $r0, $r1, $r2
57     %0(p0) = COPY $r0
58     ; CHECK: [[VREGX:%[0-9]+]]:rgpr = COPY $r0
60     %1(p0) = COPY $r1
61     ; CHECK: [[VREGY:%[0-9]+]]:rgpr = COPY $r1
63     %2(s32) = COPY $r2
64     ; CHECK: [[VREGC32:%[0-9]+]]:gpr = COPY $r2
66     %3(s1) = G_TRUNC %2(s32)
67     ; CHECK: [[VREGC:%[0-9]+]]:rgpr = COPY [[VREGC32]]
69     %4(p0) = G_SELECT %3(s1),  %0, %1
70     ; CHECK: t2TSTri [[VREGC]], 1, 14, $noreg, implicit-def $cpsr
71     ; CHECK: [[RES:%[0-9]+]]:rgpr = t2MOVCCr [[VREGX]], [[VREGY]], 0, $cpsr
73     $r0 = COPY %4(p0)
74     ; CHECK: $r0 = COPY [[RES]]
76     BX_RET 14, $noreg, implicit $r0
77     ; CHECK: BX_RET 14, $noreg, implicit $r0
78 ...