xref: /aosp_15_r20/external/llvm/test/CodeGen/X86/asm-label.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llc -mtriple=x86_64-apple-darwin10 -O0 < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; test that we print a label that we use. We had a bug where
4*9880d681SAndroid Build Coastguard Worker; we would print the jump, but not the label because it was considered
5*9880d681SAndroid Build Coastguard Worker; a fall through.
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker; CHECK:        jmp     LBB0_9
8*9880d681SAndroid Build Coastguard Worker; CHECK: LBB0_9:                                 ## %cleanup
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine void @foo()  {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %land.lhs.true, label %if.end11
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Workerland.lhs.true:                                    ; preds = %entry
15*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.then, label %if.end11
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workerif.then:                                          ; preds = %land.lhs.true
18*9880d681SAndroid Build Coastguard Worker  br i1 undef, label %if.then9, label %if.end
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Workerif.then9:                                         ; preds = %if.then
21*9880d681SAndroid Build Coastguard Worker  br label %cleanup
22*9880d681SAndroid Build Coastguard Worker
23*9880d681SAndroid Build Coastguard Workerif.end:                                           ; preds = %if.then
24*9880d681SAndroid Build Coastguard Worker  br label %cleanup
25*9880d681SAndroid Build Coastguard Worker
26*9880d681SAndroid Build Coastguard Workercleanup:                                          ; preds = %if.end, %if.then9
27*9880d681SAndroid Build Coastguard Worker  switch i32 undef, label %default [
28*9880d681SAndroid Build Coastguard Worker    i32 0, label %cleanup.cont
29*9880d681SAndroid Build Coastguard Worker    i32 1, label %if.end11
30*9880d681SAndroid Build Coastguard Worker  ]
31*9880d681SAndroid Build Coastguard Worker
32*9880d681SAndroid Build Coastguard Workercleanup.cont:                                     ; preds = %cleanup
33*9880d681SAndroid Build Coastguard Worker  br label %if.end11
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Workerif.end11:                                         ; preds = %cleanup.cont, %cleanup, %land.lhs.true, %entry
36*9880d681SAndroid Build Coastguard Worker  ret void
37*9880d681SAndroid Build Coastguard Worker
38*9880d681SAndroid Build Coastguard Workerdefault:                                          ; preds = %cleanup
39*9880d681SAndroid Build Coastguard Worker  br label %if.end11
40*9880d681SAndroid Build Coastguard Worker}
41