20 lines · plain
1;; OpenCL C source:2;; #pragma OPENCL EXTENSION cl_khr_int64_base_atomics : enable3;; #pragma OPENCL EXTENSION cl_khr_int64_extended_atomics : enable4;;5;; void foo (volatile atomic_long *object, long desired) {6;; atomic_fetch_xor(object, desired);7;; }8 9; RUN: llc -O0 -mtriple=spirv64-unknown-unknown %s -o - | FileCheck %s10 11; CHECK: OpCapability Int64Atomics12 13define spir_func void @foo(i64 addrspace(4)* %object, i64 %desired) {14entry:15 %call = tail call spir_func i64 @_Z16atomic_fetch_xorPVU3AS4U7_Atomicll(i64 addrspace(4)* %object, i64 %desired)16 ret void17}18 19declare spir_func i64 @_Z16atomic_fetch_xorPVU3AS4U7_Atomicll(i64 addrspace(4)*, i64)20