From 2067764e29dc2fd6d4d4b48940f41744eaff6d14 Mon Sep 17 00:00:00 2001
From: Reid Spencer
These do not form an API such as high-level threading libraries, software transaction memory systems, atomic primitives, and intrinsic - functionss as found in BSD, GNU libc, atomic_ops, APR, and other system and + functions as found in BSD, GNU libc, atomic_ops, APR, and other system and application libraries. The hardware interface provided by LLVM should allow a clean implementation of all of these APIs and parallel programming models. No one model or paradigm should be selected above others unless the hardware @@ -4864,14 +4864,13 @@ Handling document.
This is an overloaded intrinsic. You can use llvm.atomic.lcs on any - integer bit width. Not all targets support all bit widths however. + integer bit width. Not all targets support all bit widths however.
declare i8 @llvm.atomic.lcs.i8.i8p.i8.i8( i8* <ptr>, i8 <cmp>, i8 <val> ) declare i16 @llvm.atomic.lcs.i16.i16p.i16.i16( i16* <ptr>, i16 <cmp>, i16 <val> ) declare i32 @llvm.atomic.lcs.i32.i32p.i32.i32( i32* <ptr>, i32 <cmp>, i32 <val> ) declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* <ptr>, i64 <cmp>, i64 <val> )-
This loads a value in shared memory and compares it to a given value. If they @@ -4920,14 +4919,13 @@ declare i64 @llvm.atomic.lcs.i64.i64p.i64.i64( i64* <ptr>, i64 <cmp>
This is an overloaded intrinsic. You can use llvm.atomic.ls on any - integer bit width. Not all targets support all bit widths however. + integer bit width. Not all targets support all bit widths however.
declare i8 @llvm.atomic.ls.i8.i8p.i8( i8* <ptr>, i8 <val> ) declare i16 @llvm.atomic.ls.i16.i16p.i16( i16* <ptr>, i16 <val> ) declare i32 @llvm.atomic.ls.i32.i32p.i32( i32* <ptr>, i32 <val> ) declare i64 @llvm.atomic.ls.i64.i64p.i64( i64* <ptr>, i64 <val> )-
This intrinsic loads the value stored in shared memory at ptr and @@ -4975,14 +4973,13 @@ declare i64 @llvm.atomic.ls.i64.i64p.i64( i64* <ptr>, i64 <val> )
This is an overloaded intrinsic. You can use llvm.atomic.las on any - integer bit width. Not all targets support all bit widths however. + integer bit width. Not all targets support all bit widths however.
declare i8 @llvm.atomic.las.i8.i8p.i8( i8* <ptr>, i8 <delta> ) declare i16 @llvm.atomic.las.i16.i16p.i16( i16* <ptr>, i16 <delta> ) declare i32 @llvm.atomic.las.i32.i32p.i32( i32* <ptr>, i32 <delta> ) declare i64 @llvm.atomic.las.i64.i64p.i64( i64* <ptr>, i64 <delta> )-
This intrinsic adds delta to the value stored in shared memory at @@ -5023,14 +5020,13 @@ declare i64 @llvm.atomic.las.i64.i64p.i64( i64* <ptr>, i64 <delta> )
This is an overloaded intrinsic. You can use llvm.atomic.lss on any - integer bit width. Not all targets support all bit widths however. + integer bit width. Not all targets support all bit widths however.
declare i8 @llvm.atomic.lss.i8.i8.i8( i8* <ptr>, i8 <delta> ) declare i16 @llvm.atomic.lss.i16.i16.i16( i16* <ptr>, i16 <delta> ) declare i32 @llvm.atomic.lss.i32.i32.i32( i32* <ptr>, i32 <delta> ) declare i64 @llvm.atomic.lss.i64.i64.i64( i64* <ptr>, i64 <delta> )-
This intrinsic subtracts delta from the value stored in shared @@ -5070,11 +5066,9 @@ declare i64 @llvm.atomic.lss.i64.i64.i64( i64* <ptr>, i64 <delta> )
declare void @llvm.memory.barrier( i1 <ll>, i1 <ls>, i1 <sl>, i1 <ss> )-
The llvm.memory.barrier intrinsic guarantees ordering between