summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/AArch64
diff options
context:
space:
mode:
authorJessica Paquette <jpaquette@apple.com>2018-10-05 21:02:46 +0000
committerJessica Paquette <jpaquette@apple.com>2018-10-05 21:02:46 +0000
commitb328d95333e08cbcd70ead2ebbfd00cfc97000df (patch)
tree78c80ff6b5518da13732d13e616cb913975ae891 /llvm/test/CodeGen/AArch64
parentfdada09fa4351b270df0cbfe5ef72aa2853b9f26 (diff)
downloadbcm5719-llvm-b328d95333e08cbcd70ead2ebbfd00cfc97000df.tar.gz
bcm5719-llvm-b328d95333e08cbcd70ead2ebbfd00cfc97000df.zip
[GlobalIsel] Add llvm.invariant.start and llvm.invariant.end
Port over the implementation in SelectionDAGBuilder.cpp into the IRTranslator and update the arm64-irtranslator test. These were causing fallbacks in CTMark/Bullet (-Rpass-missed=gisel-select), and this patch fixes that. https://reviews.llvm.org/D52945 llvm-svn: 343885
Diffstat (limited to 'llvm/test/CodeGen/AArch64')
-rw-r--r--llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll14
1 files changed, 14 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
index a2bbc27fd3b..a021eeda353 100644
--- a/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
+++ b/llvm/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
@@ -2207,3 +2207,17 @@ define void @test_blockaddress() {
block:
ret void
}
+
+%t = type { i32 }
+declare {}* @llvm.invariant.start.p0i8(i64, i8* nocapture) readonly nounwind
+declare void @llvm.invariant.end.p0i8({}*, i64, i8* nocapture) nounwind
+define void @test_invariant_intrin() {
+; CHECK-LABEL: name: test_invariant_intrin
+; CHECK: %{{[0-9]+}}:_(s64) = G_IMPLICIT_DEF
+; CHECK-NEXT: RET_ReallyLR
+ %x = alloca %t
+ %y = bitcast %t* %x to i8*
+ %inv = call {}* @llvm.invariant.start.p0i8(i64 8, i8* %y)
+ call void @llvm.invariant.end.p0i8({}* %inv, i64 8, i8* %y)
+ ret void
+}
OpenPOWER on IntegriCloud