brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · 2850004 Raw
97 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --function-signature2; RUN: llvm-as < %s | llvm-dis | FileCheck %s3; RUN: opt < %s -S | FileCheck %s4; RUN: verify-uselistorder < %s5 6%ty = type ptr7 8; CHECK: @g = external global i169@g = external global i1610 11; CHECK: @llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr null, ptr null }]12@llvm.global_ctors = appending global [1 x { i32, ptr, ptr }] [{ i32, ptr, ptr } { i32 1, ptr null, ptr null }]13 14; CHECK: @ga = alias i18, ptr @g215@g2 = global i18 016@ga = alias i18, ptr @g217 18; CHECK: @ga2 = alias i19, ptr @g219@ga2 = alias i19, ptr @g220 21; CHECK: @gi = ifunc i20 (), ptr @resolver22@gi = ifunc i20 (), ptr @resolver23 24 25define ptr @resolver() {26  %load = load i32, ptr @g.fwd27  %ptr = inttoptr i32 %load to ptr28  ret ptr %ptr29}30 31define void @f(ptr %p) {32; CHECK-LABEL: define {{[^@]+}}@f33; CHECK-SAME: (ptr [[P:%.*]]) {34; CHECK-NEXT:    [[A:%.*]] = alloca i17, align 435; CHECK-NEXT:    call void @fn.fwd(i32 0)36; CHECK-NEXT:    store i32 0, ptr @g.fwd, align 437; CHECK-NEXT:    ret void38;39  %a = alloca i1740  call void @fn.fwd(i32 0)41  store i32 0, ptr @g.fwd42  ret void43}44 45@g.fwd = global i32 046declare void @fn.fwd(i32)47 48define void @f2(ptr %p) {49; CHECK-LABEL: define {{[^@]+}}@f250; CHECK-SAME: (ptr [[P:%.*]]) {51; CHECK-NEXT:    unreachable52;53  unreachable54}55 56define void @f3(ptr addrspace(2) %p) {57; CHECK-LABEL: define {{[^@]+}}@f358; CHECK-SAME: (ptr addrspace(2) [[P:%.*]]) {59; CHECK-NEXT:    unreachable60;61  unreachable62}63 64define void @f4(ptr %p) {65; CHECK-LABEL: define {{[^@]+}}@f466; CHECK-SAME: (ptr [[P:%.*]]) {67; CHECK-NEXT:    unreachable68;69  unreachable70}71 72define void @remangle_intrinsic() {73; CHECK-LABEL: define {{[^@]+}}@remangle_intrinsic() {74; CHECK-NEXT:    [[A:%.*]] = alloca ptr, align 875; CHECK-NEXT:    [[TMP1:%.*]] = call ptr @llvm.stacksave.p0()76; CHECK-NEXT:    call void @llvm.stackprotector(ptr null, ptr [[A]])77; CHECK-NEXT:    [[TMP2:%.*]] = call <2 x i64> @llvm.masked.expandload.v2i64(ptr null, <2 x i1> zeroinitializer, <2 x i64> zeroinitializer)78; CHECK-NEXT:    ret void79;80  %a = alloca ptr81  call ptr @llvm.stacksave()82  call void @llvm.stackprotector(ptr null, ptr %a)83  call <2 x i64> @llvm.masked.expandload.v2i64(ptr null, <2 x i1> zeroinitializer, <2 x i64> zeroinitializer)84  ret void85}86 87define ptr @constexpr_gep() {88; CHECK-LABEL: define {{[^@]+}}@constexpr_gep() {89; CHECK-NEXT:    ret ptr getelementptr (i32, ptr getelementptr (i8, ptr null, i64 4), i64 1)90;91  ret ptr getelementptr(i32, ptr getelementptr (i8, ptr null, i64 4), i64 1)92}93 94declare ptr @llvm.stacksave()95declare void @llvm.stackprotector(ptr, ptr)96declare <2 x i64> @llvm.masked.expandload.v2i64(ptr, <2 x i1>, <2 x i64>)97