[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / tools / llvm-cfi-verify / AArch64 / protected-lineinfo.s
blobbdee5ffd8474b1b8b1ecf6b1d90e8f8f3610777d
1 # RUN: llvm-mc %s -filetype obj -triple aarch64-- -o %t.o
2 # RUN: llvm-cfi-verify %t.o | FileCheck %s
4 # CHECK-LABEL: {{^Instruction: .* \(PROTECTED\)}}
5 # CHECK-NEXT: tiny.cc:9
7 # CHECK: Expected Protected: 1 (100.00%)
8 # CHECK: Unexpected Protected: 0 (0.00%)
9 # CHECK: Expected Unprotected: 0 (0.00%)
10 # CHECK: Unexpected Unprotected (BAD): 0 (0.00%)
12 # Source (tiny.cc):
13 # int a() { return 42; }
14 # int b() { return 137; }
15 # int main(int argc, char** argv) {
16 # int(*ptr)();
17 # if (argc == 1)
18 # ptr = &a;
19 # else
20 # ptr = &b;
21 # return ptr();
22 # }
23 .text
24 .file "ld-temp.o"
25 .p2align 2
26 .type _Z1av.cfi,@function
27 _Z1av.cfi:
28 .Lfunc_begin0:
29 .file 1 "/tmp/tiny.cc"
30 .loc 1 1 0
31 .cfi_startproc
32 .loc 1 1 11 prologue_end
33 mov w0, #42
34 ret
35 .Ltmp0:
36 .Lfunc_end0:
37 .size _Z1av.cfi, .Lfunc_end0-_Z1av.cfi
38 .cfi_endproc
40 .p2align 2
41 .type _Z1bv.cfi,@function
42 _Z1bv.cfi:
43 .Lfunc_begin1:
44 .loc 1 2 0
45 .cfi_startproc
46 .loc 1 2 11 prologue_end
47 mov w0, #137
48 ret
49 .Ltmp1:
50 .Lfunc_end1:
51 .size _Z1bv.cfi, .Lfunc_end1-_Z1bv.cfi
52 .cfi_endproc
54 .p2align 2
55 .type main,@function
56 main:
57 .Lfunc_begin2:
58 .loc 1 3 0
59 .cfi_startproc
60 sub sp, sp, #48
61 stp x29, x30, [sp, #32]
62 add x29, sp, #32
63 .cfi_def_cfa w29, 16
64 .cfi_offset w30, -8
65 .cfi_offset w29, -16
66 stur wzr, [x29, #-4]
67 stur w0, [x29, #-8]
68 str x1, [sp, #16]
69 .Ltmp2:
70 .loc 1 5 7 prologue_end
71 ldur w8, [x29, #-8]
72 cmp w8, #1
73 b.ne .LBB2_2
74 .loc 1 0 7 is_stmt 0
75 adrp x8, _Z1av
76 add x8, x8, :lo12:_Z1av
77 .loc 1 6 9 is_stmt 1
78 str x8, [sp, #8]
79 .loc 1 6 5 is_stmt 0
80 b .LBB2_3
81 .LBB2_2:
82 .loc 1 0 5
83 adrp x8, _Z1bv
84 add x8, x8, :lo12:_Z1bv
85 .loc 1 8 9 is_stmt 1
86 str x8, [sp, #8]
87 .LBB2_3:
88 .loc 1 0 9 is_stmt 0
89 adrp x8, .L.cfi.jumptable
90 add x9, x8, :lo12:.L.cfi.jumptable
91 .loc 1 9 10 is_stmt 1
92 ldr x8, [sp, #8]
93 sub x9, x8, x9
94 lsr x10, x9, #2
95 orr x9, x10, x9, lsl #62
96 cmp x9, #1
97 b.ls .LBB2_5
98 brk #0x1
99 .LBB2_5:
100 blr x8
101 .loc 1 9 3 is_stmt 0
102 ldp x29, x30, [sp, #32]
103 add sp, sp, #48
105 .Ltmp3:
106 .Lfunc_end2:
107 .size main, .Lfunc_end2-main
108 .cfi_endproc
110 .p2align 2
111 .type .L.cfi.jumptable,@function
112 .L.cfi.jumptable:
113 .Lfunc_begin3:
114 .cfi_startproc
115 //APP
116 b _Z1av.cfi
117 b _Z1bv.cfi
119 //NO_APP
120 .Lfunc_end3:
121 .size .L.cfi.jumptable, .Lfunc_end3-.L.cfi.jumptable
122 .cfi_endproc
124 .type .L__unnamed_1,@object
125 .section .rodata,"a",@progbits
126 .p2align 2
127 .L__unnamed_1:
128 .size .L__unnamed_1, 0
130 .section .debug_str,"MS",@progbits,1
131 .Linfo_string0:
132 .asciz "clang version 7.0.0 (trunk 335774) (llvm/trunk 335775)"
133 .Linfo_string1:
134 .asciz "tiny.cc"
135 .Linfo_string2:
136 .asciz ""
137 .section .debug_abbrev,"",@progbits
138 .byte 1
139 .byte 17
140 .byte 0
141 .byte 37
142 .byte 14
143 .byte 19
144 .byte 5
145 .byte 3
146 .byte 14
147 .byte 16
148 .byte 23
149 .byte 27
150 .byte 14
151 .byte 17
152 .byte 1
153 .byte 18
154 .byte 6
155 .byte 0
156 .byte 0
157 .byte 0
158 .section .debug_info,"",@progbits
159 .Lcu_begin0:
160 .word 38
161 .hword 4
162 .word .debug_abbrev
163 .byte 8
164 .byte 1
165 .word .Linfo_string0
166 .hword 4
167 .word .Linfo_string1
168 .word .Lline_table_start0
169 .word .Linfo_string2
170 .xword .Lfunc_begin0
171 .word .Lfunc_end2-.Lfunc_begin0
172 .section .debug_ranges,"",@progbits
173 .section .debug_macinfo,"",@progbits
174 .byte 0
176 .type _Z1av,@function
177 .set _Z1av, .L.cfi.jumptable
178 .type _Z1bv,@function
179 .set _Z1bv, .L.cfi.jumptable+4
180 .ident "clang version 7.0.0 (trunk 335774) (llvm/trunk 335775)"
181 .section ".note.GNU-stack","",@progbits
182 .section .debug_line,"",@progbits
183 .Lline_table_start0: