blob: 1e932ccd6dea35cdd3f0e78e5483b7234e38da60 [file] [log] [blame]
Aaron Watry50a7bcb2013-09-05 16:04:01 +00001define i32 @__clc_atomic_add_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
2entry:
3 %0 = atomicrmw volatile add i32 addrspace(1)* %ptr, i32 %value seq_cst
4 ret i32 %0
5}
6
7define i32 @__clc_atomic_add_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
8entry:
9 %0 = atomicrmw volatile add i32 addrspace(3)* %ptr, i32 %value seq_cst
10 ret i32 %0
11}
Aaron Watry283e3fa2013-09-06 20:20:21 +000012
Aaron Watrycc684052014-09-16 22:34:28 +000013define i32 @__clc_atomic_and_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
14entry:
15 %0 = atomicrmw volatile and i32 addrspace(1)* %ptr, i32 %value seq_cst
16 ret i32 %0
17}
18
19define i32 @__clc_atomic_and_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
20entry:
21 %0 = atomicrmw volatile and i32 addrspace(3)* %ptr, i32 %value seq_cst
22 ret i32 %0
23}
24
Aaron Watry49614fb2014-09-16 22:34:24 +000025define i32 @__clc_atomic_max_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
26entry:
27 %0 = atomicrmw volatile max i32 addrspace(1)* %ptr, i32 %value seq_cst
28 ret i32 %0
29}
30
31define i32 @__clc_atomic_max_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
32entry:
33 %0 = atomicrmw volatile max i32 addrspace(3)* %ptr, i32 %value seq_cst
34 ret i32 %0
35}
36
Aaron Watry31e67d12014-09-16 22:34:32 +000037define i32 @__clc_atomic_or_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
38entry:
39 %0 = atomicrmw volatile or i32 addrspace(1)* %ptr, i32 %value seq_cst
40 ret i32 %0
41}
42
43define i32 @__clc_atomic_or_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
44entry:
45 %0 = atomicrmw volatile or i32 addrspace(3)* %ptr, i32 %value seq_cst
46 ret i32 %0
47}
Aaron Watry49614fb2014-09-16 22:34:24 +000048define i32 @__clc_atomic_umax_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
49entry:
50 %0 = atomicrmw volatile umax i32 addrspace(1)* %ptr, i32 %value seq_cst
51 ret i32 %0
52}
53
54define i32 @__clc_atomic_umax_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
55entry:
56 %0 = atomicrmw volatile umax i32 addrspace(3)* %ptr, i32 %value seq_cst
57 ret i32 %0
58}
59
Aaron Watry283e3fa2013-09-06 20:20:21 +000060define i32 @__clc_atomic_sub_addr1(i32 addrspace(1)* nocapture %ptr, i32 %value) nounwind alwaysinline {
61entry:
62 %0 = atomicrmw volatile sub i32 addrspace(1)* %ptr, i32 %value seq_cst
63 ret i32 %0
64}
65
66define i32 @__clc_atomic_sub_addr3(i32 addrspace(3)* nocapture %ptr, i32 %value) nounwind alwaysinline {
67entry:
68 %0 = atomicrmw volatile sub i32 addrspace(3)* %ptr, i32 %value seq_cst
69 ret i32 %0
70}