Revert "[InstCombine] Support gep nuw in icmp folds" (#118698)
[llvm-project.git] / llvm / test / Transforms / InstCombine / musttail-thunk.ll
blob9e6e9086d451e51b07af7b2870ff34f101090234
1 ; RUN: opt -passes=instcombine -S < %s | FileCheck %s
2 ; RUN: opt -debugify-each -passes=instcombine -S < %s | FileCheck %s
4 ; These are both direct calls, but make sure instcombine leaves the casts
5 ; alone.
7 define i32 @call_thunk(i32 %x, i32 %y) {
8   %r = call i32 @inc_first_arg_thunk(i32 %x, i32 %y)
9   ret i32 %r
12 ; CHECK-LABEL: define i32 @call_thunk(i32 %x, i32 %y)
13 ; CHECK:   %r = call i32 @inc_first_arg_thunk(i32 %x, i32 %y)
14 ; CHECK:   ret i32 %r
16 define internal void @inc_first_arg_thunk(i32 %arg1, ...) #0 {
17 entry:
18   %inc = add i32 %arg1, 1
19   musttail call void (i32, ...) @plus(i32 %inc, ...)
20   ret void
23 ; CHECK-LABEL: define internal void @inc_first_arg_thunk(i32 %arg1, ...) #0
24 ; CHECK:   %inc = add i32 %arg1, 1
25 ; CHECK:   musttail call void (i32, ...) @plus(i32 %inc, ...)
26 ; CHECK:   ret void
28 define internal i32 @plus(i32 %x, i32 %y) {
29   %r = add i32 %x, %y
30   ret i32 %r
33 attributes #0 = { "thunk" }