[llvm-commits] [llvm] r170240 - in /llvm/trunk: lib/Analysis/ValueTracking.cpp test/Transforms/InstCombine/2012-12-14-simp-vgep.ll
Nadav Rotem
nrotem at apple.com
Fri Dec 14 12:43:49 PST 2012
Author: nadav
Date: Fri Dec 14 14:43:49 2012
New Revision: 170240
URL: http://llvm.org/viewvc/llvm-project?rev=170240&view=rev
Log:
Fix a crash in ValueTracking on vectors of pointers.
Added:
llvm/trunk/test/Transforms/InstCombine/2012-12-14-simp-vgep.ll
Modified:
llvm/trunk/lib/Analysis/ValueTracking.cpp
Modified: llvm/trunk/lib/Analysis/ValueTracking.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ValueTracking.cpp?rev=170240&r1=170239&r2=170240&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ValueTracking.cpp (original)
+++ llvm/trunk/lib/Analysis/ValueTracking.cpp Fri Dec 14 14:43:49 2012
@@ -953,7 +953,7 @@
return true;
}
- unsigned BitWidth = getBitWidth(V->getType(), TD);
+ unsigned BitWidth = getBitWidth(V->getType()->getScalarType(), TD);
// X | Y != 0 if X != 0 or Y != 0.
Value *X = 0, *Y = 0;
Added: llvm/trunk/test/Transforms/InstCombine/2012-12-14-simp-vgep.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/2012-12-14-simp-vgep.ll?rev=170240&view=auto
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/2012-12-14-simp-vgep.ll (added)
+++ llvm/trunk/test/Transforms/InstCombine/2012-12-14-simp-vgep.ll Fri Dec 14 14:43:49 2012
@@ -0,0 +1,10 @@
+; RUN: opt < %s -instcombine -S
+
+target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:128:128"
+
+define <4 x i32> @foo(<4 x i32*>* %in) {
+ %t17 = load <4 x i32*>* %in, align 8
+ %t18 = icmp eq <4 x i32*> %t17, zeroinitializer
+ %t19 = zext <4 x i1> %t18 to <4 x i32>
+ ret <4 x i32> %t19
+}
More information about the llvm-commits
mailing list