mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-09 11:25:55 +00:00
ARM mode version of r109693. Remove incorrect substitution pattern for UXTB16. It wrongly assumed the input shift was actually a rotate. rdar://8240138
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109696 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1567,8 +1567,12 @@ defm UXTH : AI_unary_rrot<0b01101111,
|
|||||||
defm UXTB16 : AI_unary_rrot<0b01101100,
|
defm UXTB16 : AI_unary_rrot<0b01101100,
|
||||||
"uxtb16", UnOpFrag<(and node:$Src, 0x00FF00FF)>>;
|
"uxtb16", UnOpFrag<(and node:$Src, 0x00FF00FF)>>;
|
||||||
|
|
||||||
def : ARMV6Pat<(and (shl GPR:$Src, (i32 8)), 0xFF00FF),
|
// FIXME: This pattern incorrectly assumes the shl operator is a rotate.
|
||||||
(UXTB16r_rot GPR:$Src, 24)>;
|
// The transformation should probably be done as a combiner action
|
||||||
|
// instead so we can include a check for masking back in the upper
|
||||||
|
// eight bits of the source into the lower eight bits of the result.
|
||||||
|
//def : ARMV6Pat<(and (shl GPR:$Src, (i32 8)), 0xFF00FF),
|
||||||
|
// (UXTB16r_rot GPR:$Src, 24)>;
|
||||||
def : ARMV6Pat<(and (srl GPR:$Src, (i32 8)), 0xFF00FF),
|
def : ARMV6Pat<(and (srl GPR:$Src, (i32 8)), 0xFF00FF),
|
||||||
(UXTB16r_rot GPR:$Src, 8)>;
|
(UXTB16r_rot GPR:$Src, 8)>;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user