This will currently accept the old number of bytes syntax, and convert it to a scalar. This should be removed in the near future (I think I converted all of the tests already, but likely missed a few). Not sure what the exact syntax and policy should be. We can continue printing the number of bytes for non-generic instructions to avoid test churn and only allow non-scalar types for generic instructions. This will currently print the LLT in parentheses, but accept parsing the existing integers and implicitly converting to scalar. The parentheses are a bit ugly, but the parser logic seems unable to deal without either parentheses or some keyword to indicate the start of a type.
35 lines
901 B
YAML
35 lines
901 B
YAML
# RUN: llc -march=hexagon -run-pass hexagon-packetizer %s -o - | FileCheck %s
|
|
|
|
# Make sure that we don't try to packetize the two stores together. The
|
|
# dependence on $r0 could be broken by updating the offset in the storeiri,
|
|
# but then the offset would become invalid for that instruction (it has to
|
|
# be a multiple of 4).
|
|
|
|
# CHECK: S4_storeiri_io killed $r0, 0, 0
|
|
|
|
--- |
|
|
define void @fred() {
|
|
ret void
|
|
}
|
|
|
|
@g0 = global i8 zeroinitializer, align 2
|
|
@g1 = global i32 zeroinitializer, align 4
|
|
...
|
|
|
|
---
|
|
name: fred
|
|
tracksRegLiveness: true
|
|
body: |
|
|
bb.0:
|
|
successors: %bb.0, %bb.1
|
|
liveins: $lc0, $r0, $r27
|
|
$r1 = A2_addi $r0, 24
|
|
$r0 = S2_storerb_pi $r0, 2, $r27 :: (store (s8) into @g0, align 2)
|
|
S4_storeiri_io killed $r0, 0, 0 :: (store (s32) into @g1, align 4)
|
|
$r0 = A2_tfr killed $r1
|
|
ENDLOOP0 %bb.0, implicit-def $pc, implicit-def $lc0, implicit $sa0, implicit $lc0
|
|
|
|
bb.1:
|
|
|
|
...
|