1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/test/CodeGen/AMDGPU/opt_exec_copy_fold.mir
alex-t 24e5eb0aab [AMDGPU] SIOptimizeExecMaskingPreRA should check constant bus constraint when folds EXEC copy
Folding EXEC copy into it's single use may lead to constant bus constraint violation as it adds one more SGPR operand.
         This change makes it validate the user instruction with the new SGPR operand and only fold it if it is legal.

Reviewed By: rampitec, arsenm

Differential Revision: https://reviews.llvm.org/D98888
2021-03-24 14:14:13 +03:00

24 lines
663 B
YAML

# RUN: llc -run-pass si-optimize-exec-masking-pre-ra -march=amdgcn -verify-machineinstrs -o - %s | FileCheck --check-prefixes=GCN %s
---
# GCN-LABEL: name: opt_exec_copy_fold
# GCN: %2:vreg_64 = COPY $exec
name: opt_exec_copy_fold
tracksRegLiveness: true
liveins:
- { reg: '$sgpr0_sgpr1' }
body: |
bb.0:
liveins: $sgpr0_sgpr1
%0:vgpr_32 = V_CNDMASK_B32_e64 0, 0, 0, 1, $sgpr0_sgpr1, implicit $exec
%1:sreg_64 = V_CMP_NE_U32_e64 0, %0, implicit $exec
%2:vreg_64 = COPY $exec
%3:sreg_64 = V_CMP_EQ_U64_e64 %1, %2, implicit $exec
$scc = COPY %3
S_CBRANCH_SCC0 %bb.1, implicit $scc
bb.1:
...