1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature --scrub-attributes 2; RUN: opt -S -passes='attributor' -aa-pipeline='basic-aa' -attributor-disable=false -attributor-max-iterations-verify -attributor-max-iterations=3 < %s | FileCheck %s 3 4define void @f() { 5; CHECK-LABEL: define {{[^@]+}}@f() 6; CHECK-NEXT: entry: 7; CHECK-NEXT: [[A:%.*]] = alloca i32, align 1 8; CHECK-NEXT: [[TMP0:%.*]] = load i32, i32* [[A]], align 1 9; CHECK-NEXT: call void @g(i32 [[TMP0]]) 10; CHECK-NEXT: ret void 11; 12entry: 13 %a = alloca i32, align 1 14 call void @g(i32* %a) 15 ret void 16} 17 18define internal void @g(i32* %a) { 19; CHECK-LABEL: define {{[^@]+}}@g 20; CHECK-SAME: (i32 [[TMP0:%.*]]) 21; CHECK-NEXT: [[A_PRIV:%.*]] = alloca i32 22; CHECK-NEXT: store i32 [[TMP0]], i32* [[A_PRIV]] 23; CHECK-NEXT: [[AA:%.*]] = load i32, i32* [[A_PRIV]], align 1 24; CHECK-NEXT: call void @z(i32 [[AA]]) 25; CHECK-NEXT: ret void 26; 27 %aa = load i32, i32* %a, align 1 28 call void @z(i32 %aa) 29 ret void 30} 31 32declare void @z(i32) 33