xref: /llvm-project/llvm/test/Transforms/AtomicExpand/PowerPC/issue55983.ll (revision fe42e72db29e48aa81eac2aa922afd90a7f01517)
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2; RUN: opt -passes=atomic-expand -S -mtriple=powerpc64le-unknown-unknown \
3; RUN:   %s | FileCheck %s
4; RUN: opt -passes=atomic-expand -S -mtriple=powerpc64-unknown-unknown \
5; RUN:   %s | FileCheck %s
6
7define ptr @foo(ptr %p) {
8; CHECK-LABEL: @foo(
9; CHECK-NEXT:  entry:
10; CHECK-NEXT:    [[TMP0:%.*]] = load atomic ptr, ptr [[P:%.*]] monotonic, align 8
11; CHECK-NEXT:    call void @llvm.ppc.cfence.p0(ptr [[TMP0]])
12; CHECK-NEXT:    ret ptr [[TMP0]]
13;
14entry:
15  %0 = load atomic ptr, ptr %p acquire, align 8
16  ret ptr %0
17}
18
19define void @foobar(ptr addrspace(11) %p) {
20; CHECK-LABEL: @foobar(
21; CHECK-NEXT:  entry:
22; CHECK-NEXT:    [[TMP0:%.*]] = load atomic ptr addrspace(10), ptr addrspace(11) [[P:%.*]] monotonic, align 8
23; CHECK-NEXT:    call void @llvm.ppc.cfence.p10(ptr addrspace(10) [[TMP0]])
24; CHECK-NEXT:    unreachable
25;
26entry:
27  %0 = load atomic ptr addrspace(10), ptr addrspace(11) %p acquire, align 8
28  unreachable
29}
30