llvm-project/llvm/test/Analysis/ConstantFolding/func-and-folding.ll

28 lines
757 B
LLVM

; RUN: opt < %s -constprop -S -o - | FileCheck %s
; Function Attrs: minsize norecurse nounwind optsize readnone
define void @foo1() #0 {
entry:
ret void
}
; Function Attrs: minsize norecurse nounwind optsize readnone
define void @foo2() align 4 {
entry:
ret void
}
; Function Attrs: minsize nounwind optsize
define i32 @main() local_unnamed_addr #1 {
entry:
; CHECK: ptrtoint
%call = tail call i32 bitcast (i32 (...)* @process to i32 (i32)*)(i32 and (i32 ptrtoint (void ()* @foo1 to i32), i32 2)) #3
; CHECK-NEXT: ptrtoint
%call2 = tail call i32 bitcast (i32 (...)* @process to i32 (i32)*)(i32 and (i32 ptrtoint (void ()* @foo2 to i32), i32 2)) #3
ret i32 0
}
; Function Attrs: minsize optsize
declare i32 @process(...) local_unnamed_addr #2