blob: b26955728d18132118194d63498bc7a0ecff6bf2 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llubi_test_checks.py UTC_ARGS: --version 6
; RUN: llubi --verbose < %s 2>&1 | FileCheck %s
define void @write(ptr byval(i32) %p) {
store i32 1, ptr %p
ret void
}
define void @write_callsite_align(ptr byval(i32) %p) {
store i32 2, ptr %p
ret void
}
define void @write_underalign(ptr byval(i32) align 1 %p) {
store i32 3, ptr %p, align 1
ret void
}
define void @main() {
%var = alloca i32
store i32 0, ptr %var
call void @write(ptr byval(i32) %var)
%v1 = load i32, ptr %var
call void @write_callsite_align(ptr byval(i32) align 8 %var)
%v2 = load i32, ptr %var
call void @write_underalign(ptr byval(i32) %var)
%v3 = load i32, ptr %var
ret void
}
; CHECK: Entering function: main
; CHECK-NEXT: %var = alloca i32, align 4 => ptr 0x8 [var]
; CHECK-NEXT: store i32 0, ptr %var, align 4
; CHECK-NEXT: Entering function: write
; CHECK-NEXT: ptr %p = ptr 0x10 [p]
; CHECK-NEXT: store i32 1, ptr %p, align 4
; CHECK-NEXT: ret void
; CHECK-NEXT: Exiting function: write
; CHECK-NEXT: call void @write(ptr byval(i32) %var)
; CHECK-NEXT: %v1 = load i32, ptr %var, align 4 => i32 0
; CHECK-NEXT: Entering function: write_callsite_align
; CHECK-NEXT: ptr %p = ptr 0x18 [p]
; CHECK-NEXT: store i32 2, ptr %p, align 4
; CHECK-NEXT: ret void
; CHECK-NEXT: Exiting function: write_callsite_align
; CHECK-NEXT: call void @write_callsite_align(ptr byval(i32) align 8 %var)
; CHECK-NEXT: %v2 = load i32, ptr %var, align 4 => i32 0
; CHECK-NEXT: Entering function: write_underalign
; CHECK-NEXT: ptr %p = ptr 0x1D [p]
; CHECK-NEXT: store i32 3, ptr %p, align 1
; CHECK-NEXT: ret void
; CHECK-NEXT: Exiting function: write_underalign
; CHECK-NEXT: call void @write_underalign(ptr byval(i32) %var)
; CHECK-NEXT: %v3 = load i32, ptr %var, align 4 => i32 0
; CHECK-NEXT: ret void
; CHECK-NEXT: Exiting function: main