summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/AMDGPU/i1-copy-phi.ll19
-rw-r--r--llvm/test/CodeGen/AMDGPU/implicit-def-muse.ll22
2 files changed, 41 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/i1-copy-phi.ll b/llvm/test/CodeGen/AMDGPU/i1-copy-phi.ll
index 5b25271ce17..7286d9785ed 100644
--- a/llvm/test/CodeGen/AMDGPU/i1-copy-phi.ll
+++ b/llvm/test/CodeGen/AMDGPU/i1-copy-phi.ll
@@ -37,3 +37,22 @@ bb6: ; preds = %bb4, %bb3
declare i32 @llvm.amdgcn.workitem.id.x() #0
attributes #0 = { nounwind readnone }
+
+; Make sure this won't crash.
+; SI-LABEL: {{^}}vcopy_i1_undef
+; SI: v_cndmask_b32_e64
+; SI: v_cndmask_b32_e64
+define <2 x float> @vcopy_i1_undef(<2 x float> addrspace(1)* %p) {
+entry:
+ br i1 undef, label %exit, label %false
+
+false:
+ %x = load <2 x float>, <2 x float> addrspace(1)* %p
+ %cmp = fcmp one <2 x float> %x, zeroinitializer
+ br label %exit
+
+exit:
+ %c = phi <2 x i1> [ undef, %entry ], [ %cmp, %false ]
+ %ret = select <2 x i1> %c, <2 x float> <float 2.0, float 2.0>, <2 x float> <float 4.0, float 4.0>
+ ret <2 x float> %ret
+}
diff --git a/llvm/test/CodeGen/AMDGPU/implicit-def-muse.ll b/llvm/test/CodeGen/AMDGPU/implicit-def-muse.ll
new file mode 100644
index 00000000000..fb540c3a6ba
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/implicit-def-muse.ll
@@ -0,0 +1,22 @@
+; RUN: llc -march=amdgcn -stop-after=amdgpu-isel -verify-machineinstrs -o - %s | FileCheck %s
+
+; CHECK-LABEL: vcopy_i1_undef
+; CHECK: IMPLICIT_DEF
+; CHECK-NOT: COPY
+; CHECK: IMPLICIT_DEF
+; CHECK-NOT: COPY
+; CHECK: .false:
+define <2 x float> @vcopy_i1_undef(<2 x float> addrspace(1)* %p) {
+entry:
+ br i1 undef, label %exit, label %false
+
+false:
+ %x = load <2 x float>, <2 x float> addrspace(1)* %p
+ %cmp = fcmp one <2 x float> %x, zeroinitializer
+ br label %exit
+
+exit:
+ %c = phi <2 x i1> [ undef, %entry ], [ %cmp, %false ]
+ %ret = select <2 x i1> %c, <2 x float> <float 2.0, float 2.0>, <2 x float> <float 4.0, float 4.0>
+ ret <2 x float> %ret
+}
OpenPOWER on IntegriCloud