xref: /llvm-project/llvm/test/Transforms/MergeFunc/constexpr.ll (revision deab451e7a7f2dff42097049274637052c87eabd)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 4
2; RUN: opt -S -passes=mergefunc -mergefunc-use-aliases < %s | FileCheck %s
3
4@g1 = external unnamed_addr global i8
5@g2 = external unnamed_addr global i8
6
7;.
8; CHECK: @g1 = external unnamed_addr global i8
9; CHECK: @g2 = external unnamed_addr global i8
10;.
11define ptr @f3() unnamed_addr {
12; CHECK-LABEL: define ptr @f3() unnamed_addr {
13; CHECK-NEXT:    ret ptr getelementptr inbounds (i8, ptr @g1, i64 2)
14;
15  ret ptr getelementptr inbounds (i8, ptr @g1, i64 2)
16}
17
18define ptr @f4() unnamed_addr {
19; CHECK-LABEL: define ptr @f4() unnamed_addr {
20; CHECK-NEXT:    ret ptr getelementptr (i16, ptr @g1, i64 2)
21;
22  ret ptr getelementptr (i16, ptr @g1, i64 2)
23}
24
25define ptr @f5() unnamed_addr {
26; CHECK-LABEL: define ptr @f5() unnamed_addr {
27; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g1, i64 2)
28;
29  ret ptr getelementptr (i8, ptr @g1, i64 2)
30}
31
32define i64 @f6() unnamed_addr {
33; CHECK-LABEL: define i64 @f6() unnamed_addr {
34; CHECK-NEXT:    ret i64 add nuw (i64 ptrtoint (ptr @g1 to i64), i64 1)
35;
36  ret i64 add nuw (i64 ptrtoint (ptr @g1 to i64), i64 1)
37}
38
39define i64 @f7() unnamed_addr {
40; CHECK-LABEL: define i64 @f7() unnamed_addr {
41; CHECK-NEXT:    ret i64 add (i64 ptrtoint (ptr @g1 to i64), i64 1)
42;
43  ret i64 add (i64 ptrtoint (ptr @g1 to i64), i64 1)
44}
45
46define i64 @f8() unnamed_addr {
47; CHECK-LABEL: define i64 @f8() unnamed_addr {
48; CHECK-NEXT:    ret i64 sub (i64 ptrtoint (ptr @g1 to i64), i64 1)
49;
50  ret i64 sub (i64 ptrtoint (ptr @g1 to i64), i64 1)
51}
52
53define ptr @f10() unnamed_addr {
54; CHECK-LABEL: define ptr @f10() unnamed_addr {
55; CHECK-NEXT:    ret ptr getelementptr inrange(0, 4) ([4 x i32], ptr @g1, i64 0, i64 1)
56;
57  ret ptr getelementptr inrange(0, 4) ([4 x i32], ptr @g1, i64 0, i64 1)
58}
59
60define ptr @f11() unnamed_addr {
61; CHECK-LABEL: define ptr @f11() unnamed_addr {
62; CHECK-NEXT:    ret ptr getelementptr ([4 x i32], ptr @g1, i64 0, i64 1)
63;
64  ret ptr getelementptr ([4 x i32], ptr @g1, i64 0, i64 1)
65}
66
67define ptr @f12() unnamed_addr {
68; CHECK-LABEL: define ptr @f12() unnamed_addr {
69; CHECK-NEXT:    ret ptr getelementptr inrange(-4, 12) ([4 x i32], ptr @g1, i64 0, i64 1)
70;
71  ret ptr getelementptr inrange(-4, 12) ([4 x i32], ptr @g1, i64 0, i64 1)
72}
73