| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature | |
| ; RUN: opt -passes=deadargelim -S < %s | FileCheck %s | |
| define internal i32 @optnone_dead_arg(i32 %live, i32 %dead) optnone noinline { | |
| ; CHECK-LABEL: define {{[^@]+}}@optnone_dead_arg | |
| ; CHECK-SAME: (i32 [[LIVE:%.*]], i32 [[DEAD:%.*]]) #[[ATTR0:[0-9]+]] { | |
| ; CHECK-NEXT: ret i32 [[LIVE]] | |
| ; | |
| ret i32 %live | |
| } | |
| define internal i32 @dead_arg(i32 %live, i32 %dead) { | |
| ; CHECK-LABEL: define {{[^@]+}}@dead_arg | |
| ; CHECK-SAME: (i32 [[LIVE:%.*]]) { | |
| ; CHECK-NEXT: ret i32 [[LIVE]] | |
| ; | |
| ret i32 %live | |
| } | |
| define i32 @caller() { | |
| ; CHECK-LABEL: define {{[^@]+}}@caller() { | |
| ; CHECK-NEXT: [[A:%.*]] = call i32 @optnone_dead_arg(i32 1, i32 2) | |
| ; CHECK-NEXT: [[B:%.*]] = call i32 @dead_arg(i32 3) | |
| ; CHECK-NEXT: [[C:%.*]] = add i32 [[A]], [[B]] | |
| ; CHECK-NEXT: ret i32 [[C]] | |
| ; | |
| %a = call i32 @optnone_dead_arg(i32 1, i32 2) | |
| %b = call i32 @dead_arg(i32 3, i32 4) | |
| %c = add i32 %a, %b | |
| ret i32 %c | |
| } |