Lines Matching defs:ShAmt
79 Value *&ShAmt) {
82 // fshl(ShVal0, ShVal1, ShAmt)
83 // == (ShVal0 << ShAmt) | (ShVal1 >> (Width -ShAmt))
85 m_Shl(m_Value(ShVal0), m_Value(ShAmt)),
87 m_Sub(m_SpecificInt(Width), m_Deferred(ShAmt))))))) {
91 // fshr(ShVal0, ShVal1, ShAmt)
92 // == (ShVal0 >> ShAmt) | (ShVal1 << (Width - ShAmt))
95 m_Value(ShAmt))),
96 m_LShr(m_Value(ShVal1), m_Deferred(ShAmt)))))) {
105 // phi [ rotate(RotSrc, ShAmt), FunnelBB ], [ RotSrc, GuardBB ]
106 // phi [ fshl(ShVal0, ShVal1, ShAmt), FunnelBB ], [ ShVal0, GuardBB ]
107 // phi [ fshr(ShVal0, ShVal1, ShAmt), FunnelBB ], [ ShVal1, GuardBB ]
111 Value *ShVal0, *ShVal1, *ShAmt;
112 Intrinsic::ID IID = matchFunnelShift(P0, ShVal0, ShVal1, ShAmt);
116 IID = matchFunnelShift(P1, ShVal0, ShVal1, ShAmt);
140 if (!match(TermI, m_Br(m_ICmp(Pred, m_Specific(ShAmt), m_ZeroInt()),
166 // %cmp = icmp eq i32 %ShAmt, 0
169 // %sub = sub i32 32, %ShAmt
171 // %shl = shl i32 %ShVal0, %ShAmt
177 // llvm.fshl.i32(i32 %ShVal0, i32 %ShVal1, i32 %ShAmt)
179 Phi.replaceAllUsesWith(Builder.CreateCall(F, {ShVal0, ShVal1, ShAmt}));