summaryrefslogtreecommitdiff
path: root/test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2016-07-23 20:41:05 +0000
committerDimitry Andric <dim@FreeBSD.org>2016-07-23 20:41:05 +0000
commit01095a5d43bbfde13731688ddcf6048ebb8b7721 (patch)
tree4def12e759965de927d963ac65840d663ef9d1ea /test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll
parentf0f4822ed4b66e3579e92a89f368f8fb860e218e (diff)
Diffstat (limited to 'test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll')
-rw-r--r--test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll b/test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll
new file mode 100644
index 0000000000000..ca93dda2c5739
--- /dev/null
+++ b/test/Analysis/DivergenceAnalysis/AMDGPU/unreachable-loop-block.ll
@@ -0,0 +1,17 @@
+; RUN: opt %s -mtriple amdgcn-- -analyze -divergence | FileCheck %s
+
+; CHECK: DIVERGENT: %tmp = cmpxchg volatile
+define void @unreachable_loop(i32 %tidx) #0 {
+entry:
+ unreachable
+
+unreachable_loop: ; preds = %do.body.i, %if.then11
+ %tmp = cmpxchg volatile i32 addrspace(1)* null, i32 0, i32 0 seq_cst seq_cst
+ %cmp.i = extractvalue { i32, i1 } %tmp, 1
+ br i1 %cmp.i, label %unreachable_loop, label %end
+
+end: ; preds = %do.body.i51, %atomicAdd_g_f.exit
+ unreachable
+}
+
+attributes #0 = { norecurse nounwind }