1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/CodeGen/Hexagon/spill-vector-alignment.mir
Krzysztof Parzyszek fe9991c322 [Hexagon] Fix vector spill expansion to use proper alignment
1. Add pseudos PS_vloadrv_ai and PS_vstorerv_ai: those are now used
   for single vector registers in loadRegFromStackSlot (and store...).
2. Remove pseudos PS_vloadrwu_ai and PS_vstorerwu_ai. The alignment is
   now checked when expanding spill pseudos (both in frame lowering
   and in expand-post-ra-pseudos), and a proper instruction is generated.
3. Update MachineMemOperands when dealigning vector spill slots.
4. Return vector predicate registers in getCallerSavedRegs.
2019-11-12 09:43:21 -06:00

17 lines
433 B
YAML

# RUN: llc -march=hexagon -run-pass prologepilog %s -o - | FileCheck %s
# Check that the spill of $q0 uses unaligned store instruction.
# CHECK: V6_vS32Ub_ai $r30, -128, killed $v0
---
name: test
tracksRegLiveness: true
stack:
- { id: 0, type: variable-sized, offset: 0, alignment: 1 }
- { id: 1, type: spill-slot, size: 128, alignment: 128 }
body: |
bb.0:
liveins: $q0
PS_vstorerq_ai %stack.1, 0, $q0
...