mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-15 09:56:02 +00:00

llvm.invariant.group.barrier may accept pointers to arbitrary address space. This patch let it accept pointers to i8 in any address space and returns pointer to i8 in the same address space. Differential Revision: https://reviews.llvm.org/D39973 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@318413 91177308-0d34-0410-b5e6-96231b3b80d8
25 lines
602 B
LLVM
25 lines
602 B
LLVM
; RUN: opt -codegenprepare -S < %s | FileCheck %s
|
|
|
|
@tmp = global i8 0
|
|
|
|
; CHECK-LABEL: define void @foo() {
|
|
define void @foo() {
|
|
enter:
|
|
; CHECK-NOT: !invariant.group
|
|
; CHECK-NOT: @llvm.invariant.group.barrier.p0i8(
|
|
; CHECK: %val = load i8, i8* @tmp, !tbaa
|
|
%val = load i8, i8* @tmp, !invariant.group !0, !tbaa !{!1, !1, i64 0}
|
|
%ptr = call i8* @llvm.invariant.group.barrier.p0i8(i8* @tmp)
|
|
|
|
; CHECK: store i8 42, i8* @tmp
|
|
store i8 42, i8* %ptr, !invariant.group !0
|
|
|
|
ret void
|
|
}
|
|
; CHECK-LABEL: }
|
|
|
|
declare i8* @llvm.invariant.group.barrier.p0i8(i8*)
|
|
|
|
!0 = !{!"something"}
|
|
!1 = !{!"x", !0}
|