[ARM] Cortex-M4 schedule additions
[llvm-complete.git] / test / CodeGen / ARM / expand-pseudos.mir
blob568e96eacb5cbb493caaae34d32772baa8849c76
1 # RUN: llc -run-pass=arm-pseudo -verify-machineinstrs %s -o - | FileCheck %s
2 --- |
3   target triple = "armv7---gnueabi"
5   define i32 @test1(i32 %x) {
6   entry:
7     unreachable
8   }
9   define i32 @test2(i32 %x) {
10   entry:
11     unreachable
12   }
13   define i32 @test3(i32 %x) {
14   entry:
15     unreachable
16   }
17 ...
18 ---
19 name:            test1
20 alignment:       4
21 tracksRegLiveness: true
22 liveins:
23   - { reg: '$r0', virtual-reg: '' }
24 body:             |
25   bb.0.entry:
26     liveins: $r0
28     $r1 = MOVi 2, 14, $noreg, $noreg
29     CMPri killed $r0, 0, 14, $noreg, implicit-def $cpsr
30     $r1 = MOVCCi16 killed $r1, 500, 0, killed $cpsr
31     $r0 = MOVr killed $r1, 14, $noreg, $noreg
32     BX_RET 14, $noreg, implicit $r0
34 ...
35 ---
36 name:            test2
37 alignment:       4
38 tracksRegLiveness: true
39 liveins:
40   - { reg: '$r0', virtual-reg: '' }
41 body:             |
42   bb.0.entry:
43     liveins: $r0
45     $r1 = MOVi 2, 14, $noreg, $noreg
46     CMPri killed $r0, 0, 14, $noreg, implicit-def $cpsr
47     $r1 = MOVCCi32imm killed $r1, 500500500, 0, killed $cpsr
48     $r0 = MOVr killed $r1, 14, $noreg, $noreg
49     BX_RET 14, $noreg, implicit $r0
51 ...
52 ---
53 name:            test3
54 alignment:       4
55 tracksRegLiveness: true
56 liveins:
57   - { reg: '$r0', virtual-reg: '' }
58   - { reg: '$r1', virtual-reg: '' }
59 body:             |
60   bb.0.entry:
61     liveins: $r0, $r1
63     CMPri $r1, 500, 14, $noreg, implicit-def $cpsr
64     $r0 = MOVCCr killed $r0, killed $r1, 12, killed $cpsr
65     BX_RET 14, $noreg, implicit $r0
67 ...
69 # CHECK-LABEL: name: test1
70 # CHECK: $r1 = MOVi16 500, 0, killed $cpsr, implicit killed $r1
71 # CHECK-LABEL: name: test2
72 # CHECK:    $r1 = MOVi16 2068, 0, $cpsr, implicit killed $r1
73 # CHECK:    $r1 = MOVTi16 $r1, 7637, 0, $cpsr
74 # CHECK-LABEL: name: test3
75 # CHECK: $r0 = MOVr killed $r1, 12, killed $cpsr, $noreg, implicit killed $r0