brintos

brintos / llvm-project-archived public Read only

0
0
Text · 898 B · cbf30ae Raw
31 lines · plain
1; RUN: opt < %s -passes=argpromotion -S | FileCheck %s2 3; Store instructions are allowed users for byval arguments only.4define internal void @callee(ptr %arg) nounwind {5; CHECK-LABEL: define {{[^@]+}}@callee6; CHECK-SAME: (ptr [[ARG:%.*]]) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[TEMP:%.*]] = load i32, ptr [[ARG]], align 49; CHECK-NEXT:    [[SUM:%.*]] = add i32 [[TEMP]], 110; CHECK-NEXT:    store i32 [[SUM]], ptr [[ARG]], align 411; CHECK-NEXT:    ret void12;13entry:14  %temp = load i32, ptr %arg, align 415  %sum = add i32 %temp, 116  store i32 %sum, ptr %arg, align 417  ret void18}19 20define i32 @caller(ptr %arg) nounwind {21; CHECK-LABEL: define {{[^@]+}}@caller22; CHECK-SAME: (ptr [[ARG:%.*]]) #[[ATTR0]] {23; CHECK-NEXT:  entry:24; CHECK-NEXT:    call void @callee(ptr [[ARG]]) #[[ATTR0]]25; CHECK-NEXT:    ret i32 026;27entry:28  call void @callee(ptr %arg) nounwind29  ret i32 030}31