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

Side by Side Diff: test/Transforms/NaCl/resolve-pnacl-intrinsics.ll

Issue 1151093004: Changes from 3.7 merge to files not in upstream (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-llvm.git@master
Patch Set: Created 5 years, 7 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: opt < %s -resolve-pnacl-intrinsics -S | FileCheck %s \ 1 ; RUN: opt < %s -resolve-pnacl-intrinsics -S | FileCheck %s \
2 ; RUN: -check-prefix=CLEANED 2 ; RUN: -check-prefix=CLEANED
3 ; RUN: opt < %s -resolve-pnacl-intrinsics -S | FileCheck %s 3 ; RUN: opt < %s -resolve-pnacl-intrinsics -S | FileCheck %s
4 4
5 ; CLEANED-NOT: call i32 @llvm.nacl.setjmp 5 ; CLEANED-NOT: call i32 @llvm.nacl.setjmp
6 ; CLEANED-NOT: call void @llvm.nacl.longjmp 6 ; CLEANED-NOT: call void @llvm.nacl.longjmp
7 ; CLEANED-NOT: call {{.*}} @llvm.nacl.atomic 7 ; CLEANED-NOT: call {{.*}} @llvm.nacl.atomic
8 8
9 declare i32 @llvm.nacl.setjmp(i8*) 9 declare i32 @llvm.nacl.setjmp(i8*)
10 declare void @llvm.nacl.longjmp(i8*, i32) 10 declare void @llvm.nacl.longjmp(i8*, i32)
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 define void @call_longjmp(i8* %arg, i32 %num) { 48 define void @call_longjmp(i8* %arg, i32 %num) {
49 call void @llvm.nacl.longjmp(i8* %arg, i32 %num) 49 call void @llvm.nacl.longjmp(i8* %arg, i32 %num)
50 ; CHECK: call void @longjmp(i8* %arg, i32 %num){{$}} 50 ; CHECK: call void @longjmp(i8* %arg, i32 %num){{$}}
51 ret void 51 ret void
52 } 52 }
53 53
54 ; atomics. 54 ; atomics.
55 55
56 ; CHECK-LABEL: @test_atomic_acquire 56 ; CHECK-LABEL: @test_atomic_acquire
57 define i32 @test_atomic_acquire(i32* %ptr) { 57 define i32 @test_atomic_acquire(i32* %ptr) {
58 ; CHECK: %1 = load atomic i32* %ptr acquire, align 4 58 ; CHECK: %1 = load atomic i32, i32* %ptr acquire, align 4
59 %1 = call i32 @llvm.nacl.atomic.load.i32(i32* %ptr, i32 3) 59 %1 = call i32 @llvm.nacl.atomic.load.i32(i32* %ptr, i32 3)
60 ret i32 %1 60 ret i32 %1
61 } 61 }
62 62
63 ; CHECK-LABEL: @test_atomic_release 63 ; CHECK-LABEL: @test_atomic_release
64 define void @test_atomic_release(i32* %ptr, i32 %value) { 64 define void @test_atomic_release(i32* %ptr, i32 %value) {
65 ; CHECK: store atomic i32 %value, i32* %ptr release, align 4 65 ; CHECK: store atomic i32 %value, i32* %ptr release, align 4
66 call void @llvm.nacl.atomic.store.i32(i32 %value, i32* %ptr, i32 4) 66 call void @llvm.nacl.atomic.store.i32(i32 %value, i32* %ptr, i32 4)
67 ret void 67 ret void
68 } 68 }
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 ; CHECK-LABEL: @test_lock_release_i32 229 ; CHECK-LABEL: @test_lock_release_i32
230 define void @test_lock_release_i32(i32* %ptr) { 230 define void @test_lock_release_i32(i32* %ptr) {
231 ; Note that the 'release' was changed to a 'seq_cst'. 231 ; Note that the 'release' was changed to a 'seq_cst'.
232 ; CHECK: store atomic i32 0, i32* %ptr seq_cst, align 4 232 ; CHECK: store atomic i32 0, i32* %ptr seq_cst, align 4
233 call void @llvm.nacl.atomic.store.i32(i32 0, i32* %ptr, i32 6) 233 call void @llvm.nacl.atomic.store.i32(i32 0, i32* %ptr, i32 6)
234 ret void 234 ret void
235 } 235 }
236 236
237 ; CHECK-LABEL: @test_atomic_load_i8 237 ; CHECK-LABEL: @test_atomic_load_i8
238 define zeroext i8 @test_atomic_load_i8(i8* %ptr) { 238 define zeroext i8 @test_atomic_load_i8(i8* %ptr) {
239 ; CHECK: %1 = load atomic i8* %ptr seq_cst, align 1 239 ; CHECK: %1 = load atomic i8, i8* %ptr seq_cst, align 1
240 %1 = call i8 @llvm.nacl.atomic.load.i8(i8* %ptr, i32 6) 240 %1 = call i8 @llvm.nacl.atomic.load.i8(i8* %ptr, i32 6)
241 ret i8 %1 241 ret i8 %1
242 } 242 }
243 243
244 ; CHECK-LABEL: @test_atomic_store_i8 244 ; CHECK-LABEL: @test_atomic_store_i8
245 define void @test_atomic_store_i8(i8* %ptr, i8 zeroext %value) { 245 define void @test_atomic_store_i8(i8* %ptr, i8 zeroext %value) {
246 ; CHECK: store atomic i8 %value, i8* %ptr seq_cst, align 1 246 ; CHECK: store atomic i8 %value, i8* %ptr seq_cst, align 1
247 call void @llvm.nacl.atomic.store.i8(i8 %value, i8* %ptr, i32 6) 247 call void @llvm.nacl.atomic.store.i8(i8 %value, i8* %ptr, i32 6)
248 ret void 248 ret void
249 } 249 }
250 250
251 ; CHECK-LABEL: @test_atomic_load_i16 251 ; CHECK-LABEL: @test_atomic_load_i16
252 define zeroext i16 @test_atomic_load_i16(i16* %ptr) { 252 define zeroext i16 @test_atomic_load_i16(i16* %ptr) {
253 ; CHECK: %1 = load atomic i16* %ptr seq_cst, align 2 253 ; CHECK: %1 = load atomic i16, i16* %ptr seq_cst, align 2
254 %1 = call i16 @llvm.nacl.atomic.load.i16(i16* %ptr, i32 6) 254 %1 = call i16 @llvm.nacl.atomic.load.i16(i16* %ptr, i32 6)
255 ret i16 %1 255 ret i16 %1
256 } 256 }
257 257
258 ; CHECK-LABEL: @test_atomic_store_i16 258 ; CHECK-LABEL: @test_atomic_store_i16
259 define void @test_atomic_store_i16(i16* %ptr, i16 zeroext %value) { 259 define void @test_atomic_store_i16(i16* %ptr, i16 zeroext %value) {
260 ; CHECK: store atomic i16 %value, i16* %ptr seq_cst, align 2 260 ; CHECK: store atomic i16 %value, i16* %ptr seq_cst, align 2
261 call void @llvm.nacl.atomic.store.i16(i16 %value, i16* %ptr, i32 6) 261 call void @llvm.nacl.atomic.store.i16(i16 %value, i16* %ptr, i32 6)
262 ret void 262 ret void
263 } 263 }
264 264
265 ; CHECK-LABEL: @test_atomic_load_i32 265 ; CHECK-LABEL: @test_atomic_load_i32
266 define i32 @test_atomic_load_i32(i32* %ptr) { 266 define i32 @test_atomic_load_i32(i32* %ptr) {
267 ; CHECK: %1 = load atomic i32* %ptr seq_cst, align 4 267 ; CHECK: %1 = load atomic i32, i32* %ptr seq_cst, align 4
268 %1 = call i32 @llvm.nacl.atomic.load.i32(i32* %ptr, i32 6) 268 %1 = call i32 @llvm.nacl.atomic.load.i32(i32* %ptr, i32 6)
269 ret i32 %1 269 ret i32 %1
270 } 270 }
271 271
272 ; CHECK-LABEL: @test_atomic_store_i32 272 ; CHECK-LABEL: @test_atomic_store_i32
273 define void @test_atomic_store_i32(i32* %ptr, i32 %value) { 273 define void @test_atomic_store_i32(i32* %ptr, i32 %value) {
274 ; CHECK: store atomic i32 %value, i32* %ptr seq_cst, align 4 274 ; CHECK: store atomic i32 %value, i32* %ptr seq_cst, align 4
275 call void @llvm.nacl.atomic.store.i32(i32 %value, i32* %ptr, i32 6) 275 call void @llvm.nacl.atomic.store.i32(i32 %value, i32* %ptr, i32 6)
276 ret void 276 ret void
277 } 277 }
278 278
279 ; CHECK-LABEL: @test_atomic_load_i64 279 ; CHECK-LABEL: @test_atomic_load_i64
280 define i64 @test_atomic_load_i64(i64* %ptr) { 280 define i64 @test_atomic_load_i64(i64* %ptr) {
281 ; CHECK: %1 = load atomic i64* %ptr seq_cst, align 8 281 ; CHECK: %1 = load atomic i64, i64* %ptr seq_cst, align 8
282 %1 = call i64 @llvm.nacl.atomic.load.i64(i64* %ptr, i32 6) 282 %1 = call i64 @llvm.nacl.atomic.load.i64(i64* %ptr, i32 6)
283 ret i64 %1 283 ret i64 %1
284 } 284 }
285 285
286 ; CHECK-LABEL: @test_atomic_store_i64 286 ; CHECK-LABEL: @test_atomic_store_i64
287 define void @test_atomic_store_i64(i64* %ptr, i64 %value) { 287 define void @test_atomic_store_i64(i64* %ptr, i64 %value) {
288 ; CHECK: store atomic i64 %value, i64* %ptr seq_cst, align 8 288 ; CHECK: store atomic i64 %value, i64* %ptr seq_cst, align 8
289 call void @llvm.nacl.atomic.store.i64(i64 %value, i64* %ptr, i32 6) 289 call void @llvm.nacl.atomic.store.i64(i64 %value, i64* %ptr, i32 6)
290 ret void 290 ret void
291 } 291 }
292 292
293 ; CHECK: attributes [[RETURNS_TWICE]] = { returns_twice } 293 ; CHECK: attributes [[RETURNS_TWICE]] = { returns_twice }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698