mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-24 23:19:03 +00:00
[PowerPC] VSX stores don't also read
The VSX store instructions were also picking up an implicit "may read" from the default pattern, which was an intrinsic (and we don't currently have a way of specifying write-only intrinsics). This was causing MI verification to fail for VSX spill restores. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@227759 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -97,12 +97,12 @@ let Uses = [RM] in {
|
||||
def STXVD2X : XX1Form<31, 972,
|
||||
(outs), (ins vsrc:$XT, memrr:$dst),
|
||||
"stxvd2x $XT, $dst", IIC_LdStSTFD,
|
||||
[(int_ppc_vsx_stxvd2x v2f64:$XT, xoaddr:$dst)]>;
|
||||
[(store v2f64:$XT, xoaddr:$dst)]>;
|
||||
|
||||
def STXVW4X : XX1Form<31, 908,
|
||||
(outs), (ins vsrc:$XT, memrr:$dst),
|
||||
"stxvw4x $XT, $dst", IIC_LdStSTFD,
|
||||
[(int_ppc_vsx_stxvw4x v4i32:$XT, xoaddr:$dst)]>;
|
||||
[(store v4i32:$XT, xoaddr:$dst)]>;
|
||||
}
|
||||
|
||||
// Add/Mul Instructions
|
||||
@@ -891,9 +891,11 @@ def : Pat<(v4i32 (load xoaddr:$src)), (LXVW4X xoaddr:$src)>;
|
||||
def : Pat<(v2f64 (PPClxvd2x xoaddr:$src)), (LXVD2X xoaddr:$src)>;
|
||||
|
||||
// Stores.
|
||||
def : Pat<(store v2f64:$rS, xoaddr:$dst), (STXVD2X $rS, xoaddr:$dst)>;
|
||||
def : Pat<(int_ppc_vsx_stxvd2x v2f64:$rS, xoaddr:$dst),
|
||||
(STXVD2X $rS, xoaddr:$dst)>;
|
||||
def : Pat<(store v2i64:$rS, xoaddr:$dst), (STXVD2X $rS, xoaddr:$dst)>;
|
||||
def : Pat<(store v4i32:$rS, xoaddr:$dst), (STXVW4X $rS, xoaddr:$dst)>;
|
||||
def : Pat<(int_ppc_vsx_stxvw4x v4i32:$rS, xoaddr:$dst),
|
||||
(STXVW4X $rS, xoaddr:$dst)>;
|
||||
def : Pat<(PPCstxvd2x v2f64:$rS, xoaddr:$dst), (STXVD2X $rS, xoaddr:$dst)>;
|
||||
|
||||
// Permutes.
|
||||
|
||||
Reference in New Issue
Block a user