mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-21 00:32:23 +00:00
30 lines
1008 B
LLVM
30 lines
1008 B
LLVM
|
; RUN: llc -mtriple=aarch64-none-linux-gnu -mattr=+neon < %s | FileCheck %s
|
||
|
|
||
|
; This file tests the spill of FPR8/FPR16. The volatile loads/stores force the
|
||
|
; allocator to keep the value live until it's needed.
|
||
|
|
||
|
%bigtype_v1i8 = type [20 x <1 x i8>]
|
||
|
|
||
|
define void @spill_fpr8(%bigtype_v1i8* %addr) {
|
||
|
; CHECK-LABEL: spill_fpr8:
|
||
|
; CHECK: 1-byte Folded Spill
|
||
|
; CHECK: 1-byte Folded Reload
|
||
|
%val1 = load volatile %bigtype_v1i8* %addr
|
||
|
%val2 = load volatile %bigtype_v1i8* %addr
|
||
|
store volatile %bigtype_v1i8 %val1, %bigtype_v1i8* %addr
|
||
|
store volatile %bigtype_v1i8 %val2, %bigtype_v1i8* %addr
|
||
|
ret void
|
||
|
}
|
||
|
|
||
|
%bigtype_v1i16 = type [20 x <1 x i16>]
|
||
|
|
||
|
define void @spill_fpr16(%bigtype_v1i16* %addr) {
|
||
|
; CHECK-LABEL: spill_fpr16:
|
||
|
; CHECK: 2-byte Folded Spill
|
||
|
; CHECK: 2-byte Folded Reload
|
||
|
%val1 = load volatile %bigtype_v1i16* %addr
|
||
|
%val2 = load volatile %bigtype_v1i16* %addr
|
||
|
store volatile %bigtype_v1i16 %val1, %bigtype_v1i16* %addr
|
||
|
store volatile %bigtype_v1i16 %val2, %bigtype_v1i16* %addr
|
||
|
ret void
|
||
|
}
|