To avoid the dependence on the SystemZ target. What is relevant here is a data layout with preferred alignment for i8.
18 lines
547 B
LLVM
18 lines
547 B
LLVM
; RUN: opt < %s --passes=instcombine -S | FileCheck %s
|
|
;
|
|
; Check that string replacements inserted by the instcombiner are properly aligned.
|
|
; The specific case checked replaces `printf("foo\n")` with `puts("foo")`
|
|
|
|
target datalayout = "i8:8:16"
|
|
|
|
@msg1 = constant [17 x i8] c"Alignment Check\0A\00", align 2
|
|
; CHECK: c"Alignment Check\00", align 2
|
|
|
|
; Function Attrs: noinline nounwind
|
|
define dso_local void @foo() #0 {
|
|
%call = call signext i32 (ptr, ...) @printf(ptr noundef @msg1)
|
|
ret void
|
|
}
|
|
|
|
declare signext i32 @printf(ptr noundef, ...) #1
|