llvm-6502/lib/CodeGen/SelectionDAG
Bill Wendling c5cbda12e9 - Fix comment so that it describes how the code really works:
// fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) ->
   //   (rotl x, y)
   // fold (or (shl x, (*ext y)), (srl x, (*ext (sub 32, y)))) ->
   //   (rotr x, (sub 32, y))

Example: (x == 0xDEADBEEF and y == 4)

    (x << 4) | (x >> 28)
 => 0xEADBEEF0 | 0x0000000D
 => 0xEADBEEFD

    (rotl x, 4)
 => 0xEADBEEFD

    (rotr x, 28)
 => 0xEADBEEFD

- Fix comment and code for second version. It wasn't using the rot* propertly.

   // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) -> 
   //   (rotr x, y)
   // fold (or (shl x, (*ext (sub 32, y))), (srl x, (*ext r))) ->
   //   (rotl x, (sub 32, y))

    (x << 28) | (x >> 4)
 => 0xD0000000 | 0x0DEADBEE
 => 0xDDEADBEE

    (rotl x, 4)
 => 0xEADBEEFD

    (rotr x, 28)
 => (0xEADBEEFD)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55575 91177308-0d34-0410-b5e6-96231b3b80d8
2008-08-31 00:37:27 +00:00
..
CallingConvLower.cpp Trim unnecessary #includes. 2008-07-11 20:38:31 +00:00
DAGCombiner.cpp - Fix comment so that it describes how the code really works: 2008-08-31 00:37:27 +00:00
FastISel.cpp Fix an issue where a use might be selected before a def, and then we didn't respect the pre-chosen vreg 2008-08-30 00:38:46 +00:00
LegalizeDAG.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeFloatTypes.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeIntegerTypes.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeTypes.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeTypes.h erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeTypesGeneric.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
LegalizeVectorTypes.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
Makefile
ScheduleDAG.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
ScheduleDAGList.cpp Add a new function, ReplaceAllUsesOfValuesWith, which handles bulk 2008-07-17 19:10:17 +00:00
ScheduleDAGRRList.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
SelectionDAG.cpp typo 2008-08-30 22:16:05 +00:00
SelectionDAGISel.cpp Add a target callback for FastISel. 2008-08-28 23:21:34 +00:00
SelectionDAGPrinter.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00
TargetLowering.cpp erect abstraction boundaries for accessing SDValue members, rename Val -> Node to reflect semantics 2008-08-28 21:40:38 +00:00