[llvm] r280973 - [Hexagon] Expand sext- and zextloads of vector types, not just extloads
Krzysztof Parzyszek via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 8 10:42:14 PDT 2016
Author: kparzysz
Date: Thu Sep 8 12:42:14 2016
New Revision: 280973
URL: http://llvm.org/viewvc/llvm-project?rev=280973&view=rev
Log:
[Hexagon] Expand sext- and zextloads of vector types, not just extloads
Recent change exposed this issue, breaking the Hexagon buildbots.
Added:
llvm/trunk/test/CodeGen/Hexagon/vector-ext-load.ll
Modified:
llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp
Modified: llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp?rev=280973&r1=280972&r2=280973&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/HexagonISelLowering.cpp Thu Sep 8 12:42:14 2016
@@ -1968,9 +1968,13 @@ HexagonTargetLowering::HexagonTargetLowe
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);
}
Added: llvm/trunk/test/CodeGen/Hexagon/vector-ext-load.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/Hexagon/vector-ext-load.ll?rev=280973&view=auto
==============================================================================
--- llvm/trunk/test/CodeGen/Hexagon/vector-ext-load.ll (added)
+++ llvm/trunk/test/CodeGen/Hexagon/vector-ext-load.ll Thu Sep 8 12:42:14 2016
@@ -0,0 +1,10 @@
+; 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
+}
More information about the llvm-commits
mailing list