for (unsigned VectExpOp : VectExpOps)
setOperationAction(VectExpOp, VT, Expand);
- // Expand all extended loads and truncating stores:
+ // Expand all extending loads and truncating stores:
for (MVT TargetVT : MVT::vector_valuetypes()) {
+ if (TargetVT == VT)
+ continue;
setLoadExtAction(ISD::EXTLOAD, TargetVT, VT, Expand);
+ setLoadExtAction(ISD::ZEXTLOAD, TargetVT, VT, Expand);
+ setLoadExtAction(ISD::SEXTLOAD, TargetVT, VT, Expand);
setTruncStoreAction(VT, TargetVT, Expand);
}
--- /dev/null
+; A copy of 2012-06-08-APIntCrash.ll with arch explicitly set to hexagon.
+
+; RUN: llc -march=hexagon < %s
+
+define void @test1(<8 x i32>* %ptr) {
+ %1 = load <8 x i32>, <8 x i32>* %ptr, align 32
+ %2 = and <8 x i32> %1, <i32 0, i32 0, i32 0, i32 -1, i32 0, i32 0, i32 0, i32 -1>
+ store <8 x i32> %2, <8 x i32>* %ptr, align 16
+ ret void
+}