xref: /llvm-project/llvm/test/Transforms/InstCombine/X86/simplify-libcalls-memcmp.ll (revision dc2b66b8d6032dbc5e5dd7ee86e4fa7dd9cf0b9b)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -S < %s -passes=instcombine | FileCheck %s
3
4; This test requires a target with 'bcmp' in its library.
5; It used to crash/assert because the function signature does
6; not match the expected libcall signature for memcmp -
7; the last arg should have type size_t -> i64 for this target.
8
9target triple = "x86_64-unknown-linux-gnu"
10
11@str = private unnamed_addr constant [6 x i8] c"abcde\00", align 1
12
13declare i32 @memcmp(ptr, ptr, i32)
14
15define void @PR50850() {
16; CHECK-LABEL: @PR50850(
17; CHECK-NEXT:    [[CALL:%.*]] = call i32 @memcmp(ptr nonnull @PR50850, ptr nonnull @str, i32 6)
18; CHECK-NEXT:    ret void
19;
20  %call = call i32 @memcmp(ptr @PR50850, ptr @str, i32 6)
21  ret void
22}
23