Skip to content

Commit

Permalink
Update generation of stores using SVE
Browse files Browse the repository at this point in the history
  • Loading branch information
pmatos committed Nov 29, 2024
1 parent 3e8accf commit 0c32715
Showing 1 changed file with 3 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
#include "Interface/IR/PassManager.h"
#include "FEXCore/IR/IR.h"
#include "FEXCore/Utils/Profiler.h"
#include "FEXCore/fextl/deque.h"
#include "FEXCore/Core/HostFeatures.h"
#include "CodeEmitter/Emitter.h"

#include <array>
#include <cstddef>
Expand Down Expand Up @@ -824,7 +824,8 @@ void X87StackOptimization::Run(IREmitter* Emit) {
}
if (Op->StoreSize == OpSize::f80Bit) { // Part of code from StoreResult_WithOpSize()
if (Features.SupportsSVE128) {
IREmit->_StoreMem(FPRClass, OpSize::f80Bit, AddrNode, StackNode);
auto PReg = IREmit->_InitPredicate(OpSize::i16Bit, FEXCore::ToUnderlying(ARMEmitter::PredicatePattern::SVE_VL5));
IREmit->_StoreMemPredicate(FPRClass, OpSize::i16Bit, StackNode, PReg, AddrNode);
} else {
// For X87 extended doubles, split before storing
IREmit->_StoreMem(FPRClass, OpSize::i64Bit, AddrNode, StackNode);
Expand Down

0 comments on commit 0c32715

Please sign in to comment.