[Hexagon] aligned load/store patterns - use cast<> instead of dyn_cast<> to avoid...
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 18 Feb 2022 10:31:00 +0000 (10:31 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 18 Feb 2022 10:36:40 +0000 (10:36 +0000)
The pointer is always referenced inside isAlignedMemNode, so assert the cast is correct instead of returning nullptr

llvm/lib/Target/Hexagon/HexagonPatternsHVX.td

index bdd46cf..6769548 100644 (file)
@@ -92,19 +92,19 @@ def IsVecOff : PatLeaf<(i32 imm), [{
 
 
 def alignedload: PatFrag<(ops node:$a), (load $a), [{
-  return isAlignedMemNode(dyn_cast<MemSDNode>(N));
+  return isAlignedMemNode(cast<MemSDNode>(N));
 }]>;
 
 def unalignedload: PatFrag<(ops node:$a), (load $a), [{
-  return !isAlignedMemNode(dyn_cast<MemSDNode>(N));
+  return !isAlignedMemNode(cast<MemSDNode>(N));
 }]>;
 
 def alignedstore: PatFrag<(ops node:$v, node:$a), (store $v, $a), [{
-  return isAlignedMemNode(dyn_cast<MemSDNode>(N));
+  return isAlignedMemNode(cast<MemSDNode>(N));
 }]>;
 
 def unalignedstore: PatFrag<(ops node:$v, node:$a), (store $v, $a), [{
-  return !isAlignedMemNode(dyn_cast<MemSDNode>(N));
+  return !isAlignedMemNode(cast<MemSDNode>(N));
 }]>;