Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(134)

Side by Side Diff: test/NaCl/PNaClABI/intrinsics.ll

Issue 17777004: Concurrency support for PNaCl ABI (Closed) Base URL: http://git.chromium.org/native_client/pnacl-llvm.git@master
Patch Set: Simplify overloading and function verification. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 ; RUN: pnacl-abicheck -pnaclabi-allow-dev-intrinsics=0 < %s | FileCheck %s 1 ; RUN: pnacl-abicheck -pnaclabi-allow-dev-intrinsics=0 < %s | FileCheck %s
2 ; RUN: pnacl-abicheck -pnaclabi-allow-dev-intrinsics=0 \ 2 ; RUN: pnacl-abicheck -pnaclabi-allow-dev-intrinsics=0 \
3 ; RUN: -pnaclabi-allow-debug-metadata < %s | FileCheck %s --check-prefix=DBG 3 ; RUN: -pnaclabi-allow-debug-metadata < %s | FileCheck %s --check-prefix=DBG
4 ; RUN: pnacl-abicheck -pnaclabi-allow-dev-intrinsics=1 < %s | \ 4 ; RUN: pnacl-abicheck -pnaclabi-allow-dev-intrinsics=1 < %s | \
5 ; RUN: FileCheck %s --check-prefix=DEV 5 ; RUN: FileCheck %s --check-prefix=DEV
6 6
7 ; Test that only white-listed intrinsics are allowed. 7 ; Test that only white-listed intrinsics are allowed.
8 8
9 ; =================================== 9 ; ===================================
10 ; Some disallowed "Dev" intrinsics. 10 ; Some disallowed "Dev" intrinsics.
11 ; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic 11 ; CHECK: Function llvm.dbg.value is a disallowed LLVM intrinsic
12 ; DBG-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic 12 ; DBG-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic
13 ; DEV-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic 13 ; DEV-NOT: Function llvm.dbg.value is a disallowed LLVM intrinsic
14 declare void @llvm.dbg.value(metadata, i64, metadata) 14 declare void @llvm.dbg.value(metadata, i64, metadata)
15 15
16 ; =================================== 16 ; ===================================
17 ; Always allowed intrinsics. 17 ; Always allowed intrinsics.
18 18
19 ; CHECK-NOT: Function llvm.memcpy.p0i8.p0i8.i32 is a disallowed LLVM intrinsic 19 ; CHECK-NOT: Function llvm.memcpy.p0i8.p0i8.i32 is a disallowed LLVM intrinsic
20 declare void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, 20 declare void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src,
21 i32 %len, i32 %align, i1 %isvolatile) 21 i32 %len, i32 %align, i1 %isvolatile)
22 ; CHECK-NOT: Function llvm.memcpy.p0i8.p0i8.i64 is a disallowed LLVM intrinsic 22 ; CHECK-NOT: Function llvm.memcpy.p0i8.p0i8.i64 is a disallowed LLVM intrinsic
23 declare void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, 23 declare void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src,
24 i64 %len, i32 %align, i1 %isvolatile) 24 i64 %len, i32 %align, i1 %isvolatile)
25 ; CHECK-NOT: Function llvm.nacl.read.tp is a disallowed LLVM intrinsic 25 ; CHECK-NOT: Function llvm.nacl.read.tp is a disallowed LLVM intrinsic
26 declare i8* @llvm.nacl.read.tp() 26 declare i8* @llvm.nacl.read.tp()
27 27
28 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.load.i8 is a disallowed LLVM intrinsic
Mark Seaborn 2013/07/02 19:16:02 These just become a single "CHECK-NOT: disallowed"
29 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.load.i16 is a disallowed LLVM intrinsic
30 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.load.i32 is a disallowed LLVM intrinsic
31 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.load.i64 is a disallowed LLVM intrinsic
32 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.store.i8 is a disallowed LLVM intrinsic
33 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.store.i16 is a disallowe d LLVM intrinsic
34 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.store.i32 is a disallowe d LLVM intrinsic
35 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.store.i64 is a disallowe d LLVM intrinsic
36 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.rmw.i8 is a disallowed L LVM intrinsic
37 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.rmw.i16 is a disallowed LLVM intrinsic
38 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.rmw.i32 is a disallowed LLVM intrinsic
39 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.rmw.i64 is a disallowed LLVM intrinsic
40 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.cmpxchg.i8 is a disallow ed LLVM intrinsic
41 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.cmpxchg.i16 is a disallo wed LLVM intrinsic
42 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.cmpxchg.i32 is a disallo wed LLVM intrinsic
43 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.cmpxchg.i64 is a disallo wed LLVM intrinsic
44 ; CHECK-NOT: Function llvm.nacl.atomic.llvm.nacl.atomic.fence is a disallowed LL VM intrinsic
45 declare i8 @llvm.nacl.atomic.load.i8(i8*, i32)
46 declare i16 @llvm.nacl.atomic.load.i16(i16*, i32)
47 declare i32 @llvm.nacl.atomic.load.i32(i32*, i32)
48 declare i64 @llvm.nacl.atomic.load.i64(i64*, i32)
Mark Seaborn 2013/07/02 19:16:02 I still disagree with allowing 64-bit atomics. Th
JF 2013/07/02 23:14:54 Without shared memory there is no issue, even on M
Mark Seaborn 2013/07/02 23:34:10 That's not the case, because the Javascript interf
JF 2013/07/02 23:50:57 I suggest you read the updated PNaClLangRef, it sh
49 declare void @llvm.nacl.atomic.store.i8(i8, i8*, i32)
50 declare void @llvm.nacl.atomic.store.i16(i16, i16*, i32)
51 declare void @llvm.nacl.atomic.store.i32(i32, i32*, i32)
52 declare void @llvm.nacl.atomic.store.i64(i64, i64*, i32)
53 declare i8 @llvm.nacl.atomic.rmw.i8(i32, i8*, i8, i32)
54 declare i16 @llvm.nacl.atomic.rmw.i16(i32, i16*, i16, i32)
55 declare i32 @llvm.nacl.atomic.rmw.i32(i32, i32*, i32, i32)
56 declare i64 @llvm.nacl.atomic.rmw.i64(i32, i64*, i64, i32)
57 declare i8 @llvm.nacl.atomic.cmpxchg.i8(i8*, i8, i8, i32, i32)
58 declare i16 @llvm.nacl.atomic.cmpxchg.i16(i16*, i16, i16, i32, i32)
59 declare i32 @llvm.nacl.atomic.cmpxchg.i32(i32*, i32, i32, i32, i32)
60 declare i64 @llvm.nacl.atomic.cmpxchg.i64(i64*, i64, i64, i32, i32)
61 declare void @llvm.nacl.atomic.fence(i32)
62
28 ; CHECK-NOT: Function llvm.bswap.i16 is a disallowed LLVM intrinsic 63 ; CHECK-NOT: Function llvm.bswap.i16 is a disallowed LLVM intrinsic
29 declare i16 @llvm.bswap.i16(i16) 64 declare i16 @llvm.bswap.i16(i16)
30 65
31 ; CHECK-NOT: Function llvm.bswap.i32 is a disallowed LLVM intrinsic 66 ; CHECK-NOT: Function llvm.bswap.i32 is a disallowed LLVM intrinsic
32 declare i32 @llvm.bswap.i32(i32) 67 declare i32 @llvm.bswap.i32(i32)
33 68
34 ; CHECK-NOT: Function llvm.bswap.i64 is a disallowed LLVM intrinsic 69 ; CHECK-NOT: Function llvm.bswap.i64 is a disallowed LLVM intrinsic
35 declare i64 @llvm.bswap.i64(i64) 70 declare i64 @llvm.bswap.i64(i64)
36 71
37 ; CHECK-NOT: Function llvm.cttz.i32 is a disallowed LLVM intrinsic 72 ; CHECK-NOT: Function llvm.cttz.i32 is a disallowed LLVM intrinsic
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 declare void @llvm.lifetime.start(i64, i8* nocapture) 132 declare void @llvm.lifetime.start(i64, i8* nocapture)
98 133
99 ; CHECK: Function llvm.lifetime.end is a disallowed LLVM intrinsic 134 ; CHECK: Function llvm.lifetime.end is a disallowed LLVM intrinsic
100 declare void @llvm.lifetime.end(i64, i8* nocapture) 135 declare void @llvm.lifetime.end(i64, i8* nocapture)
101 136
102 ; CHECK: Function llvm.frameaddress is a disallowed LLVM intrinsic 137 ; CHECK: Function llvm.frameaddress is a disallowed LLVM intrinsic
103 declare i8* @llvm.frameaddress(i32 %level) 138 declare i8* @llvm.frameaddress(i32 %level)
104 139
105 ; CHECK: Function llvm.returnaddress is a disallowed LLVM intrinsic 140 ; CHECK: Function llvm.returnaddress is a disallowed LLVM intrinsic
106 declare i8* @llvm.returnaddress(i32 %level) 141 declare i8* @llvm.returnaddress(i32 %level)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698