xref: /aosp_15_r20/external/llvm/test/Transforms/BranchFolding/2007-10-19-InlineAsmDirectives.ll (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -O3 | llc -no-integrated-as | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker; REQUIRES: default_triple
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker;; We don't want branch folding to fold asm directives.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; CHECK: bork_directive
7*9880d681SAndroid Build Coastguard Worker; CHECK: bork_directive
8*9880d681SAndroid Build Coastguard Worker; CHECK-NOT: bork_directive
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Workerdefine void @bork(i32 %param) {
11*9880d681SAndroid Build Coastguard Workerentry:
12*9880d681SAndroid Build Coastguard Worker	%tmp = icmp eq i32 %param, 0
13*9880d681SAndroid Build Coastguard Worker        br i1 %tmp, label %cond_true, label %cond_false
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workercond_true:
16*9880d681SAndroid Build Coastguard Worker        call void asm sideeffect ".bork_directive /* ${0:c}:${1:c} */", "i,i,~{dirflag},~{fpsr},~{flags}"( i32 37, i32 927 )
17*9880d681SAndroid Build Coastguard Worker        ret void
18*9880d681SAndroid Build Coastguard Worker
19*9880d681SAndroid Build Coastguard Workercond_false:
20*9880d681SAndroid Build Coastguard Worker	call void asm sideeffect ".foo_directive ${0:c}:${1:c}", "i,i,~{dirflag},~{fpsr},~{flags}"( i32 37, i32 927 )
21*9880d681SAndroid Build Coastguard Worker        call void asm sideeffect ".bork_directive /* ${0:c}:${1:c} */", "i,i,~{dirflag},~{fpsr},~{flags}"( i32 37, i32 927 )
22*9880d681SAndroid Build Coastguard Worker        ret void
23*9880d681SAndroid Build Coastguard Worker}
24