llvm.org GIT mirror llvm / 542f642
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 Jim Grosbach 10 years ago
1 changed file(s) with 6 addition(s) and 2 deletion(s). Raw diff Collapse all Expand all
15661566 defm UXTB16 : AI_unary_rrot<0b01101100,
15671567 "uxtb16", UnOpFrag<(and node:$Src, 0x00FF00FF)>>;
15681568
1569 def : ARMV6Pat<(and (shl GPR:$Src, (i32 8)), 0xFF00FF),
1570 (UXTB16r_rot GPR:$Src, 24)>;
1569 // FIXME: This pattern incorrectly assumes the shl operator is a rotate.
1570 // The transformation should probably be done as a combiner action
1571 // instead so we can include a check for masking back in the upper
1572 // eight bits of the source into the lower eight bits of the result.
1573 //def : ARMV6Pat<(and (shl GPR:$Src, (i32 8)), 0xFF00FF),
1574 // (UXTB16r_rot GPR:$Src, 24)>;
15711575 def : ARMV6Pat<(and (srl GPR:$Src, (i32 8)), 0xFF00FF),
15721576 (UXTB16r_rot GPR:$Src, 8)>;
15731577