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