| ; RUN: not llc -mtriple=nvptx64 -mcpu=sm_80 -filetype=null %s 2>&1 | FileCheck %s |
| |
| ; CHECK: error: unsupported atomic load: instruction alignment 1 is smaller than the required 4-byte alignment for this atomic operation |
| define i32 @load_i32_align1(ptr %p) { |
| %ret = load atomic i32, ptr %p seq_cst, align 1 |
| ret i32 %ret |
| } |
| |
| ; CHECK: error: unsupported atomic store: instruction alignment 1 is smaller than the required 4-byte alignment for this atomic operation |
| define void @store_i32_align1(ptr %p, i32 %v) { |
| store atomic i32 %v, ptr %p seq_cst, align 1 |
| ret void |
| } |
| |
| ; CHECK: error: unsupported cmpxchg: instruction alignment 4 is smaller than the required 8-byte alignment for this atomic operation |
| define { i64, i1 } @cmpxchg_i64_align4(ptr %p, i64 %cmp, i64 %new) { |
| %ret = cmpxchg ptr %p, i64 %cmp, i64 %new seq_cst monotonic, align 4 |
| ret { i64, i1 } %ret |
| } |
| |
| ; CHECK: error: unsupported atomicrmw xchg: instruction alignment 4 is smaller than the required 8-byte alignment for this atomic operation |
| define i64 @atomicrmw_xchg_i64_align4(ptr %p, i64 %v) { |
| %ret = atomicrmw xchg ptr %p, i64 %v seq_cst, align 4 |
| ret i64 %ret |
| } |