mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-03 14:21:30 +00:00
[AArch64] Disable some optimization cases for type conversion from sint to fp, because those optimization cases are micro-architecture dependent and only make sense for Cyclone. A new predicate Cyclone is introduced in .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213827 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -24,6 +24,7 @@ def HasCRC : Predicate<"Subtarget->hasCRC()">,
|
||||
AssemblerPredicate<"FeatureCRC", "crc">;
|
||||
def IsLE : Predicate<"Subtarget->isLittleEndian()">;
|
||||
def IsBE : Predicate<"!Subtarget->isLittleEndian()">;
|
||||
def IsCyclone : Predicate<"Subtarget->isCyclone()">;
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// AArch64-specific DAG Nodes.
|
||||
@@ -4386,7 +4387,7 @@ class SExtLoadi8CVTf32Pat<dag addrmode, dag INST>
|
||||
0),
|
||||
dsub)),
|
||||
0),
|
||||
ssub)))>, Requires<[NotForCodeSize]>;
|
||||
ssub)))>, Requires<[NotForCodeSize, IsCyclone]>;
|
||||
|
||||
def : SExtLoadi8CVTf32Pat<(ro8.Wpat GPR64sp:$Rn, GPR32:$Rm, ro8.Wext:$ext),
|
||||
(LDRBroW GPR64sp:$Rn, GPR32:$Rm, ro8.Wext:$ext)>;
|
||||
@@ -4439,8 +4440,8 @@ class SExtLoadi16CVTf64Pat<dag addrmode, dag INST>
|
||||
0),
|
||||
dsub)),
|
||||
0),
|
||||
dsub)))>, Requires<[NotForCodeSize]>;
|
||||
|
||||
dsub)))>, Requires<[NotForCodeSize, IsCyclone]>;
|
||||
|
||||
def : SExtLoadi16CVTf64Pat<(ro16.Wpat GPR64sp:$Rn, GPR32:$Rm, ro16.Wext:$ext),
|
||||
(LDRHroW GPR64sp:$Rn, GPR32:$Rm, ro16.Wext:$ext)>;
|
||||
def : SExtLoadi16CVTf64Pat<(ro16.Xpat GPR64sp:$Rn, GPR64:$Rm, ro16.Xext:$ext),
|
||||
|
||||
Reference in New Issue
Block a user