mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-19 23:23:38 -04:00
44ee20512e
Also includes one example of how this transform is unsound. This isn't verifying the copies are used in the control flow intrinisic patterns. Also add option to disable exec mask opt pass. Since this pass is unsound, it may be useful to turn it off until it is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357091 91177308-0d34-0410-b5e6-96231b3b80d8
50 lines
1.6 KiB
YAML
50 lines
1.6 KiB
YAML
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
|
|
# RUN: llc -march=amdgcn -verify-machineinstrs -run-pass=si-optimize-exec-masking-pre-ra %s -o - | FileCheck -check-prefix=GXN %s
|
|
|
|
# FIXME: This is a miscompile, and the s_or_b64s need to be preserved.
|
|
|
|
---
|
|
name: invalid_end_cf_fold_0
|
|
tracksRegLiveness: true
|
|
liveins:
|
|
- { reg: '$vgpr0', virtual-reg: '%0' }
|
|
- { reg: '$sgpr0_sgpr1', virtual-reg: '%1' }
|
|
machineFunctionInfo:
|
|
isEntryFunction: true
|
|
body: |
|
|
; GXN-LABEL: name: invalid_end_cf_fold_0
|
|
; GXN: bb.0:
|
|
; GXN: successors: %bb.1(0x80000000)
|
|
; GXN: liveins: $vgpr0, $sgpr0_sgpr1
|
|
; GXN: [[COPY:%[0-9]+]]:sgpr_64 = COPY $sgpr0_sgpr1
|
|
; GXN: $exec = S_OR_B64 $exec, [[COPY]], implicit-def $scc
|
|
; GXN: [[COPY1:%[0-9]+]]:sgpr_64 = COPY $exec
|
|
; GXN: bb.1:
|
|
; GXN: successors: %bb.2(0x80000000)
|
|
; GXN: bb.2:
|
|
; GXN: $exec = S_OR_B64 $exec, [[COPY1]], implicit-def $scc
|
|
; GXN: [[DEF:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
|
|
; GXN: [[DEF1:%[0-9]+]]:vgpr_32 = IMPLICIT_DEF
|
|
; GXN: DS_WRITE_B32 [[DEF]], [[DEF1]], 0, 0, implicit $m0, implicit $exec :: (store 4, addrspace 3)
|
|
; GXN: S_ENDPGM 0
|
|
bb.0:
|
|
liveins: $vgpr0, $sgpr0_sgpr1
|
|
|
|
%0:sgpr_64 = COPY $sgpr0_sgpr1
|
|
%1:sgpr_64 = COPY $exec
|
|
$exec = S_OR_B64 $exec, %0, implicit-def $scc
|
|
%2:sgpr_64 = COPY $exec
|
|
|
|
bb.1:
|
|
$exec = S_OR_B64 $exec, %1, implicit-def $scc
|
|
|
|
bb.2:
|
|
$exec = S_OR_B64 $exec, %2, implicit-def $scc
|
|
|
|
%5:vgpr_32 = IMPLICIT_DEF
|
|
%6:vgpr_32 = IMPLICIT_DEF
|
|
DS_WRITE_B32 %5, %6, 0, 0, implicit $m0, implicit $exec :: (store 4, addrspace 3)
|
|
S_ENDPGM 0
|
|
|
|
...
|