[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / AArch64 / machine-outliner-unsafe-stack-call.mir
blob330d61eb03d4474e1358aac6e62a518628f0e9d6
1 # RUN: llc -mtriple=aarch64--- -run-pass=machine-outliner \
2 # RUN: -verify-machineinstrs %s -o - | FileCheck %s
4 # Ensure that we never outline calls into sequences where unsafe stack
5 # instructions are present.
7 --- |
8   define void @foo() #0 { ret void }
9   define void @bar() #0 { ret void }
10   define void @baz() #0 { ret void }
11   define void @f1() #0 { ret void }
12   define void @f2() #0 { ret void }
13   attributes #0 = { minsize noinline noredzone "no-frame-pointer-elim"="true" }
14 ...
15 ---
17 name:            f1
18 tracksRegLiveness: true
19 body:             |
20   bb.0:
21   liveins: $lr
22     ; CHECK-LABEL: name:            f1
23     ; CHECK: foo
24     ; CHECK-DAG: bar
25     ; CHECK-DAG: baz
26     $lr = ORRXri $xzr, 1
27     BL @foo, implicit-def dead $lr, implicit $sp
28     $x20, $x19 = LDPXi $sp, 255
29     $x20, $x19 = LDPXi $sp, 255
30     $x20, $x19 = LDPXi $sp, 255
31     $x20, $x19 = LDPXi $sp, 255
32   bb.1:
33     BL @bar, implicit-def dead $lr, implicit $sp
34     $x11 = ADDXri $sp, 48, 0;
35     $x12 = ADDXri $sp, 48, 0;
36     $x13 = ADDXri $sp, 48, 0;
37     $x14 = ADDXri $sp, 48, 0;
38   bb.2:
39     BL @baz, implicit-def dead $lr, implicit $sp
40     $x0 = ADDXri $sp, 48, 0;
41     $x1 = ADDXri $sp, 48, 0;
42     RET undef $lr
44 ...
45 ---
47 name:            f2
48 tracksRegLiveness: true
49 body:             |
50   bb.0:
51     liveins: $lr
52     ; CHECK-LABEL: name:            f2
53     ; CHECK: foo
54     ; CHECK-DAG: bar
55     ; CHECK-DAG: baz
56     $lr = ORRXri $xzr, 1
57     BL @foo, implicit-def dead $lr, implicit $sp
58     $x20, $x19 = LDPXi $sp, 255
59     $x20, $x19 = LDPXi $sp, 255
60     $x20, $x19 = LDPXi $sp, 255
61     $x20, $x19 = LDPXi $sp, 255
62   bb.1:
63     BL @bar, implicit-def dead $lr, implicit $sp
64     $x11 = ADDXri $sp, 48, 0;
65     $x12 = ADDXri $sp, 48, 0;
66     $x13 = ADDXri $sp, 48, 0;
67     $x14 = ADDXri $sp, 48, 0;
68   bb.2:
69     BL @baz, implicit-def dead $lr, implicit $sp
70     $x0 = ADDXri $sp, 48, 0;
71     $x1 = ADDXri $sp, 48, 0;
72     RET undef $lr