Displaying 2 results from an estimated 2 matches for "gepload".
2019 Jun 25
2
SCEVExpander bug?
...s-
(-32768 * (%1 /u -32768))<nuw><nsw>
It has both nsw/nuw flags. The signed range of the second operand of SCEVMulExpr (%1 /u -32768) is [0, 2). So it can be either 0 or 1.
But SCEVExpander uses shl to generate the multiply. The generated IR looks something like this-
%7 = lshr i16 %gepload, 15
%8 = shl nuw nsw i16 %7, 15
The issue is that %8 is later simplified to zero because according to langref it produces poison otherwise -
If the nuw keyword is present, then the shift produces a poison value if it shifts out any non-zero bits. If the nsw keyword is present, then the shift produ...
2016 Aug 17
2
Loop vectorization with the loop containing bitcast
...%arrayIdx to <4 x i64>*
LAA: We need to do 0 pointer comparisons.
LAA: We can perform a memory runtime check if needed.
LAA: Checking memory dependencies
LAA: Src Scev: {@c,+,32}<nsw><%loop.17>Sink Scev: {@c,+,32}<nsw><%loop.17>(Induction step: 1)
LAA: Distance for %gepload = load <4 x i64>, <4 x i64>* %0, align 16, !tbaa !1 to store <4 x double> zeroinitializer, <4 x double>* %2, align 16, !tbaa !1: 0
LAA: Zero dependence difference but different types
Total Dependences: 1
LAA: unsafe dependent memory operations in loop
-------------- next p...