1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc -mtriple=riscv64 -x mir -mcpu=sifive-p470 -verify-misched -enable-post-misched=false \
# RUN: -riscv-postmisched-load-store-clustering=false -debug-only=machine-scheduler \
# RUN: -start-before=machine-scheduler -stop-after=postmisched -misched-regpressure=false -o - 2>&1 < %s \
# RUN: | FileCheck -check-prefix=NOPOSTMISCHED %s
# RUN: llc -mtriple=riscv64 -x mir -mcpu=sifive-p470 -mattr=+use-postra-scheduler -verify-misched -enable-post-misched=true \
# RUN: -riscv-postmisched-load-store-clustering=false -debug-only=machine-scheduler \
# RUN: -start-before=machine-scheduler -stop-after=postmisched -misched-regpressure=false -o - 2>&1 < %s \
# RUN: | FileCheck -check-prefix=NOCLUSTER %s
# RUN: llc -mtriple=riscv64 -x mir -mcpu=sifive-p470 -mattr=+use-postra-scheduler -verify-misched -enable-post-misched=true \
# RUN: -debug-only=machine-scheduler \
# RUN: -start-before=machine-scheduler -stop-after=postmisched -misched-regpressure=false -o - 2>&1 < %s \
# RUN: | FileCheck -check-prefix=MEMCLUSTER %s
# REQUIRES: asserts
...
---
name: mem_clustering_1
tracksRegLiveness: true
body: |
bb.0:
liveins: $x6, $x10, $x14, $x15, $x16, $x17
; NOPOSTMISCHED-LABEL: name: mem_clustering_1
; NOPOSTMISCHED: liveins: $x6, $x10, $x14, $x15, $x16, $x17
; NOPOSTMISCHED-NEXT: {{ $}}
; NOPOSTMISCHED-NEXT: renamable $x5 = LW renamable $x15, 0 :: (load (s32))
; NOPOSTMISCHED-NEXT: renamable $x7 = LW renamable $x15, 8 :: (load (s32))
; NOPOSTMISCHED-NEXT: renamable $x28 = LW renamable $x15, 16 :: (load (s32))
; NOPOSTMISCHED-NEXT: renamable $x29 = LW renamable $x15, 24 :: (load (s32))
; NOPOSTMISCHED-NEXT: renamable $x11 = ADDW renamable $x6, killed renamable $x5
; NOPOSTMISCHED-NEXT: renamable $x13 = ADDW killed renamable $x7, killed renamable $x28
; NOPOSTMISCHED-NEXT: renamable $x11 = ADDW killed renamable $x11, killed renamable $x13
; NOPOSTMISCHED-NEXT: renamable $x6 = ADDW killed renamable $x11, killed renamable $x29
; NOPOSTMISCHED-NEXT: SW renamable $x14, renamable $x15, 0 :: (store (s32))
; NOPOSTMISCHED-NEXT: SW renamable $x14, renamable $x15, 8 :: (store (s32))
; NOPOSTMISCHED-NEXT: SW renamable $x14, renamable $x15, 16 :: (store (s32))
; NOPOSTMISCHED-NEXT: SW renamable $x14, renamable $x15, 24 :: (store (s32))
; NOPOSTMISCHED-NEXT: PseudoRET
;
; NOCLUSTER-LABEL: name: mem_clustering_1
; NOCLUSTER: liveins: $x6, $x10, $x14, $x15, $x16, $x17
; NOCLUSTER-NEXT: {{ $}}
; NOCLUSTER-NEXT: renamable $x5 = LW renamable $x15, 0 :: (load (s32))
; NOCLUSTER-NEXT: SW renamable $x14, renamable $x15, 0 :: (store (s32))
; NOCLUSTER-NEXT: renamable $x11 = ADDW killed renamable $x6, killed renamable $x5
; NOCLUSTER-NEXT: renamable $x7 = LW renamable $x15, 8 :: (load (s32))
; NOCLUSTER-NEXT: renamable $x28 = LW renamable $x15, 16 :: (load (s32))
; NOCLUSTER-NEXT: renamable $x29 = LW renamable $x15, 24 :: (load (s32))
; NOCLUSTER-NEXT: renamable $x13 = ADDW killed renamable $x7, killed renamable $x28
; NOCLUSTER-NEXT: SW renamable $x14, renamable $x15, 8 :: (store (s32))
; NOCLUSTER-NEXT: SW renamable $x14, renamable $x15, 16 :: (store (s32))
; NOCLUSTER-NEXT: SW killed renamable $x14, killed renamable $x15, 24 :: (store (s32))
; NOCLUSTER-NEXT: renamable $x11 = ADDW killed renamable $x11, killed renamable $x13
; NOCLUSTER-NEXT: renamable $x6 = ADDW killed renamable $x11, killed renamable $x29
; NOCLUSTER-NEXT: PseudoRET
;
; MEMCLUSTER-LABEL: name: mem_clustering_1
; MEMCLUSTER: liveins: $x6, $x10, $x14, $x15, $x16, $x17
; MEMCLUSTER-NEXT: {{ $}}
; MEMCLUSTER-NEXT: renamable $x5 = LW renamable $x15, 0 :: (load (s32))
; MEMCLUSTER-NEXT: renamable $x7 = LW renamable $x15, 8 :: (load (s32))
; MEMCLUSTER-NEXT: renamable $x28 = LW renamable $x15, 16 :: (load (s32))
; MEMCLUSTER-NEXT: renamable $x29 = LW renamable $x15, 24 :: (load (s32))
; MEMCLUSTER-NEXT: SW renamable $x14, renamable $x15, 0 :: (store (s32))
; MEMCLUSTER-NEXT: SW renamable $x14, renamable $x15, 8 :: (store (s32))
; MEMCLUSTER-NEXT: SW renamable $x14, renamable $x15, 16 :: (store (s32))
; MEMCLUSTER-NEXT: SW killed renamable $x14, killed renamable $x15, 24 :: (store (s32))
; MEMCLUSTER-NEXT: renamable $x11 = ADDW killed renamable $x6, killed renamable $x5
; MEMCLUSTER-NEXT: renamable $x13 = ADDW killed renamable $x7, killed renamable $x28
; MEMCLUSTER-NEXT: renamable $x11 = ADDW killed renamable $x11, killed renamable $x13
; MEMCLUSTER-NEXT: renamable $x6 = ADDW killed renamable $x11, killed renamable $x29
; MEMCLUSTER-NEXT: PseudoRET
renamable $x5 = LW renamable $x15, 0 :: (load (s32))
renamable $x7 = LW renamable $x15, 8 :: (load (s32))
renamable $x28 = LW renamable $x15, 16 :: (load (s32))
renamable $x29 = LW renamable $x15, 24 :: (load (s32))
renamable $x11 = ADDW killed renamable $x6, killed renamable $x5
renamable $x13 = ADDW killed renamable $x7, killed renamable $x28
renamable $x11 = ADDW killed renamable $x11, killed renamable $x13
renamable $x6 = ADDW killed renamable $x11, killed renamable $x29
SW renamable $x14, renamable $x15, 0 :: (store (s32))
SW renamable $x14, renamable $x15, 8 :: (store (s32))
SW renamable $x14, renamable $x15, 16 :: (store (s32))
SW renamable $x14, renamable $x15, 24 :: (store (s32))
PseudoRET
...
|