search for: m_mul

Displaying 4 results from an estimated 4 matches for "m_mul".

Did you mean: s_mul
2008 May 17
0
[LLVMdev] More info, was Help needed after hiatus
...; preds = %entry > ret void > } BTW, It's usually better to file a bug for this sort of thing. The issue is around InstructionCombining:2507: // W*X + Y*Z --> W * (X+Z) iff W == Y if (I.getType()->isIntOrIntVector()) { Value *W, *X, *Y, *Z; if (match(LHS, m_Mul(m_Value(W), m_Value(X))) && match(RHS, m_Mul(m_Value(Y), m_Value(Z)))) { The issue starts with the lines: add i32 %2, 2 ; <i32>:3 [#uses=1] mul i32 %3, ptrtoint (i32* getelementptr (i32* null, i32 1) to i32) ; <i32>:4 [#uses=1] Rou...
2008 May 17
2
[LLVMdev] More info, was Help needed after hiatus
Hi, I know my last question was very vague (i.e. "It stopped working, what went wrong?"), so here is a little more concrete example: If I run the optimizer (opt) on this code snippet with -std-compile-opts the optimizer hangs. ; ModuleID = 'test.ubc' target datalayout =
2015 Apr 15
2
[LLVMdev] Instruction combiner multiplication canonicalization
...*X; 271 Constant *C1; 272 if (match(Op0, m_OneUse(m_Add(m_Value(X), m_Constant(C1))))) { 273 Value *Mul = Builder->CreateMul(C1, Op1); 274 // Only go forward with the transform if C1*CI simplifies to a tidier 275 // constant. 276 if (!match(Mul, m_Mul(m_Value(), m_Value()))) 277 return BinaryOperator::CreateAdd(Builder->CreateMul(X, Op1), Mul); 278 } 279 } If my understanding is correct then I like propose below change here: If input operation to canonicalization is guaranteed to not overflow then transformed operation...
2008 May 14
3
[LLVMdev] Help needed after hiatus
Hi, I've restarted my Elsa/LLVM project after three months of having real life intrude. I upgraded my LLVM source to the current trunk. I had to make a few changes to my source, e.g. LLVMFoldingBuilder became IRBuilder and several instances of "new" became "Create". Now, a test case that previously succeeded fails. I run the following script: #!/bin/sh if [ 1 -ne 0 ]