Home | History | Annotate | Download | only in Reactor

Lines Matching defs:Int4

104 			case Type_v2i32: return T(Int4::getType());
563 createStore(createExtractElement(createBitCast(value, Int4::getType()), Int::getType(), 0), createBitCast(ptr, Pointer<Int>::getType()), Int::getType(), isVolatile, alignment);
2250 return As<Short4>(Swizzle(As<Int4>(lowHigh), 0xEE));
2456 return As<Short4>(Swizzle(As<Int4>(lowHigh), 0xEE));
2559 Short4::Short4(RValue<Int4> cast)
2565 Value *short4 = As<Short4>(Int2(As<Int4>(packed))).value;
2576 Int4 v4i32 = Int4(cast);
2577 v4i32 = As<Int4>(x86::packssdw(v4i32, v4i32));
2793 RValue<Int4> int4 = RoundInt(cast);
2794 return As<Short4>(PackSigned(int4, int4));
2831 return As<SByte8>(Swizzle(As<Int4>(result), 0x88));
2838 return As<Byte8>(Swizzle(As<Int4>(result), 0x88));
2851 return As<Int2>(Swizzle(As<Int4>(lowHigh), 0xEE));
2897 UShort4::UShort4(RValue<Int4> cast)
2908 Int4 int4(Min(cast, Float4(0xFFFF))); // packusdw takes care of 0x0000 saturation
2909 *this = As<Short4>(PackUnsigned(int4, int4));
2913 *this = Short4(Int4(Max(Min(cast, Float4(0xFFFF)), Float4(0x0000))));
2918 *this = Short4(Int4(cast));
3159 RValue<Int4> MulAdd(RValue<Short8> x, RValue<Short8> y)
3164 RValue<Int4> Abs(RValue<Int4> x)
4087 Int2::Int2(RValue<Int4> cast)
4118 Value *packed = Nucleus::createShuffleVector(Int4(lo).loadValue(), Int4(hi).loadValue(), shuffle);
4274 auto lowHigh = RValue<Int4>(Nucleus::createShuffleVector(x.value, y.value, shuffle));
4463 Int4::Int4() : XYZW(this)
4467 Int4::Int4(RValue<Byte4> cast) : XYZW(this)
4483 *this = As<Int4>(d);
4487 Int4::Int4(RValue<SByte4> cast) : XYZW(this)
4503 *this = As<Int4>(d) >> 24;
4507 Int4::Int4(RValue<Float4> cast) : XYZW(this)
4509 Value *xyzw = Nucleus::createFPToSI(cast.value, Int4::getType());
4514 Int4::Int4(RValue<Short4> cast) : XYZW(this)
4524 *this = As<Int4>(c) >> 16;
4528 Int4::Int4(RValue<UShort4> cast) : XYZW(this)
4538 *this = As<Int4>(c);
4542 Int4::Int4(int xyzw) : XYZW(this)
4547 Int4::Int4(int x, int yzw) : XYZW(this)
4552 Int4::Int4(int x, int y, int zw) : XYZW(this)
4557 Int4::Int4(int x, int y, int z, int w) : XYZW(this)
4562 void Int4::constant(int x, int y, int z, int w)
4568 Int4::Int4(RValue<Int4> rhs) : XYZW(this)
4573 Int4::Int4(const Int4 &rhs) : XYZW(this)
4579 Int4::Int4(const Reference<Int4> &rhs) : XYZW(this)
4585 Int4::Int4(RValue<UInt4> rhs) : XYZW(this)
4590 Int4::Int4(const UInt4 &rhs) : XYZW(this)
4596 Int4::Int4(const Reference<UInt4> &rhs) : XYZW(this)
4602 Int4::Int4(RValue<Int2> lo, RValue<Int2> hi) : XYZW(this)
4610 Int4::Int4(RValue<Int> rhs) : XYZW(this)
4621 Int4::Int4(const Int &rhs) : XYZW(this)
4626 Int4::Int4(const Reference<Int> &rhs) : XYZW(this)
4631 RValue<Int4> Int4::operator=(RValue<Int4> rhs)
4638 RValue<Int4> Int4::operator=(const Int4 &rhs)
4643 return RValue<Int4>(value);
4646 RValue<Int4> Int4::operator=(const Reference<Int4> &rhs)
4651 return RValue<Int4>(value);
4654 RValue<Int4> operator+(RValue<Int4> lhs, RValue<Int4> rhs)
4656 return RValue<Int4>(Nucleus::createAdd(lhs.value, rhs.value));
4659 RValue<Int4> operator-(RValue<Int4> lhs, RValue<Int4> rhs)
4661 return RValue<Int4>(Nucleus::createSub(lhs.value, rhs.value));
4664 RValue<Int4> operator*(RValue<Int4> lhs, RValue<Int4> rhs)
4666 return RValue<Int4>(Nucleus::createMul(lhs.value, rhs.value));
4669 RValue<Int4> operator/(RValue<Int4> lhs, RValue<Int4> rhs)
4671 return RValue<Int4>(Nucleus::createSDiv(lhs.value, rhs.value));
4674 RValue<Int4> operator%(RValue<Int4> lhs, RValue<Int4> rhs)
4676 return RValue<Int4>(Nucleus::createSRem(lhs.value, rhs.value));
4679 RValue<Int4> operator&(RValue<Int4> lhs, RValue<Int4> rhs)
4681 return RValue<Int4>(Nucleus::createAnd(lhs.value, rhs.value));
4684 RValue<Int4> operator|(RValue<Int4> lhs, RValue<Int4> rhs)
4686 return RValue<Int4>(Nucleus::createOr(lhs.value, rhs.value));
4689 RValue<Int4> operator^(RValue<Int4> lhs, RValue<Int4> rhs)
4691 return RValue<Int4>(Nucleus::createXor(lhs.value, rhs.value));
4694 RValue<Int4> operator<<(RValue<Int4> lhs, unsigned char rhs)
4699 RValue<Int4> operator>>(RValue<Int4> lhs, unsigned char rhs)
4704 RValue<Int4> operator<<(RValue<Int4> lhs, RValue<Int4> rhs)
4706 return RValue<Int4>(Nucleus::createShl(lhs.value, rhs.value));
4709 RValue<Int4> operator>>(RValue<Int4> lhs, RValue<Int4> rhs)
4711 return RValue<Int4>(Nucleus::createAShr(lhs.value, rhs.value));
4714 RValue<Int4> operator+=(Int4 &lhs, RValue<Int4> rhs)
4719 RValue<Int4> operator-=(Int4 &lhs, RValue<Int4> rhs)
4724 RValue<Int4> operator*=(Int4 &lhs, RValue<Int4> rhs)
4729 // RValue<Int4> operator/=(Int4 &lhs, RValue<Int4> rhs)
4734 // RValue<Int4> operator%=(Int4 &lhs, RValue<Int4> rhs)
4739 RValue<Int4> operator&=(Int4 &lhs, RValue<Int4> rhs)
4744 RValue<Int4> operator|=(Int4 &lhs, RValue<Int4> rhs)
4749 RValue<Int4> operator^=(Int4 &lhs, RValue<Int4> rhs)
4754 RValue<Int4> operator<<=(Int4 &lhs, unsigned char rhs)
4759 RValue<Int4> operator>>=(Int4 &lhs, unsigned char rhs)
4764 RValue<Int4> operator+(RValue<Int4> val)
4769 RValue<Int4> operator-(RValue<Int4> val)
4771 return RValue<Int4>(Nucleus::createNeg(val.value));
4774 RValue<Int4> operator~(RValue<Int4> val)
4776 return RValue<Int4>(Nucleus::createNot(val.value));
4779 RValue<Int4> CmpEQ(RValue<Int4> x, RValue<Int4> y)
4783 // return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpEQ(x.value, y.value), Int4::getType()));
4784 return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpNE(x.value, y.value), Int4::getType())) ^ Int4(0xFFFFFFFF);
4787 RValue<Int4> CmpLT(RValue<Int4> x, RValue<Int4> y)
4791 // return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSLT(x.value, y.value), Int4::getType()));
4792 return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSGE(x.value, y.value), Int4::getType())) ^ Int4(0xFFFFFFFF);
4795 RValue<Int4> CmpLE(RValue<Int4> x, RValue<Int4> y)
4799 // return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSLE(x.value, y.value), Int4::getType()));
4800 return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSGT(x.value, y.value), Int4::getType())) ^ Int4(0xFFFFFFFF);
4803 RValue<Int4> CmpNEQ(RValue<Int4> x, RValue<Int4> y)
4807 // return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpNE(x.value, y.value), Int4::getType()));
4808 return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpEQ(x.value, y.value), Int4::getType())) ^ Int4(0xFFFFFFFF);
4811 RValue<Int4> CmpNLT(RValue<Int4> x, RValue<Int4> y)
4815 // return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSGE(x.value, y.value), Int4::getType()));
4816 return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSLT(x.value, y.value), Int4::getType())) ^ Int4(0xFFFFFFFF);
4819 RValue<Int4> CmpNLE(RValue<Int4> x, RValue<Int4> y)
4823 // return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSGT(x.value, y.value), Int4::getType()));
4824 return RValue<Int4>(Nucleus::createSExt(Nucleus::createICmpSLE(x.value, y.value), Int4::getType())) ^ Int4(0xFFFFFFFF);
4827 RValue<Int4> Max(RValue<Int4> x, RValue<Int4> y)
4835 RValue<Int4> greater = CmpNLE(x, y);
4840 RValue<Int4> Min(RValue<Int4> x, RValue<Int4> y)
4848 RValue<Int4> less = CmpLT(x, y);
4853 RValue<Int4> RoundInt(RValue<Float4> cast)
4858 RValue<Short8> PackSigned(RValue<Int4> x, RValue<Int4> y)
4863 RValue<UShort8> PackUnsigned(RValue<Int4> x, RValue<Int4> y)
4868 RValue<Int> Extract(RValue<Int4> x, int i)
4873 RValue<Int4> Insert(RValue<Int4> x, RValue<Int> element, int i)
4875 return RValue<Int4>(Nucleus::createInsertElement(x.value, element.value, i));
4878 RValue<Int> SignMask(RValue<Int4> x)
4883 RValue<Int4> Swizzle(RValue<Int4> x, unsigned char select)
4885 return RValue<Int4>(createSwizzle4(x.value, select));
4888 Type *Int4::getType()
4907 Int4 uiValue = CmpNLT(cast, Float4(ustartf));
4909 uiValue = (uiValue & As<Int4>(As<UInt4>(Int4(cast - Float4(ustartf))) + UInt4(ustart))) |
4911 (~uiValue & Int4(cast));
4913 storeValue((~(As<Int4>(cast) >> 31) & uiValue).value);
4959 UInt4::UInt4(RValue<Int4> rhs) : XYZW(this)
4964 UInt4::UInt4(const Int4 &rhs) : XYZW(this)
4970 UInt4::UInt4(const Reference<Int4> &rhs) : XYZW(this)
5049 return As<UInt4>(x86::pslld(As<Int4>(lhs), rhs));
5136 // return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpEQ(x.value, y.value), Int4::getType()));
5137 return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpNE(x.value, y.value), Int4::getType())) ^ UInt4(0xFFFFFFFF);
5142 return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpULT(x.value, y.value), Int4::getType()));
5149 // return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpULE(x.value, y.value), Int4::getType()));
5150 return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpUGT(x.value, y.value), Int4::getType())) ^ UInt4(0xFFFFFFFF);
5155 return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpNE(x.value, y.value), Int4::getType()));
5162 // return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpUGE(x.value, y.value), Int4::getType()));
5163 return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpULT(x.value, y.value), Int4::getType())) ^ UInt4(0xFFFFFFFF);
5168 return RValue<UInt4>(Nucleus::createSExt(Nucleus::createICmpUGT(x.value, y.value), Int4::getType()));
5458 Value *a = Int4(cast).loadValue();
5466 Value *a = Int4(cast).loadValue();
5474 Int4 c(cast);
5475 storeValue(Nucleus::createSIToFP(RValue<Int4>(c).value, Float4::getType()));
5480 Int4 c(cast);
5481 storeValue(Nucleus::createSIToFP(RValue<Int4>(c).value, Float4::getType()));
5484 Float4::Float4(RValue<Int4> cast) : XYZW(this)
5493 RValue<Float4> result = Float4(Int4(cast & UInt4(0x7FFFFFFF))) +
5494 As<Float4>((As<Int4>(cast) >> 31) & As<Int4>(Float4(0x80000000u)));
5672 Value *vector = Nucleus::createBitCast(x.value, Int4::getType());
5674 Value *result = Nucleus::createAnd(vector, V(Nucleus::createConstantVector(constantVector, Int4::getType())));
5767 RValue<Int4> CmpEQ(RValue<Float4> x, RValue<Float4> y)
5769 // return As<Int4>(x86::cmpeqps(x, y));
5770 return RValue<Int4>(Nucleus::createSExt(Nucleus::createFCmpOEQ(x.value, y.value), Int4::getType()));
5773 RValue<Int4> CmpLT(RValue<Float4> x, RValue<Float4> y)
5775 // return As<Int4>(x86::cmpltps(x, y));
5776 return RValue<Int4>(Nucleus::createSExt(Nucleus::createFCmpOLT(x.value, y.value), Int4::getType()));
5779 RValue<Int4> CmpLE(RValue<Float4> x, RValue<Float4> y)
5781 // return As<Int4>(x86::cmpleps(x, y));
5782 return RValue<Int4>(Nucleus::createSExt(Nucleus::createFCmpOLE(x.value, y.value), Int4::getType()));
5785 RValue<Int4> CmpNEQ(RValue<Float4> x, RValue<Float4> y)
5787 // return As<Int4>(x86::cmpneqps(x, y));
5788 return RValue<Int4>(Nucleus::createSExt(Nucleus::createFCmpONE(x.value, y.value), Int4::getType()));
5791 RValue<Int4> CmpNLT(RValue<Float4> x, RValue<Float4> y)
5793 // return As<Int4>(x86::cmpnltps(x, y));
5794 return RValue<Int4>(Nucleus::createSExt(Nucleus::createFCmpOGE(x.value, y.value), Int4::getType()));
5797 RValue<Int4> CmpNLE(RValue<Float4> x, RValue<Float4> y)
5799 // return As<Int4>(x86::cmpnleps(x, y));
5800 return RValue<Int4>(Nucleus::createSExt(Nucleus::createFCmpOGT(x.value, y.value), Int4::getType()));
5803 RValue<Int4> IsInf(RValue<Float4> x)
5805 return CmpEQ(As<Int4>(x) & Int4(0x7FFFFFFF), Int4(0x7F800000));
5808 RValue<Int4> IsNan(RValue<Float4> x)
5833 return Float4(Int4(x));
5847 frc = x - Float4(Int4(x)); // Signed fractional part.
5849 frc += As<Float4>(As<Int4>(CmpNLE(Float4(0.0f), frc)) & As<Int4>(Float4(1.0f))); // Add 1.0 if negative.
5854 return Min(frc, As<Float4>(Int4(0x3F7FFFFF)));
5988 RValue<Int4> cvtps2dq(RValue<Float4> val)
5992 return RValue<Int4>(V(::builder->CreateCall(cvtps2dq, val.value)));
6094 RValue<Int4> pabsd(RValue<Int4> x)
6098 return RValue<Int4>(V(::builder->CreateCall(pabsd, x.value)));
6213 RValue<Short8> packssdw(RValue<Int4> x, RValue<Int4> y)
6234 RValue<UShort8> packusdw(RValue<Int4> x, RValue<Int4> y)
6244 RValue<Int4> bx = (x & ~(x >> 31)) - Int4(0x8000);
6245 RValue<Int4> by = (y & ~(y >> 31)) - Int4(0x8000);
6300 RValue<Int4> pslld(RValue<Int4> x, unsigned char y)
6304 return RValue<Int4>(V(::builder->CreateCall2(pslld, x.value, V(Nucleus::createConstantInt(y)))));
6314 RValue<Int4> psrad(RValue<Int4> x, unsigned char y)
6318 return RValue<Int4>(V(::builder->CreateCall2(psrad, x.value, V(Nucleus::createConstantInt(y)))));
6335 RValue<Int4> pmaxsd(RValue<Int4> x, RValue<Int4> y)
6339 return RValue<Int4>(V(::builder->CreateCall2(pmaxsd, x.value, y.value)));
6342 RValue<Int4> pminsd(RValue<Int4> x, RValue<Int4> y)
6346 return RValue<Int4>(V(::builder->CreateCall2(pminsd, x.value, y.value)));
6398 RValue<Int4> pmaddwd(RValue<Short8> x, RValue<Short8> y)
6402 return RValue<Int4>(V(::builder->CreateCall2(pmaddwd, x.value, y.value)));
6419 RValue<Int4> pmovzxbd(RValue<Byte16> x)
6423 return RValue<Int4>(V(::builder->CreateCall(pmovzxbd, x.value)));
6426 RValue<Int4> pmovsxbd(RValue<SByte16> x)
6430 return RValue<Int4>(V(::builder->CreateCall(pmovsxbd, x.value)));
6433 RValue<Int4> pmovzxwd(RValue<UShort8> x)
6437 return RValue<Int4>(V(::builder->CreateCall(pmovzxwd, x.value)));
6440 RValue<Int4> pmovsxwd(RValue<Short8> x)
6444 return RValue<Int4>(V(::builder->CreateCall(pmovsxwd, x.value)));