xref: /llvm-project/llvm/test/Transforms/InstCombine/call-callconv-mismatch.ll (revision 4ab40eca080965c65802710e39adbb78c4ce7bde)
1c5fda0e6SYuanfang Chen; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2acdc419cSBjorn Pettersson; RUN: opt < %s -passes=instcombine -S | FileCheck %s
3c5fda0e6SYuanfang Chen; Verify that a cdecl-compatible calling convention does not trigger emitting
4*4ab40ecaSBjorn Pettersson; unreachable idom `store i1 true, ptr undef`.
5c5fda0e6SYuanfang Chen
6*4ab40ecaSBjorn Petterssondefine arm_aapcs_vfpcc i8 @bar(ptr %0) {
7c5fda0e6SYuanfang Chen; CHECK-LABEL: @bar(
8*4ab40ecaSBjorn Pettersson; CHECK-NEXT:    [[TMP2:%.*]] = load i8, ptr [[TMP0:%.*]], align 1
9c5fda0e6SYuanfang Chen; CHECK-NEXT:    ret i8 [[TMP2]]
10c5fda0e6SYuanfang Chen;
11*4ab40ecaSBjorn Pettersson  %2 = load i8, ptr %0, align 1
12c5fda0e6SYuanfang Chen  ret i8 %2
13c5fda0e6SYuanfang Chen}
14c5fda0e6SYuanfang Chen
15*4ab40ecaSBjorn Petterssondefine dso_local arm_aapcs_vfpcc i8 @foo(ptr %0) {
16c5fda0e6SYuanfang Chen; CHECK-LABEL: @foo(
17*4ab40ecaSBjorn Pettersson; CHECK-NEXT:    [[TMP2:%.*]] = call i8 @bar(ptr [[TMP0:%.*]])
18c5fda0e6SYuanfang Chen; CHECK-NEXT:    ret i8 [[TMP2]]
19c5fda0e6SYuanfang Chen;
20*4ab40ecaSBjorn Pettersson  %2 = call i8 @bar(ptr %0)
21c5fda0e6SYuanfang Chen  ret i8 %2
22c5fda0e6SYuanfang Chen}
23