Files
archived-llvm/test/CodeGen/SystemZ/atomic-load-05.ll
Ulrich Weigand e6a2101d1d [SystemZ] Add support for 128-bit atomic load/store/cmpxchg
This adds support for the main 128-bit atomic operations,
using the SystemZ instructions LPQ, STPQ, and CDSG.

Generating these instructions is a bit more complex than usual
since the i128 type is not legal for the back-end.  Therefore,
we have to hook the LowerOperationWrapper and ReplaceNodeResults
TargetLowering callbacks.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310094 91177308-0d34-0410-b5e6-96231b3b80d8
2017-08-04 18:57:58 +00:00

14 lines
311 B
LLVM

; Test 128-bit atomic loads.
;
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
define i128 @f1(i128 *%src) {
; CHECK-LABEL: f1:
; CHECK: lpq %r0, 0(%r3)
; CHECK-DAG: stg %r1, 8(%r2)
; CHECK-DAG: stg %r0, 0(%r2)
; CHECK: br %r14
%val = load atomic i128, i128 *%src seq_cst, align 16
ret i128 %val
}