summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2017-03-24 18:55:20 +0000
committerStanislav Mekhanoshin <Stanislav.Mekhanoshin@amd.com>2017-03-24 18:55:20 +0000
commit70603dcef22e6cd27d5dd7e544a0c479ba4f0dc5 (patch)
treef8096c2ad00ccf709fa57487897d3e73a578ecdc /llvm/test/CodeGen
parent4986d9fb45e40866f5df1b04bafaa94ac41b03d4 (diff)
downloadbcm5719-llvm-70603dcef22e6cd27d5dd7e544a0c479ba4f0dc5.tar.gz
bcm5719-llvm-70603dcef22e6cd27d5dd7e544a0c479ba4f0dc5.zip
[AMDGPU] Fold V_CNDMASK with identical source operands
Such instructions sometimes appear after lowering and folding. Differential Revision: https://reviews.llvm.org/D31318 llvm-svn: 298723
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/AMDGPU/fold-cndmask.mir34
1 files changed, 34 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AMDGPU/fold-cndmask.mir b/llvm/test/CodeGen/AMDGPU/fold-cndmask.mir
new file mode 100644
index 00000000000..8dfec916630
--- /dev/null
+++ b/llvm/test/CodeGen/AMDGPU/fold-cndmask.mir
@@ -0,0 +1,34 @@
+# RUN: llc -march=amdgcn -run-pass si-fold-operands -verify-machineinstrs -o - %s | FileCheck %s
+
+# CHECK: %1 = V_MOV_B32_e32 0, implicit %exec
+# CHECK: %2 = V_MOV_B32_e32 0, implicit %exec
+# CHECK: %4 = COPY %3
+# CHECK: %5 = V_MOV_B32_e32 0, implicit %exec
+# CHECK: %6 = V_MOV_B32_e32 0, implicit %exec
+# CHECK: %7 = COPY %3
+
+---
+name: fold_cndmask
+tracksRegLiveness: true
+registers:
+ - { id: 0, class: sgpr_64 }
+ - { id: 1, class: vgpr_32 }
+ - { id: 2, class: vgpr_32 }
+ - { id: 3, class: vgpr_32 }
+ - { id: 4, class: vgpr_32 }
+ - { id: 5, class: vgpr_32 }
+ - { id: 6, class: vgpr_32 }
+ - { id: 7, class: vgpr_32 }
+body: |
+ bb.0.entry:
+ %0 = IMPLICIT_DEF
+ %1 = V_CNDMASK_B32_e64 0, 0, %0, implicit %exec
+ %2 = V_CNDMASK_B32_e64 %1, %1, %0, implicit %exec
+ %3 = IMPLICIT_DEF
+ %4 = V_CNDMASK_B32_e64 %3, %3, %0, implicit %exec
+ %5 = COPY %1
+ %6 = V_CNDMASK_B32_e64 %5, 0, %0, implicit %exec
+ %vcc = IMPLICIT_DEF
+ %7 = V_CNDMASK_B32_e32 %3, %3, implicit %exec, implicit %vcc
+
+...
OpenPOWER on IntegriCloud