xref: /llvm-project/llvm/test/Transforms/MergeFunc/constexpr.ll (revision deab451e7a7f2dff42097049274637052c87eabd)
11ff9fb78SNikita Popov; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --version 4
21ff9fb78SNikita Popov; RUN: opt -S -passes=mergefunc -mergefunc-use-aliases < %s | FileCheck %s
31ff9fb78SNikita Popov
41ff9fb78SNikita Popov@g1 = external unnamed_addr global i8
51ff9fb78SNikita Popov@g2 = external unnamed_addr global i8
61ff9fb78SNikita Popov
71ff9fb78SNikita Popov;.
81ff9fb78SNikita Popov; CHECK: @g1 = external unnamed_addr global i8
91ff9fb78SNikita Popov; CHECK: @g2 = external unnamed_addr global i8
101ff9fb78SNikita Popov;.
111ff9fb78SNikita Popovdefine ptr @f3() unnamed_addr {
121ff9fb78SNikita Popov; CHECK-LABEL: define ptr @f3() unnamed_addr {
13836e71a4SNikita Popov; CHECK-NEXT:    ret ptr getelementptr inbounds (i8, ptr @g1, i64 2)
141ff9fb78SNikita Popov;
15836e71a4SNikita Popov  ret ptr getelementptr inbounds (i8, ptr @g1, i64 2)
161ff9fb78SNikita Popov}
171ff9fb78SNikita Popov
181ff9fb78SNikita Popovdefine ptr @f4() unnamed_addr {
198b8f2ef0SNikita Popov; CHECK-LABEL: define ptr @f4() unnamed_addr {
208b8f2ef0SNikita Popov; CHECK-NEXT:    ret ptr getelementptr (i16, ptr @g1, i64 2)
218b8f2ef0SNikita Popov;
22836e71a4SNikita Popov  ret ptr getelementptr (i16, ptr @g1, i64 2)
231ff9fb78SNikita Popov}
241ff9fb78SNikita Popov
251ff9fb78SNikita Popovdefine ptr @f5() unnamed_addr {
268b8f2ef0SNikita Popov; CHECK-LABEL: define ptr @f5() unnamed_addr {
278b8f2ef0SNikita Popov; CHECK-NEXT:    ret ptr getelementptr (i8, ptr @g1, i64 2)
288b8f2ef0SNikita Popov;
29836e71a4SNikita Popov  ret ptr getelementptr (i8, ptr @g1, i64 2)
301ff9fb78SNikita Popov}
311ff9fb78SNikita Popov
321ff9fb78SNikita Popovdefine i64 @f6() unnamed_addr {
331ff9fb78SNikita Popov; CHECK-LABEL: define i64 @f6() unnamed_addr {
341ff9fb78SNikita Popov; CHECK-NEXT:    ret i64 add nuw (i64 ptrtoint (ptr @g1 to i64), i64 1)
351ff9fb78SNikita Popov;
361ff9fb78SNikita Popov  ret i64 add nuw (i64 ptrtoint (ptr @g1 to i64), i64 1)
371ff9fb78SNikita Popov}
381ff9fb78SNikita Popov
391ff9fb78SNikita Popovdefine i64 @f7() unnamed_addr {
408b8f2ef0SNikita Popov; CHECK-LABEL: define i64 @f7() unnamed_addr {
418b8f2ef0SNikita Popov; CHECK-NEXT:    ret i64 add (i64 ptrtoint (ptr @g1 to i64), i64 1)
428b8f2ef0SNikita Popov;
431ff9fb78SNikita Popov  ret i64 add (i64 ptrtoint (ptr @g1 to i64), i64 1)
441ff9fb78SNikita Popov}
453dd2db08SNikita Popov
463dd2db08SNikita Popovdefine i64 @f8() unnamed_addr {
478b8f2ef0SNikita Popov; CHECK-LABEL: define i64 @f8() unnamed_addr {
488b8f2ef0SNikita Popov; CHECK-NEXT:    ret i64 sub (i64 ptrtoint (ptr @g1 to i64), i64 1)
498b8f2ef0SNikita Popov;
503dd2db08SNikita Popov  ret i64 sub (i64 ptrtoint (ptr @g1 to i64), i64 1)
513dd2db08SNikita Popov}
528b8f2ef0SNikita Popov
538b8f2ef0SNikita Popovdefine ptr @f10() unnamed_addr {
548b8f2ef0SNikita Popov; CHECK-LABEL: define ptr @f10() unnamed_addr {
55*0f46e31cSNikita Popov; CHECK-NEXT:    ret ptr getelementptr inrange(0, 4) ([4 x i32], ptr @g1, i64 0, i64 1)
568b8f2ef0SNikita Popov;
57*0f46e31cSNikita Popov  ret ptr getelementptr inrange(0, 4) ([4 x i32], ptr @g1, i64 0, i64 1)
588b8f2ef0SNikita Popov}
598b8f2ef0SNikita Popov
608b8f2ef0SNikita Popovdefine ptr @f11() unnamed_addr {
618b8f2ef0SNikita Popov; CHECK-LABEL: define ptr @f11() unnamed_addr {
628b8f2ef0SNikita Popov; CHECK-NEXT:    ret ptr getelementptr ([4 x i32], ptr @g1, i64 0, i64 1)
638b8f2ef0SNikita Popov;
648b8f2ef0SNikita Popov  ret ptr getelementptr ([4 x i32], ptr @g1, i64 0, i64 1)
658b8f2ef0SNikita Popov}
668b8f2ef0SNikita Popov
678b8f2ef0SNikita Popovdefine ptr @f12() unnamed_addr {
688b8f2ef0SNikita Popov; CHECK-LABEL: define ptr @f12() unnamed_addr {
69*0f46e31cSNikita Popov; CHECK-NEXT:    ret ptr getelementptr inrange(-4, 12) ([4 x i32], ptr @g1, i64 0, i64 1)
708b8f2ef0SNikita Popov;
71*0f46e31cSNikita Popov  ret ptr getelementptr inrange(-4, 12) ([4 x i32], ptr @g1, i64 0, i64 1)
728b8f2ef0SNikita Popov}
73