mirror of
https://github.com/RPCS3/llvm.git
synced 2026-07-22 11:45:31 -04:00
60873e298c
The pre-RA scheduler does load/store clustering, but post-RA scheduler undoes it. Add mutation to prevent it. Differential Revision: https://reviews.llvm.org/D38014 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313670 91177308-0d34-0410-b5e6-96231b3b80d8
32 lines
1.1 KiB
YAML
32 lines
1.1 KiB
YAML
# RUN: llc -march=amdgcn -mcpu=tonga -run-pass post-RA-sched -verify-machineinstrs -o - %s | FileCheck -check-prefix=GCN %s
|
|
|
|
# GCN: FLAT_LOAD_DWORD
|
|
# GCN-NEXT: FLAT_LOAD_DWORD
|
|
# GCN: FLAT_STORE_DWORD
|
|
# GCN-NEXT: FLAT_STORE_DWORD
|
|
|
|
---
|
|
name: cluster_loads_post_ra
|
|
tracksRegLiveness: true
|
|
registers:
|
|
liveins:
|
|
- { reg: '%vgpr0' }
|
|
body: |
|
|
bb.0:
|
|
liveins: %vgpr0
|
|
|
|
%vgpr0_vgpr1 = IMPLICIT_DEF
|
|
%vgpr4_vgpr5 = IMPLICIT_DEF
|
|
%vgpr0 = FLAT_LOAD_DWORD %vgpr0_vgpr1, 0, 0, 0, implicit %exec, implicit %flat_scr :: (load 4)
|
|
%vgpr4 = FLAT_LOAD_DWORD %vgpr4_vgpr5, 0, 0, 0, implicit %exec, implicit %flat_scr :: (load 4)
|
|
%vgpr2 = IMPLICIT_DEF
|
|
%vgpr3 = IMPLICIT_DEF
|
|
%vgpr6 = IMPLICIT_DEF
|
|
%vgpr0 = V_ADD_I32_e32 16, %vgpr2, implicit-def %vcc, implicit %exec
|
|
%vgpr1 = V_ADDC_U32_e32 %vgpr3, killed %vgpr6, implicit-def dead %vcc, implicit %vcc, implicit %exec
|
|
FLAT_STORE_DWORD %vgpr2_vgpr3, killed %vgpr0, 0, 0, 0, implicit %exec, implicit %flat_scr :: (store 4)
|
|
FLAT_STORE_DWORD %vgpr0_vgpr1, killed %vgpr4, 0, 0, 0, implicit %exec, implicit %flat_scr :: (store 4)
|
|
S_ENDPGM
|
|
|
|
...
|