comparison test/Assembler/auto_upgrade_intrinsics.ll @ 120:1172e4bd9c6f

update 4.0.0
author mir3636
date Fri, 25 Nov 2016 19:14:25 +0900
parents afa8332a0e37
children 803732b1fca8
comparison
equal deleted inserted replaced
101:34baf5011add 120:1172e4bd9c6f
52 @a = private global [60 x i8] zeroinitializer, align 1 52 @a = private global [60 x i8] zeroinitializer, align 1
53 53
54 define i32 @test.objectsize() { 54 define i32 @test.objectsize() {
55 ; CHECK-LABEL: @test.objectsize( 55 ; CHECK-LABEL: @test.objectsize(
56 ; CHECK: @llvm.objectsize.i32.p0i8 56 ; CHECK: @llvm.objectsize.i32.p0i8
57 ; CHECK-DAG: declare i32 @llvm.objectsize.i32.p0i8
58 %s = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false) 57 %s = call i32 @llvm.objectsize.i32(i8* getelementptr inbounds ([60 x i8], [60 x i8]* @a, i32 0, i32 0), i1 false)
59 ret i32 %s 58 ret i32 %s
60 } 59 }
60
61 declare <2 x double> @llvm.masked.load.v2f64(<2 x double>* %ptrs, i32, <2 x i1> %mask, <2 x double> %src0)
62
63 define <2 x double> @tests.masked.load(<2 x double>* %ptr, <2 x i1> %mask, <2 x double> %passthru) {
64 ; CHECK-LABEL: @tests.masked.load(
65 ; CHECK: @llvm.masked.load.v2f64.p0v2f64
66 %res = call <2 x double> @llvm.masked.load.v2f64(<2 x double>* %ptr, i32 1, <2 x i1> %mask, <2 x double> %passthru)
67 ret <2 x double> %res
68 }
69
70 declare void @llvm.masked.store.v2f64(<2 x double> %val, <2 x double>* %ptrs, i32, <2 x i1> %mask)
71
72 define void @tests.masked.store(<2 x double>* %ptr, <2 x i1> %mask, <2 x double> %val) {
73 ; CHECK-LABEL: @tests.masked.store(
74 ; CHECK: @llvm.masked.store.v2f64.p0v2f64
75 call void @llvm.masked.store.v2f64(<2 x double> %val, <2 x double>* %ptr, i32 3, <2 x i1> %mask)
76 ret void
77 }
78
79
80 declare {}* @llvm.invariant.start(i64, i8* nocapture) nounwind readonly
81 declare void @llvm.invariant.end({}*, i64, i8* nocapture) nounwind
82
83 define void @tests.invariant.start.end() {
84 ; CHECK-LABEL: @tests.invariant.start.end(
85 %a = alloca i8
86 %i = call {}* @llvm.invariant.start(i64 1, i8* %a)
87 ; CHECK: call {}* @llvm.invariant.start.p0i8
88 store i8 0, i8* %a
89 call void @llvm.invariant.end({}* %i, i64 1, i8* %a)
90 ; CHECK: call void @llvm.invariant.end.p0i8
91 ret void
92 }
93
94 @__stack_chk_guard = external global i8*
95 declare void @llvm.stackprotectorcheck(i8**)
96
97 define void @test.stackprotectorcheck() {
98 ; CHECK-LABEL: @test.stackprotectorcheck(
99 ; CHECK-NEXT: ret void
100 call void @llvm.stackprotectorcheck(i8** @__stack_chk_guard)
101 ret void
102 }
103
104 ; This is part of @test.objectsize(), since llvm.objectsize declaration gets
105 ; emitted at the end.
106 ; CHECK: declare i32 @llvm.objectsize.i32.p0i8