Lines Matching refs:RValue
102 class RValue;
149 RValue<Pointer<T>> operator&();
169 RValue<T> operator=(RValue<T> rhs) const;
170 RValue<T> operator=(const Reference<T> &ref) const;
172 RValue<T> operator+=(RValue<T> rhs) const;
174 RValue<Pointer<T>> operator&() const { return RValue<Pointer<T>>(address); } in operator &()
234 class RValue class
239 explicit RValue(Value *rvalue);
242 RValue(const RValue<T> &rvalue);
245 RValue(const T &lvalue);
246 RValue(typename BoolLiteral<T>::type i);
247 RValue(typename IntLiteral<T>::type i);
248 RValue(typename FloatLiteral<T>::type f);
249 RValue(const Reference<T> &rhs);
251 RValue<T> &operator=(const RValue<T> &) = delete;
273 Bool(RValue<Bool> rhs);
278 RValue<Bool> operator=(RValue<Bool> rhs);
279 RValue<Bool> operator=(const Bool &rhs);
280 RValue<Bool> operator=(const Reference<Bool> &rhs);
285 RValue<Bool> operator!(RValue<Bool> val);
286 RValue<Bool> operator&&(RValue<Bool> lhs, RValue<Bool> rhs);
287 RValue<Bool> operator||(RValue<Bool> lhs, RValue<Bool> rhs);
288 RValue<Bool> operator!=(RValue<Bool> lhs, RValue<Bool> rhs);
289 RValue<Bool> operator==(RValue<Bool> lhs, RValue<Bool> rhs);
296 explicit Byte(RValue<Int> cast);
297 explicit Byte(RValue<UInt> cast);
298 explicit Byte(RValue<UShort> cast);
303 Byte(RValue<Byte> rhs);
308 RValue<Byte> operator=(RValue<Byte> rhs);
309 RValue<Byte> operator=(const Byte &rhs);
310 RValue<Byte> operator=(const Reference<Byte> &rhs);
315 RValue<Byte> operator+(RValue<Byte> lhs, RValue<Byte> rhs);
316 RValue<Byte> operator-(RValue<Byte> lhs, RValue<Byte> rhs);
317 RValue<Byte> operator*(RValue<Byte> lhs, RValue<Byte> rhs);
318 RValue<Byte> operator/(RValue<Byte> lhs, RValue<Byte> rhs);
319 RValue<Byte> operator%(RValue<Byte> lhs, RValue<Byte> rhs);
320 RValue<Byte> operator&(RValue<Byte> lhs, RValue<Byte> rhs);
321 RValue<Byte> operator|(RValue<Byte> lhs, RValue<Byte> rhs);
322 RValue<Byte> operator^(RValue<Byte> lhs, RValue<Byte> rhs);
323 RValue<Byte> operator<<(RValue<Byte> lhs, RValue<Byte> rhs);
324 RValue<Byte> operator>>(RValue<Byte> lhs, RValue<Byte> rhs);
325 RValue<Byte> operator+=(Byte &lhs, RValue<Byte> rhs);
326 RValue<Byte> operator-=(Byte &lhs, RValue<Byte> rhs);
327 RValue<Byte> operator*=(Byte &lhs, RValue<Byte> rhs);
328 RValue<Byte> operator/=(Byte &lhs, RValue<Byte> rhs);
329 RValue<Byte> operator%=(Byte &lhs, RValue<Byte> rhs);
330 RValue<Byte> operator&=(Byte &lhs, RValue<Byte> rhs);
331 RValue<Byte> operator|=(Byte &lhs, RValue<Byte> rhs);
332 RValue<Byte> operator^=(Byte &lhs, RValue<Byte> rhs);
333 RValue<Byte> operator<<=(Byte &lhs, RValue<Byte> rhs);
334 RValue<Byte> operator>>=(Byte &lhs, RValue<Byte> rhs);
335 RValue<Byte> operator+(RValue<Byte> val);
336 RValue<Byte> operator-(RValue<Byte> val);
337 RValue<Byte> operator~(RValue<Byte> val);
338 RValue<Byte> operator++(Byte &val, int); // Post-increment
340 RValue<Byte> operator--(Byte &val, int); // Post-decrement
342 RValue<Bool> operator<(RValue<Byte> lhs, RValue<Byte> rhs);
343 RValue<Bool> operator<=(RValue<Byte> lhs, RValue<Byte> rhs);
344 RValue<Bool> operator>(RValue<Byte> lhs, RValue<Byte> rhs);
345 RValue<Bool> operator>=(RValue<Byte> lhs, RValue<Byte> rhs);
346 RValue<Bool> operator!=(RValue<Byte> lhs, RValue<Byte> rhs);
347 RValue<Bool> operator==(RValue<Byte> lhs, RValue<Byte> rhs);
354 explicit SByte(RValue<Int> cast);
355 explicit SByte(RValue<Short> cast);
359 SByte(RValue<SByte> rhs);
364 RValue<SByte> operator=(RValue<SByte> rhs);
365 RValue<SByte> operator=(const SByte &rhs);
366 RValue<SByte> operator=(const Reference<SByte> &rhs);
371 RValue<SByte> operator+(RValue<SByte> lhs, RValue<SByte> rhs);
372 RValue<SByte> operator-(RValue<SByte> lhs, RValue<SByte> rhs);
373 RValue<SByte> operator*(RValue<SByte> lhs, RValue<SByte> rhs);
374 RValue<SByte> operator/(RValue<SByte> lhs, RValue<SByte> rhs);
375 RValue<SByte> operator%(RValue<SByte> lhs, RValue<SByte> rhs);
376 RValue<SByte> operator&(RValue<SByte> lhs, RValue<SByte> rhs);
377 RValue<SByte> operator|(RValue<SByte> lhs, RValue<SByte> rhs);
378 RValue<SByte> operator^(RValue<SByte> lhs, RValue<SByte> rhs);
379 RValue<SByte> operator<<(RValue<SByte> lhs, RValue<SByte> rhs);
380 RValue<SByte> operator>>(RValue<SByte> lhs, RValue<SByte> rhs);
381 RValue<SByte> operator+=(SByte &lhs, RValue<SByte> rhs);
382 RValue<SByte> operator-=(SByte &lhs, RValue<SByte> rhs);
383 RValue<SByte> operator*=(SByte &lhs, RValue<SByte> rhs);
384 RValue<SByte> operator/=(SByte &lhs, RValue<SByte> rhs);
385 RValue<SByte> operator%=(SByte &lhs, RValue<SByte> rhs);
386 RValue<SByte> operator&=(SByte &lhs, RValue<SByte> rhs);
387 RValue<SByte> operator|=(SByte &lhs, RValue<SByte> rhs);
388 RValue<SByte> operator^=(SByte &lhs, RValue<SByte> rhs);
389 RValue<SByte> operator<<=(SByte &lhs, RValue<SByte> rhs);
390 RValue<SByte> operator>>=(SByte &lhs, RValue<SByte> rhs);
391 RValue<SByte> operator+(RValue<SByte> val);
392 RValue<SByte> operator-(RValue<SByte> val);
393 RValue<SByte> operator~(RValue<SByte> val);
394 RValue<SByte> operator++(SByte &val, int); // Post-increment
396 RValue<SByte> operator--(SByte &val, int); // Post-decrement
398 RValue<Bool> operator<(RValue<SByte> lhs, RValue<SByte> rhs);
399 RValue<Bool> operator<=(RValue<SByte> lhs, RValue<SByte> rhs);
400 RValue<Bool> operator>(RValue<SByte> lhs, RValue<SByte> rhs);
401 RValue<Bool> operator>=(RValue<SByte> lhs, RValue<SByte> rhs);
402 RValue<Bool> operator!=(RValue<SByte> lhs, RValue<SByte> rhs);
403 RValue<Bool> operator==(RValue<SByte> lhs, RValue<SByte> rhs);
410 explicit Short(RValue<Int> cast);
414 Short(RValue<Short> rhs);
419 RValue<Short> operator=(RValue<Short> rhs);
420 RValue<Short> operator=(const Short &rhs);
421 RValue<Short> operator=(const Reference<Short> &rhs);
426 RValue<Short> operator+(RValue<Short> lhs, RValue<Short> rhs);
427 RValue<Short> operator-(RValue<Short> lhs, RValue<Short> rhs);
428 RValue<Short> operator*(RValue<Short> lhs, RValue<Short> rhs);
429 RValue<Short> operator/(RValue<Short> lhs, RValue<Short> rhs);
430 RValue<Short> operator%(RValue<Short> lhs, RValue<Short> rhs);
431 RValue<Short> operator&(RValue<Short> lhs, RValue<Short> rhs);
432 RValue<Short> operator|(RValue<Short> lhs, RValue<Short> rhs);
433 RValue<Short> operator^(RValue<Short> lhs, RValue<Short> rhs);
434 RValue<Short> operator<<(RValue<Short> lhs, RValue<Short> rhs);
435 RValue<Short> operator>>(RValue<Short> lhs, RValue<Short> rhs);
436 RValue<Short> operator+=(Short &lhs, RValue<Short> rhs);
437 RValue<Short> operator-=(Short &lhs, RValue<Short> rhs);
438 RValue<Short> operator*=(Short &lhs, RValue<Short> rhs);
439 RValue<Short> operator/=(Short &lhs, RValue<Short> rhs);
440 RValue<Short> operator%=(Short &lhs, RValue<Short> rhs);
441 RValue<Short> operator&=(Short &lhs, RValue<Short> rhs);
442 RValue<Short> operator|=(Short &lhs, RValue<Short> rhs);
443 RValue<Short> operator^=(Short &lhs, RValue<Short> rhs);
444 RValue<Short> operator<<=(Short &lhs, RValue<Short> rhs);
445 RValue<Short> operator>>=(Short &lhs, RValue<Short> rhs);
446 RValue<Short> operator+(RValue<Short> val);
447 RValue<Short> operator-(RValue<Short> val);
448 RValue<Short> operator~(RValue<Short> val);
449 RValue<Short> operator++(Short &val, int); // Post-increment
451 RValue<Short> operator--(Short &val, int); // Post-decrement
453 RValue<Bool> operator<(RValue<Short> lhs, RValue<Short> rhs);
454 RValue<Bool> operator<=(RValue<Short> lhs, RValue<Short> rhs);
455 RValue<Bool> operator>(RValue<Short> lhs, RValue<Short> rhs);
456 RValue<Bool> operator>=(RValue<Short> lhs, RValue<Short> rhs);
457 RValue<Bool> operator!=(RValue<Short> lhs, RValue<Short> rhs);
458 RValue<Bool> operator==(RValue<Short> lhs, RValue<Short> rhs);
465 explicit UShort(RValue<UInt> cast);
466 explicit UShort(RValue<Int> cast);
470 UShort(RValue<UShort> rhs);
475 RValue<UShort> operator=(RValue<UShort> rhs);
476 RValue<UShort> operator=(const UShort &rhs);
477 RValue<UShort> operator=(const Reference<UShort> &rhs);
482 RValue<UShort> operator+(RValue<UShort> lhs, RValue<UShort> rhs);
483 RValue<UShort> operator-(RValue<UShort> lhs, RValue<UShort> rhs);
484 RValue<UShort> operator*(RValue<UShort> lhs, RValue<UShort> rhs);
485 RValue<UShort> operator/(RValue<UShort> lhs, RValue<UShort> rhs);
486 RValue<UShort> operator%(RValue<UShort> lhs, RValue<UShort> rhs);
487 RValue<UShort> operator&(RValue<UShort> lhs, RValue<UShort> rhs);
488 RValue<UShort> operator|(RValue<UShort> lhs, RValue<UShort> rhs);
489 RValue<UShort> operator^(RValue<UShort> lhs, RValue<UShort> rhs);
490 RValue<UShort> operator<<(RValue<UShort> lhs, RValue<UShort> rhs);
491 RValue<UShort> operator>>(RValue<UShort> lhs, RValue<UShort> rhs);
492 RValue<UShort> operator+=(UShort &lhs, RValue<UShort> rhs);
493 RValue<UShort> operator-=(UShort &lhs, RValue<UShort> rhs);
494 RValue<UShort> operator*=(UShort &lhs, RValue<UShort> rhs);
495 RValue<UShort> operator/=(UShort &lhs, RValue<UShort> rhs);
496 RValue<UShort> operator%=(UShort &lhs, RValue<UShort> rhs);
497 RValue<UShort> operator&=(UShort &lhs, RValue<UShort> rhs);
498 RValue<UShort> operator|=(UShort &lhs, RValue<UShort> rhs);
499 RValue<UShort> operator^=(UShort &lhs, RValue<UShort> rhs);
500 RValue<UShort> operator<<=(UShort &lhs, RValue<UShort> rhs);
501 RValue<UShort> operator>>=(UShort &lhs, RValue<UShort> rhs);
502 RValue<UShort> operator+(RValue<UShort> val);
503 RValue<UShort> operator-(RValue<UShort> val);
504 RValue<UShort> operator~(RValue<UShort> val);
505 RValue<UShort> operator++(UShort &val, int); // Post-increment
507 RValue<UShort> operator--(UShort &val, int); // Post-decrement
509 RValue<Bool> operator<(RValue<UShort> lhs, RValue<UShort> rhs);
510 RValue<Bool> operator<=(RValue<UShort> lhs, RValue<UShort> rhs);
511 RValue<Bool> operator>(RValue<UShort> lhs, RValue<UShort> rhs);
512 RValue<Bool> operator>=(RValue<UShort> lhs, RValue<UShort> rhs);
513 RValue<Bool> operator!=(RValue<UShort> lhs, RValue<UShort> rhs);
514 RValue<Bool> operator==(RValue<UShort> lhs, RValue<UShort> rhs);
519 explicit Byte4(RValue<Byte8> cast);
520 explicit Byte4(RValue<UShort4> cast);
521 explicit Byte4(RValue<Short4> cast);
522 explicit Byte4(RValue<UInt4> cast);
523 explicit Byte4(RValue<Int4> cast);
527 Byte4(RValue<Byte4> rhs);
531 RValue<Byte4> operator=(RValue<Byte4> rhs);
532 RValue<Byte4> operator=(const Byte4 &rhs);
615 Byte8(RValue<Byte8> rhs);
619 RValue<Byte8> operator=(RValue<Byte8> rhs);
620 RValue<Byte8> operator=(const Byte8 &rhs);
621 RValue<Byte8> operator=(const Reference<Byte8> &rhs);
626 RValue<Byte8> operator+(RValue<Byte8> lhs, RValue<Byte8> rhs);
627 RValue<Byte8> operator-(RValue<Byte8> lhs, RValue<Byte8> rhs);
631 RValue<Byte8> operator&(RValue<Byte8> lhs, RValue<Byte8> rhs);
632 RValue<Byte8> operator|(RValue<Byte8> lhs, RValue<Byte8> rhs);
633 RValue<Byte8> operator^(RValue<Byte8> lhs, RValue<Byte8> rhs);
636 RValue<Byte8> operator+=(Byte8 &lhs, RValue<Byte8> rhs);
637 RValue<Byte8> operator-=(Byte8 &lhs, RValue<Byte8> rhs);
641 RValue<Byte8> operator&=(Byte8 &lhs, RValue<Byte8> rhs);
642 RValue<Byte8> operator|=(Byte8 &lhs, RValue<Byte8> rhs);
643 RValue<Byte8> operator^=(Byte8 &lhs, RValue<Byte8> rhs);
648 RValue<Byte8> operator~(RValue<Byte8> val);
654 RValue<Byte8> AddSat(RValue<Byte8> x, RValue<Byte8> y);
655 RValue<Byte8> SubSat(RValue<Byte8> x, RValue<Byte8> y);
656 RValue<Short4> Unpack(RValue<Byte4> x);
657 RValue<Short4> Unpack(RValue<Byte4> x, RValue<Byte4> y);
658 RValue<Short4> UnpackLow(RValue<Byte8> x, RValue<Byte8> y);
659 RValue<Short4> UnpackHigh(RValue<Byte8> x, RValue<Byte8> y);
660 RValue<Int> SignMask(RValue<Byte8> x);
662 RValue<Byte8> CmpEQ(RValue<Byte8> x, RValue<Byte8> y);
663 RValue<Byte8> Swizzle(RValue<Byte8> x, uint32_t select);
670 SByte8(RValue<SByte8> rhs);
674 RValue<SByte8> operator=(RValue<SByte8> rhs);
675 RValue<SByte8> operator=(const SByte8 &rhs);
676 RValue<SByte8> operator=(const Reference<SByte8> &rhs);
681 RValue<SByte8> operator+(RValue<SByte8> lhs, RValue<SByte8> rhs);
682 RValue<SByte8> operator-(RValue<SByte8> lhs, RValue<SByte8> rhs);
686 RValue<SByte8> operator&(RValue<SByte8> lhs, RValue<SByte8> rhs);
687 RValue<SByte8> operator|(RValue<SByte8> lhs, RValue<SByte8> rhs);
688 RValue<SByte8> operator^(RValue<SByte8> lhs, RValue<SByte8> rhs);
691 RValue<SByte8> operator+=(SByte8 &lhs, RValue<SByte8> rhs);
692 RValue<SByte8> operator-=(SByte8 &lhs, RValue<SByte8> rhs);
696 RValue<SByte8> operator&=(SByte8 &lhs, RValue<SByte8> rhs);
697 RValue<SByte8> operator|=(SByte8 &lhs, RValue<SByte8> rhs);
698 RValue<SByte8> operator^=(SByte8 &lhs, RValue<SByte8> rhs);
703 RValue<SByte8> operator~(RValue<SByte8> val);
709 RValue<SByte8> AddSat(RValue<SByte8> x, RValue<SByte8> y);
710 RValue<SByte8> SubSat(RValue<SByte8> x, RValue<SByte8> y);
711 RValue<Short4> UnpackLow(RValue<SByte8> x, RValue<SByte8> y);
712 RValue<Short4> UnpackHigh(RValue<SByte8> x, RValue<SByte8> y);
713 RValue<Int> SignMask(RValue<SByte8> x);
714 RValue<Byte8> CmpGT(RValue<SByte8> x, RValue<SByte8> y);
715 RValue<Byte8> CmpEQ(RValue<SByte8> x, RValue<SByte8> y);
721 Byte16(RValue<Byte16> rhs);
725 RValue<Byte16> operator=(RValue<Byte16> rhs);
726 RValue<Byte16> operator=(const Byte16 &rhs);
727 RValue<Byte16> operator=(const Reference<Byte16> &rhs);
759 RValue<Byte16> Swizzle(RValue<Byte16> x, uint64_t select);
808 explicit Short2(RValue<Short4> cast);
816 explicit UShort2(RValue<UShort4> cast);
824 explicit Short4(RValue<Int> cast);
825 explicit Short4(RValue<Int4> cast);
827 explicit Short4(RValue<Float4> cast);
832 Short4(RValue<Short4> rhs);
835 Short4(RValue<UShort4> rhs);
839 RValue<Short4> operator=(RValue<Short4> rhs);
840 RValue<Short4> operator=(const Short4 &rhs);
841 RValue<Short4> operator=(const Reference<Short4> &rhs);
842 RValue<Short4> operator=(RValue<UShort4> rhs);
843 RValue<Short4> operator=(const UShort4 &rhs);
844 RValue<Short4> operator=(const Reference<UShort4> &rhs);
849 RValue<Short4> operator+(RValue<Short4> lhs, RValue<Short4> rhs);
850 RValue<Short4> operator-(RValue<Short4> lhs, RValue<Short4> rhs);
851 RValue<Short4> operator*(RValue<Short4> lhs, RValue<Short4> rhs);
854 RValue<Short4> operator&(RValue<Short4> lhs, RValue<Short4> rhs);
855 RValue<Short4> operator|(RValue<Short4> lhs, RValue<Short4> rhs);
856 RValue<Short4> operator^(RValue<Short4> lhs, RValue<Short4> rhs);
857 RValue<Short4> operator<<(RValue<Short4> lhs, unsigned char rhs);
858 RValue<Short4> operator>>(RValue<Short4> lhs, unsigned char rhs);
859 RValue<Short4> operator+=(Short4 &lhs, RValue<Short4> rhs);
860 RValue<Short4> operator-=(Short4 &lhs, RValue<Short4> rhs);
861 RValue<Short4> operator*=(Short4 &lhs, RValue<Short4> rhs);
864 RValue<Short4> operator&=(Short4 &lhs, RValue<Short4> rhs);
865 RValue<Short4> operator|=(Short4 &lhs, RValue<Short4> rhs);
866 RValue<Short4> operator^=(Short4 &lhs, RValue<Short4> rhs);
867 RValue<Short4> operator<<=(Short4 &lhs, unsigned char rhs);
868 RValue<Short4> operator>>=(Short4 &lhs, unsigned char rhs);
870 RValue<Short4> operator-(RValue<Short4> val);
871 RValue<Short4> operator~(RValue<Short4> val);
883 RValue<Short4> RoundShort4(RValue<Float4> cast);
884 RValue<Short4> Max(RValue<Short4> x, RValue<Short4> y);
885 RValue<Short4> Min(RValue<Short4> x, RValue<Short4> y);
886 RValue<Short4> AddSat(RValue<Short4> x, RValue<Short4> y);
887 RValue<Short4> SubSat(RValue<Short4> x, RValue<Short4> y);
888 RValue<Short4> MulHigh(RValue<Short4> x, RValue<Short4> y);
889 RValue<Int2> MulAdd(RValue<Short4> x, RValue<Short4> y);
890 RValue<SByte8> PackSigned(RValue<Short4> x, RValue<Short4> y);
891 RValue<Byte8> PackUnsigned(RValue<Short4> x, RValue<Short4> y);
892 RValue<Int2> UnpackLow(RValue<Short4> x, RValue<Short4> y);
893 RValue<Int2> UnpackHigh(RValue<Short4> x, RValue<Short4> y);
894 RValue<Short4> Swizzle(RValue<Short4> x, uint16_t select);
895 RValue<Short4> Insert(RValue<Short4> val, RValue<Short> element, int i);
896 RValue<Short> Extract(RValue<Short4> val, int i);
897 RValue<Short4> CmpGT(RValue<Short4> x, RValue<Short4> y);
898 RValue<Short4> CmpEQ(RValue<Short4> x, RValue<Short4> y);
903 explicit UShort4(RValue<Int4> cast);
904 explicit UShort4(RValue<Float4> cast, bool saturate = false);
909 UShort4(RValue<UShort4> rhs);
912 UShort4(RValue<Short4> rhs);
916 RValue<UShort4> operator=(RValue<UShort4> rhs);
917 RValue<UShort4> operator=(const UShort4 &rhs);
918 RValue<UShort4> operator=(const Reference<UShort4> &rhs);
919 RValue<UShort4> operator=(RValue<Short4> rhs);
920 RValue<UShort4> operator=(const Short4 &rhs);
921 RValue<UShort4> operator=(const Reference<Short4> &rhs);
926 RValue<UShort4> operator+(RValue<UShort4> lhs, RValue<UShort4> rhs);
927 RValue<UShort4> operator-(RValue<UShort4> lhs, RValue<UShort4> rhs);
928 RValue<UShort4> operator*(RValue<UShort4> lhs, RValue<UShort4> rhs);
931 RValue<UShort4> operator&(RValue<UShort4> lhs, RValue<UShort4> rhs);
932 RValue<UShort4> operator|(RValue<UShort4> lhs, RValue<UShort4> rhs);
933 RValue<UShort4> operator^(RValue<UShort4> lhs, RValue<UShort4> rhs);
934 RValue<UShort4> operator<<(RValue<UShort4> lhs, unsigned char rhs);
935 RValue<UShort4> operator>>(RValue<UShort4> lhs, unsigned char rhs);
944 RValue<UShort4> operator<<=(UShort4 &lhs, unsigned char rhs);
945 RValue<UShort4> operator>>=(UShort4 &lhs, unsigned char rhs);
948 RValue<UShort4> operator~(RValue<UShort4> val);
954 RValue<UShort4> Max(RValue<UShort4> x, RValue<UShort4> y);
955 RValue<UShort4> Min(RValue<UShort4> x, RValue<UShort4> y);
956 RValue<UShort4> AddSat(RValue<UShort4> x, RValue<UShort4> y);
957 RValue<UShort4> SubSat(RValue<UShort4> x, RValue<UShort4> y);
958 RValue<UShort4> MulHigh(RValue<UShort4> x, RValue<UShort4> y);
959 RValue<UShort4> Average(RValue<UShort4> x, RValue<UShort4> y);
967 Short8(RValue<Short8> rhs);
970 Short8(RValue<Short4> lo, RValue<Short4> hi);
972 RValue<Short8> operator=(RValue<Short8> rhs);
973 RValue<Short8> operator=(const Short8 &rhs);
974 RValue<Short8> operator=(const Reference<Short8> &rhs);
979 RValue<Short8> operator+(RValue<Short8> lhs, RValue<Short8> rhs);
984 RValue<Short8> operator&(RValue<Short8> lhs, RValue<Short8> rhs);
987 RValue<Short8> operator<<(RValue<Short8> lhs, unsigned char rhs);
988 RValue<Short8> operator>>(RValue<Short8> lhs, unsigned char rhs);
1015 RValue<Short8> MulHigh(RValue<Short8> x, RValue<Short8> y);
1016 RValue<Int4> MulAdd(RValue<Short8> x, RValue<Short8> y);
1017 RValue<Int4> Abs(RValue<Int4> x);
1025 UShort8(RValue<UShort8> rhs);
1028 UShort8(RValue<UShort4> lo, RValue<UShort4> hi);
1030 RValue<UShort8> operator=(RValue<UShort8> rhs);
1031 RValue<UShort8> operator=(const UShort8 &rhs);
1032 RValue<UShort8> operator=(const Reference<UShort8> &rhs);
1037 RValue<UShort8> operator+(RValue<UShort8> lhs, RValue<UShort8> rhs);
1039 RValue<UShort8> operator*(RValue<UShort8> lhs, RValue<UShort8> rhs);
1042 RValue<UShort8> operator&(RValue<UShort8> lhs, RValue<UShort8> rhs);
1045 RValue<UShort8> operator<<(RValue<UShort8> lhs, unsigned char rhs);
1046 RValue<UShort8> operator>>(RValue<UShort8> lhs, unsigned char rhs);
1049 RValue<UShort8> operator+=(UShort8 &lhs, RValue<UShort8> rhs);
1061 RValue<UShort8> operator~(RValue<UShort8> val);
1073 RValue<UShort8> Swizzle(RValue<UShort8> x, uint32_t select);
1074 RValue<UShort8> MulHigh(RValue<UShort8> x, RValue<UShort8> y);
1081 explicit Int(RValue<Byte> cast);
1082 explicit Int(RValue<SByte> cast);
1083 explicit Int(RValue<Short> cast);
1084 explicit Int(RValue<UShort> cast);
1085 explicit Int(RValue<Int2> cast);
1086 explicit Int(RValue<Long> cast);
1087 explicit Int(RValue<Float> cast);
1091 Int(RValue<Int> rhs);
1092 Int(RValue<UInt> rhs);
1098 RValue<Int> operator=(int rhs);
1099 RValue<Int> operator=(RValue<Int> rhs);
1100 RValue<Int> operator=(RValue<UInt> rhs);
1101 RValue<Int> operator=(const Int &rhs);
1102 RValue<Int> operator=(const UInt &rhs);
1103 RValue<Int> operator=(const Reference<Int> &rhs);
1104 RValue<Int> operator=(const Reference<UInt> &rhs);
1109 RValue<Int> operator+(RValue<Int> lhs, RValue<Int> rhs);
1110 RValue<Int> operator-(RValue<Int> lhs, RValue<Int> rhs);
1111 RValue<Int> operator*(RValue<Int> lhs, RValue<Int> rhs);
1112 RValue<Int> operator/(RValue<Int> lhs, RValue<Int> rhs);
1113 RValue<Int> operator%(RValue<Int> lhs, RValue<Int> rhs);
1114 RValue<Int> operator&(RValue<Int> lhs, RValue<Int> rhs);
1115 RValue<Int> operator|(RValue<Int> lhs, RValue<Int> rhs);
1116 RValue<Int> operator^(RValue<Int> lhs, RValue<Int> rhs);
1117 RValue<Int> operator<<(RValue<Int> lhs, RValue<Int> rhs);
1118 RValue<Int> operator>>(RValue<Int> lhs, RValue<Int> rhs);
1119 RValue<Int> operator+=(Int &lhs, RValue<Int> rhs);
1120 RValue<Int> operator-=(Int &lhs, RValue<Int> rhs);
1121 RValue<Int> operator*=(Int &lhs, RValue<Int> rhs);
1122 RValue<Int> operator/=(Int &lhs, RValue<Int> rhs);
1123 RValue<Int> operator%=(Int &lhs, RValue<Int> rhs);
1124 RValue<Int> operator&=(Int &lhs, RValue<Int> rhs);
1125 RValue<Int> operator|=(Int &lhs, RValue<Int> rhs);
1126 RValue<Int> operator^=(Int &lhs, RValue<Int> rhs);
1127 RValue<Int> operator<<=(Int &lhs, RValue<Int> rhs);
1128 RValue<Int> operator>>=(Int &lhs, RValue<Int> rhs);
1129 RValue<Int> operator+(RValue<Int> val);
1130 RValue<Int> operator-(RValue<Int> val);
1131 RValue<Int> operator~(RValue<Int> val);
1132 RValue<Int> operator++(Int &val, int); // Post-increment
1134 RValue<Int> operator--(Int &val, int); // Post-decrement
1136 RValue<Bool> operator<(RValue<Int> lhs, RValue<Int> rhs);
1137 RValue<Bool> operator<=(RValue<Int> lhs, RValue<Int> rhs);
1138 RValue<Bool> operator>(RValue<Int> lhs, RValue<Int> rhs);
1139 RValue<Bool> operator>=(RValue<Int> lhs, RValue<Int> rhs);
1140 RValue<Bool> operator!=(RValue<Int> lhs, RValue<Int> rhs);
1141 RValue<Bool> operator==(RValue<Int> lhs, RValue<Int> rhs);
1143 RValue<Int> Max(RValue<Int> x, RValue<Int> y);
1144 RValue<Int> Min(RValue<Int> x, RValue<Int> y);
1145 RValue<Int> Clamp(RValue<Int> x, RValue<Int> min, RValue<Int> max);
1146 RValue<Int> RoundInt(RValue<Float> cast);
1155 explicit Long(RValue<Int> cast);
1156 explicit Long(RValue<UInt> cast);
1161 Long(RValue<Long> rhs);
1168 RValue<Long> operator=(int64_t rhs);
1169 RValue<Long> operator=(RValue<Long> rhs);
1171 RValue<Long> operator=(const Long &rhs);
1172 RValue<Long> operator=(const Reference<Long> &rhs);
1179 RValue<Long> operator+(RValue<Long> lhs, RValue<Long> rhs);
1180 RValue<Long> operator-(RValue<Long> lhs, RValue<Long> rhs);
1181 RValue<Long> operator*(RValue<Long> lhs, RValue<Long> rhs);
1188 RValue<Long> operator>>(RValue<Long> lhs, RValue<Long> rhs);
1189 RValue<Long> operator+=(Long &lhs, RValue<Long> rhs);
1190 RValue<Long> operator-=(Long &lhs, RValue<Long> rhs);
1214 RValue<Long> AddAtomic(RValue<Pointer<Long>> x, RValue<Long> y);
1221 explicit UInt(RValue<UShort> cast);
1222 explicit UInt(RValue<Long> cast);
1223 explicit UInt(RValue<Float> cast);
1228 UInt(RValue<UInt> rhs);
1229 UInt(RValue<Int> rhs);
1235 RValue<UInt> operator=(unsigned int rhs);
1236 RValue<UInt> operator=(RValue<UInt> rhs);
1237 RValue<UInt> operator=(RValue<Int> rhs);
1238 RValue<UInt> operator=(const UInt &rhs);
1239 RValue<UInt> operator=(const Int &rhs);
1240 RValue<UInt> operator=(const Reference<UInt> &rhs);
1241 RValue<UInt> operator=(const Reference<Int> &rhs);
1246 RValue<UInt> operator+(RValue<UInt> lhs, RValue<UInt> rhs);
1247 RValue<UInt> operator-(RValue<UInt> lhs, RValue<UInt> rhs);
1248 RValue<UInt> operator*(RValue<UInt> lhs, RValue<UInt> rhs);
1249 RValue<UInt> operator/(RValue<UInt> lhs, RValue<UInt> rhs);
1250 RValue<UInt> operator%(RValue<UInt> lhs, RValue<UInt> rhs);
1251 RValue<UInt> operator&(RValue<UInt> lhs, RValue<UInt> rhs);
1252 RValue<UInt> operator|(RValue<UInt> lhs, RValue<UInt> rhs);
1253 RValue<UInt> operator^(RValue<UInt> lhs, RValue<UInt> rhs);
1254 RValue<UInt> operator<<(RValue<UInt> lhs, RValue<UInt> rhs);
1255 RValue<UInt> operator>>(RValue<UInt> lhs, RValue<UInt> rhs);
1256 RValue<UInt> operator+=(UInt &lhs, RValue<UInt> rhs);
1257 RValue<UInt> operator-=(UInt &lhs, RValue<UInt> rhs);
1258 RValue<UInt> operator*=(UInt &lhs, RValue<UInt> rhs);
1259 RValue<UInt> operator/=(UInt &lhs, RValue<UInt> rhs);
1260 RValue<UInt> operator%=(UInt &lhs, RValue<UInt> rhs);
1261 RValue<UInt> operator&=(UInt &lhs, RValue<UInt> rhs);
1262 RValue<UInt> operator|=(UInt &lhs, RValue<UInt> rhs);
1263 RValue<UInt> operator^=(UInt &lhs, RValue<UInt> rhs);
1264 RValue<UInt> operator<<=(UInt &lhs, RValue<UInt> rhs);
1265 RValue<UInt> operator>>=(UInt &lhs, RValue<UInt> rhs);
1266 RValue<UInt> operator+(RValue<UInt> val);
1267 RValue<UInt> operator-(RValue<UInt> val);
1268 RValue<UInt> operator~(RValue<UInt> val);
1269 RValue<UInt> operator++(UInt &val, int); // Post-increment
1271 RValue<UInt> operator--(UInt &val, int); // Post-decrement
1273 RValue<Bool> operator<(RValue<UInt> lhs, RValue<UInt> rhs);
1274 RValue<Bool> operator<=(RValue<UInt> lhs, RValue<UInt> rhs);
1275 RValue<Bool> operator>(RValue<UInt> lhs, RValue<UInt> rhs);
1276 RValue<Bool> operator>=(RValue<UInt> lhs, RValue<UInt> rhs);
1277 RValue<Bool> operator!=(RValue<UInt> lhs, RValue<UInt> rhs);
1278 RValue<Bool> operator==(RValue<UInt> lhs, RValue<UInt> rhs);
1280 RValue<UInt> Max(RValue<UInt> x, RValue<UInt> y);
1281 RValue<UInt> Min(RValue<UInt> x, RValue<UInt> y);
1282 RValue<UInt> Clamp(RValue<UInt> x, RValue<UInt> min, RValue<UInt> max);
1284 RValue<UInt> AddAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1285 RValue<UInt> SubAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1286 RValue<UInt> AndAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1287 RValue<UInt> OrAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1288 RValue<UInt> XorAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1289 RValue<Int> MinAtomic(RValue<Pointer<Int>> x, RValue<Int> y, std::memory_order memoryOrder);
1290 RValue<Int> MaxAtomic(RValue<Pointer<Int>> x, RValue<Int> y, std::memory_order memoryOrder);
1291 RValue<UInt> MinAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1292 RValue<UInt> MaxAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1293 RValue<UInt> ExchangeAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, std::memory_order memoryOrder);
1294 RValue<UInt> CompareExchangeAtomic(RValue<Pointer<UInt>> x, RValue<UInt> y, RValue<UInt> compare, s…
1302 explicit Int2(RValue<Int4> cast);
1306 Int2(RValue<Int2> rhs);
1309 Int2(RValue<Int> lo, RValue<Int> hi);
1311 RValue<Int2> operator=(RValue<Int2> rhs);
1312 RValue<Int2> operator=(const Int2 &rhs);
1313 RValue<Int2> operator=(const Reference<Int2> &rhs);
1318 RValue<Int2> operator+(RValue<Int2> lhs, RValue<Int2> rhs);
1319 RValue<Int2> operator-(RValue<Int2> lhs, RValue<Int2> rhs);
1323 RValue<Int2> operator&(RValue<Int2> lhs, RValue<Int2> rhs);
1324 RValue<Int2> operator|(RValue<Int2> lhs, RValue<Int2> rhs);
1325 RValue<Int2> operator^(RValue<Int2> lhs, RValue<Int2> rhs);
1326 RValue<Int2> operator<<(RValue<Int2> lhs, unsigned char rhs);
1327 RValue<Int2> operator>>(RValue<Int2> lhs, unsigned char rhs);
1328 RValue<Int2> operator+=(Int2 &lhs, RValue<Int2> rhs);
1329 RValue<Int2> operator-=(Int2 &lhs, RValue<Int2> rhs);
1333 RValue<Int2> operator&=(Int2 &lhs, RValue<Int2> rhs);
1334 RValue<Int2> operator|=(Int2 &lhs, RValue<Int2> rhs);
1335 RValue<Int2> operator^=(Int2 &lhs, RValue<Int2> rhs);
1336 RValue<Int2> operator<<=(Int2 &lhs, unsigned char rhs);
1337 RValue<Int2> operator>>=(Int2 &lhs, unsigned char rhs);
1340 RValue<Int2> operator~(RValue<Int2> val);
1353 RValue<Short4> UnpackLow(RValue<Int2> x, RValue<Int2> y);
1354 RValue<Short4> UnpackHigh(RValue<Int2> x, RValue<Int2> y);
1355 RValue<Int> Extract(RValue<Int2> val, int i);
1356 RValue<Int2> Insert(RValue<Int2> val, RValue<Int> element, int i);
1363 UInt2(RValue<UInt2> rhs);
1367 RValue<UInt2> operator=(RValue<UInt2> rhs);
1368 RValue<UInt2> operator=(const UInt2 &rhs);
1369 RValue<UInt2> operator=(const Reference<UInt2> &rhs);
1374 RValue<UInt2> operator+(RValue<UInt2> lhs, RValue<UInt2> rhs);
1375 RValue<UInt2> operator-(RValue<UInt2> lhs, RValue<UInt2> rhs);
1379 RValue<UInt2> operator&(RValue<UInt2> lhs, RValue<UInt2> rhs);
1380 RValue<UInt2> operator|(RValue<UInt2> lhs, RValue<UInt2> rhs);
1381 RValue<UInt2> operator^(RValue<UInt2> lhs, RValue<UInt2> rhs);
1382 RValue<UInt2> operator<<(RValue<UInt2> lhs, unsigned char rhs);
1383 RValue<UInt2> operator>>(RValue<UInt2> lhs, unsigned char rhs);
1384 RValue<UInt2> operator+=(UInt2 &lhs, RValue<UInt2> rhs);
1385 RValue<UInt2> operator-=(UInt2 &lhs, RValue<UInt2> rhs);
1389 RValue<UInt2> operator&=(UInt2 &lhs, RValue<UInt2> rhs);
1390 RValue<UInt2> operator|=(UInt2 &lhs, RValue<UInt2> rhs);
1391 RValue<UInt2> operator^=(UInt2 &lhs, RValue<UInt2> rhs);
1392 RValue<UInt2> operator<<=(UInt2 &lhs, unsigned char rhs);
1393 RValue<UInt2> operator>>=(UInt2 &lhs, unsigned char rhs);
1396 RValue<UInt2> operator~(RValue<UInt2> val);
1409 RValue<UInt> Extract(RValue<UInt2> val, int i);
1410 RValue<UInt2> Insert(RValue<UInt2> val, RValue<UInt> element, int i);
1424 operator RValue<Vector4>() const;
1434 operator RValue<Vector4>() const;
1446 operator RValue<Vector4>() const;
1448 RValue<Vector4> operator=(RValue<Vector4> rhs);
1449 RValue<Vector4> operator=(RValue<typename Scalar<Vector4>::Type> rhs);
1477 operator RValue<typename Scalar<Vector4>::Type>() const;
1478 operator RValue<Vector4>() const;
1480 RValue<Vector4> operator=(float x);
1481 RValue<Vector4> operator=(RValue<Vector4> rhs);
1482 RValue<Vector4> operator=(RValue<typename Scalar<Vector4>::Type> rhs);
1494 operator RValue<Vector4>() const;
1496 RValue<Vector4> operator=(RValue<Vector4> rhs);
1862 explicit Int4(RValue<Byte4> cast);
1863 explicit Int4(RValue<SByte4> cast);
1864 explicit Int4(RValue<Float4> cast);
1865 explicit Int4(RValue<Short4> cast);
1866 explicit Int4(RValue<UShort4> cast);
1873 Int4(RValue<Int4> rhs);
1876 Int4(RValue<UInt4> rhs);
1879 Int4(RValue<Int2> lo, RValue<Int2> hi);
1880 Int4(RValue<Int> rhs);
1884 RValue<Int4> operator=(RValue<Int4> rhs);
1885 RValue<Int4> operator=(const Int4 &rhs);
1886 RValue<Int4> operator=(const Reference<Int4> &rhs);
1894 RValue<Int4> operator+(RValue<Int4> lhs, RValue<Int4> rhs);
1895 RValue<Int4> operator-(RValue<Int4> lhs, RValue<Int4> rhs);
1896 RValue<Int4> operator*(RValue<Int4> lhs, RValue<Int4> rhs);
1897 RValue<Int4> operator/(RValue<Int4> lhs, RValue<Int4> rhs);
1898 RValue<Int4> operator%(RValue<Int4> lhs, RValue<Int4> rhs);
1899 RValue<Int4> operator&(RValue<Int4> lhs, RValue<Int4> rhs);
1900 RValue<Int4> operator|(RValue<Int4> lhs, RValue<Int4> rhs);
1901 RValue<Int4> operator^(RValue<Int4> lhs, RValue<Int4> rhs);
1902 RValue<Int4> operator<<(RValue<Int4> lhs, unsigned char rhs);
1903 RValue<Int4> operator>>(RValue<Int4> lhs, unsigned char rhs);
1904 RValue<Int4> operator<<(RValue<Int4> lhs, RValue<Int4> rhs);
1905 RValue<Int4> operator>>(RValue<Int4> lhs, RValue<Int4> rhs);
1906 RValue<Int4> operator+=(Int4 &lhs, RValue<Int4> rhs);
1907 RValue<Int4> operator-=(Int4 &lhs, RValue<Int4> rhs);
1908 RValue<Int4> operator*=(Int4 &lhs, RValue<Int4> rhs);
1911 RValue<Int4> operator&=(Int4 &lhs, RValue<Int4> rhs);
1912 RValue<Int4> operator|=(Int4 &lhs, RValue<Int4> rhs);
1913 RValue<Int4> operator^=(Int4 &lhs, RValue<Int4> rhs);
1914 RValue<Int4> operator<<=(Int4 &lhs, unsigned char rhs);
1915 RValue<Int4> operator>>=(Int4 &lhs, unsigned char rhs);
1916 RValue<Int4> operator+(RValue<Int4> val);
1917 RValue<Int4> operator-(RValue<Int4> val);
1918 RValue<Int4> operator~(RValue<Int4> val);
1930 inline RValue<Int4> operator+(RValue<Int> lhs, RValue<Int4> rhs) in operator +()
1935 inline RValue<Int4> operator+(RValue<Int4> lhs, RValue<Int> rhs) in operator +()
1940 RValue<Int4> CmpEQ(RValue<Int4> x, RValue<Int4> y);
1941 RValue<Int4> CmpLT(RValue<Int4> x, RValue<Int4> y);
1942 RValue<Int4> CmpLE(RValue<Int4> x, RValue<Int4> y);
1943 RValue<Int4> CmpNEQ(RValue<Int4> x, RValue<Int4> y);
1944 RValue<Int4> CmpNLT(RValue<Int4> x, RValue<Int4> y);
1945 RValue<Int4> CmpNLE(RValue<Int4> x, RValue<Int4> y);
1946 inline RValue<Int4> CmpGT(RValue<Int4> x, RValue<Int4> y) in CmpGT()
1950 inline RValue<Int4> CmpGE(RValue<Int4> x, RValue<Int4> y) in CmpGE()
1954 RValue<Int4> Max(RValue<Int4> x, RValue<Int4> y);
1955 RValue<Int4> Min(RValue<Int4> x, RValue<Int4> y);
1956 RValue<Int4> RoundInt(RValue<Float4> cast);
1957 RValue<Short8> PackSigned(RValue<Int4> x, RValue<Int4> y);
1958 RValue<UShort8> PackUnsigned(RValue<Int4> x, RValue<Int4> y);
1959 RValue<Int> Extract(RValue<Int4> val, int i);
1960 RValue<Int4> Insert(RValue<Int4> val, RValue<Int> element, int i);
1961 RValue<Int> SignMask(RValue<Int4> x);
1962 RValue<Int4> Swizzle(RValue<Int4> x, uint16_t select);
1963 RValue<Int4> Shuffle(RValue<Int4> x, RValue<Int4> y, uint16_t select);
1964 RValue<Int4> MulHigh(RValue<Int4> x, RValue<Int4> y);
1969 explicit UInt4(RValue<Float4> cast);
1976 UInt4(RValue<UInt4> rhs);
1979 UInt4(RValue<Int4> rhs);
1982 UInt4(RValue<UInt2> lo, RValue<UInt2> hi);
1983 UInt4(RValue<UInt> rhs);
1987 RValue<UInt4> operator=(RValue<UInt4> rhs);
1988 RValue<UInt4> operator=(const UInt4 &rhs);
1989 RValue<UInt4> operator=(const Reference<UInt4> &rhs);
1997 RValue<UInt4> operator+(RValue<UInt4> lhs, RValue<UInt4> rhs);
1998 RValue<UInt4> operator-(RValue<UInt4> lhs, RValue<UInt4> rhs);
1999 RValue<UInt4> operator*(RValue<UInt4> lhs, RValue<UInt4> rhs);
2000 RValue<UInt4> operator/(RValue<UInt4> lhs, RValue<UInt4> rhs);
2001 RValue<UInt4> operator%(RValue<UInt4> lhs, RValue<UInt4> rhs);
2002 RValue<UInt4> operator&(RValue<UInt4> lhs, RValue<UInt4> rhs);
2003 RValue<UInt4> operator|(RValue<UInt4> lhs, RValue<UInt4> rhs);
2004 RValue<UInt4> operator^(RValue<UInt4> lhs, RValue<UInt4> rhs);
2005 RValue<UInt4> operator<<(RValue<UInt4> lhs, unsigned char rhs);
2006 RValue<UInt4> operator>>(RValue<UInt4> lhs, unsigned char rhs);
2007 RValue<UInt4> operator<<(RValue<UInt4> lhs, RValue<UInt4> rhs);
2008 RValue<UInt4> operator>>(RValue<UInt4> lhs, RValue<UInt4> rhs);
2009 RValue<UInt4> operator+=(UInt4 &lhs, RValue<UInt4> rhs);
2010 RValue<UInt4> operator-=(UInt4 &lhs, RValue<UInt4> rhs);
2011 RValue<UInt4> operator*=(UInt4 &lhs, RValue<UInt4> rhs);
2014 RValue<UInt4> operator&=(UInt4 &lhs, RValue<UInt4> rhs);
2015 RValue<UInt4> operator|=(UInt4 &lhs, RValue<UInt4> rhs);
2016 RValue<UInt4> operator^=(UInt4 &lhs, RValue<UInt4> rhs);
2017 RValue<UInt4> operator<<=(UInt4 &lhs, unsigned char rhs);
2018 RValue<UInt4> operator>>=(UInt4 &lhs, unsigned char rhs);
2019 RValue<UInt4> operator+(RValue<UInt4> val);
2020 RValue<UInt4> operator-(RValue<UInt4> val);
2021 RValue<UInt4> operator~(RValue<UInt4> val);
2033 RValue<UInt4> CmpEQ(RValue<UInt4> x, RValue<UInt4> y);
2034 RValue<UInt4> CmpLT(RValue<UInt4> x, RValue<UInt4> y);
2035 RValue<UInt4> CmpLE(RValue<UInt4> x, RValue<UInt4> y);
2036 RValue<UInt4> CmpNEQ(RValue<UInt4> x, RValue<UInt4> y);
2037 RValue<UInt4> CmpNLT(RValue<UInt4> x, RValue<UInt4> y);
2038 RValue<UInt4> CmpNLE(RValue<UInt4> x, RValue<UInt4> y);
2039 inline RValue<UInt4> CmpGT(RValue<UInt4> x, RValue<UInt4> y) in CmpGT()
2043 inline RValue<UInt4> CmpGE(RValue<UInt4> x, RValue<UInt4> y) in CmpGE()
2047 RValue<UInt4> Max(RValue<UInt4> x, RValue<UInt4> y);
2048 RValue<UInt4> Min(RValue<UInt4> x, RValue<UInt4> y);
2049 RValue<UInt4> MulHigh(RValue<UInt4> x, RValue<UInt4> y);
2050 RValue<UInt> Extract(RValue<UInt4> val, int i);
2051 RValue<UInt4> Insert(RValue<UInt4> val, RValue<UInt> element, int i);
2053 RValue<UInt4> Swizzle(RValue<UInt4> x, uint16_t select);
2054 RValue<UInt4> Shuffle(RValue<UInt4> x, RValue<UInt4> y, uint16_t select);
2059 explicit Half(RValue<Float> cast);
2067 explicit Float(RValue<Int> cast);
2068 explicit Float(RValue<UInt> cast);
2069 explicit Float(RValue<Half> cast);
2073 Float(RValue<Float> rhs);
2082 RValue<Float> operator=(RValue<Float> rhs);
2083 RValue<Float> operator=(const Float &rhs);
2084 RValue<Float> operator=(const Reference<Float> &rhs);
2087 RValue<Float> operator=(const SwizzleMask1<Float4, T> &rhs);
2094 RValue<Float> operator+(RValue<Float> lhs, RValue<Float> rhs);
2095 RValue<Float> operator-(RValue<Float> lhs, RValue<Float> rhs);
2096 RValue<Float> operator*(RValue<Float> lhs, RValue<Float> rhs);
2097 RValue<Float> operator/(RValue<Float> lhs, RValue<Float> rhs);
2098 RValue<Float> operator+=(Float &lhs, RValue<Float> rhs);
2099 RValue<Float> operator-=(Float &lhs, RValue<Float> rhs);
2100 RValue<Float> operator*=(Float &lhs, RValue<Float> rhs);
2101 RValue<Float> operator/=(Float &lhs, RValue<Float> rhs);
2102 RValue<Float> operator+(RValue<Float> val);
2103 RValue<Float> operator-(RValue<Float> val);
2104 RValue<Bool> operator<(RValue<Float> lhs, RValue<Float> rhs);
2105 RValue<Bool> operator<=(RValue<Float> lhs, RValue<Float> rhs);
2106 RValue<Bool> operator>(RValue<Float> lhs, RValue<Float> rhs);
2107 RValue<Bool> operator>=(RValue<Float> lhs, RValue<Float> rhs);
2108 RValue<Bool> operator!=(RValue<Float> lhs, RValue<Float> rhs);
2109 RValue<Bool> operator==(RValue<Float> lhs, RValue<Float> rhs);
2111 RValue<Float> Abs(RValue<Float> x);
2112 RValue<Float> Max(RValue<Float> x, RValue<Float> y);
2113 RValue<Float> Min(RValue<Float> x, RValue<Float> y);
2114 RValue<Float> Rcp_pp(RValue<Float> val, bool exactAtPow2 = false);
2115 RValue<Float> RcpSqrt_pp(RValue<Float> val);
2116 RValue<Float> Sqrt(RValue<Float> x);
2120 RValue<Float> Round(RValue<Float> x);
2121 RValue<Float> Trunc(RValue<Float> x);
2122 RValue<Float> Frac(RValue<Float> x);
2123 RValue<Float> Floor(RValue<Float> x);
2124 RValue<Float> Ceil(RValue<Float> x);
2147 RValue<Float> Exp2(RValue<Float> x);
2148 RValue<Float> Log2(RValue<Float> x);
2158 explicit Float2(RValue<Float4> cast);
2208 explicit Float4(RValue<Byte4> cast);
2209 explicit Float4(RValue<SByte4> cast);
2210 explicit Float4(RValue<Short4> cast);
2211 explicit Float4(RValue<UShort4> cast);
2212 explicit Float4(RValue<Int4> cast);
2213 explicit Float4(RValue<UInt4> cast);
2220 Float4(RValue<Float4> rhs);
2223 Float4(RValue<Float> rhs);
2240 RValue<Float4> operator=(float replicate);
2241 RValue<Float4> operator=(RValue<Float4> rhs);
2242 RValue<Float4> operator=(const Float4 &rhs);
2243 RValue<Float4> operator=(const Reference<Float4> &rhs);
2244 RValue<Float4> operator=(RValue<Float> rhs);
2245 RValue<Float4> operator=(const Float &rhs);
2246 RValue<Float4> operator=(const Reference<Float> &rhs);
2249 RValue<Float4> operator=(const SwizzleMask1<Float4, T> &rhs);
2251 RValue<Float4> operator=(const Swizzle4<Float4, T> &rhs);
2261 RValue<Float4> operator+(RValue<Float4> lhs, RValue<Float4> rhs);
2262 RValue<Float4> operator-(RValue<Float4> lhs, RValue<Float4> rhs);
2263 RValue<Float4> operator*(RValue<Float4> lhs, RValue<Float4> rhs);
2264 RValue<Float4> operator/(RValue<Float4> lhs, RValue<Float4> rhs);
2265 RValue<Float4> operator%(RValue<Float4> lhs, RValue<Float4> rhs);
2266 RValue<Float4> operator+=(Float4 &lhs, RValue<Float4> rhs);
2267 RValue<Float4> operator-=(Float4 &lhs, RValue<Float4> rhs);
2268 RValue<Float4> operator*=(Float4 &lhs, RValue<Float4> rhs);
2269 RValue<Float4> operator/=(Float4 &lhs, RValue<Float4> rhs);
2270 RValue<Float4> operator%=(Float4 &lhs, RValue<Float4> rhs);
2271 RValue<Float4> operator+(RValue<Float4> val);
2272 RValue<Float4> operator-(RValue<Float4> val);
2274 RValue<Float4> Abs(RValue<Float4> x);
2275 RValue<Float4> Max(RValue<Float4> x, RValue<Float4> y);
2276 RValue<Float4> Min(RValue<Float4> x, RValue<Float4> y);
2277 RValue<Float4> Rcp_pp(RValue<Float4> val, bool exactAtPow2 = false);
2278 RValue<Float4> RcpSqrt_pp(RValue<Float4> val);
2279 RValue<Float4> Sqrt(RValue<Float4> x);
2280 RValue<Float4> Insert(RValue<Float4> val, RValue<Float> element, int i);
2281 RValue<Float> Extract(RValue<Float4> x, int i);
2282 RValue<Float4> Swizzle(RValue<Float4> x, uint16_t select);
2283 RValue<Float4> Shuffle(RValue<Float4> x, RValue<Float4> y, uint16_t select);
2284 RValue<Float4> ShuffleLowHigh(RValue<Float4> x, RValue<Float4> y, uint16_t imm);
2285 RValue<Float4> UnpackLow(RValue<Float4> x, RValue<Float4> y);
2286 RValue<Float4> UnpackHigh(RValue<Float4> x, RValue<Float4> y);
2287 RValue<Float4> Mask(Float4 &lhs, RValue<Float4> rhs, uint16_t select);
2288 RValue<Int> SignMask(RValue<Float4> x);
2291 RValue<Int4> CmpEQ(RValue<Float4> x, RValue<Float4> y);
2292 RValue<Int4> CmpLT(RValue<Float4> x, RValue<Float4> y);
2293 RValue<Int4> CmpLE(RValue<Float4> x, RValue<Float4> y);
2294 RValue<Int4> CmpNEQ(RValue<Float4> x, RValue<Float4> y);
2295 RValue<Int4> CmpNLT(RValue<Float4> x, RValue<Float4> y);
2296 RValue<Int4> CmpNLE(RValue<Float4> x, RValue<Float4> y);
2297 inline RValue<Int4> CmpGT(RValue<Float4> x, RValue<Float4> y) in CmpGT()
2301 inline RValue<Int4> CmpGE(RValue<Float4> x, RValue<Float4> y) in CmpGE()
2307 RValue<Int4> CmpUEQ(RValue<Float4> x, RValue<Float4> y);
2308 RValue<Int4> CmpULT(RValue<Float4> x, RValue<Float4> y);
2309 RValue<Int4> CmpULE(RValue<Float4> x, RValue<Float4> y);
2310 RValue<Int4> CmpUNEQ(RValue<Float4> x, RValue<Float4> y);
2311 RValue<Int4> CmpUNLT(RValue<Float4> x, RValue<Float4> y);
2312 RValue<Int4> CmpUNLE(RValue<Float4> x, RValue<Float4> y);
2313 inline RValue<Int4> CmpUGT(RValue<Float4> x, RValue<Float4> y) in CmpUGT()
2317 inline RValue<Int4> CmpUGE(RValue<Float4> x, RValue<Float4> y) in CmpUGE()
2322 RValue<Int4> IsInf(RValue<Float4> x);
2323 RValue<Int4> IsNan(RValue<Float4> x);
2324 RValue<Float4> Round(RValue<Float4> x);
2325 RValue<Float4> Trunc(RValue<Float4> x);
2326 RValue<Float4> Frac(RValue<Float4> x);
2327 RValue<Float4> Floor(RValue<Float4> x);
2328 RValue<Float4> Ceil(RValue<Float4> x);
2332 RValue<Float4> Sin(RValue<Float4> x);
2333 RValue<Float4> Cos(RValue<Float4> x);
2334 RValue<Float4> Tan(RValue<Float4> x);
2335 RValue<Float4> Asin(RValue<Float4> x);
2336 RValue<Float4> Acos(RValue<Float4> x);
2337 RValue<Float4> Atan(RValue<Float4> x);
2338 RValue<Float4> Sinh(RValue<Float4> x);
2339 RValue<Float4> Cosh(RValue<Float4> x);
2340 RValue<Float4> Tanh(RValue<Float4> x);
2341 RValue<Float4> Asinh(RValue<Float4> x);
2342 RValue<Float4> Acosh(RValue<Float4> x);
2343 RValue<Float4> Atanh(RValue<Float4> x);
2344 RValue<Float4> Atan2(RValue<Float4> x, RValue<Float4> y);
2348 RValue<Float4> Pow(RValue<Float4> x, RValue<Float4> y);
2349 RValue<Float4> Exp(RValue<Float4> x);
2350 RValue<Float4> Log(RValue<Float4> x);
2351 RValue<Float4> Exp2(RValue<Float4> x);
2352 RValue<Float4> Log2(RValue<Float4> x);
2360 RValue<UInt> Ctlz(RValue<UInt> x, bool isZeroUndef);
2361 RValue<UInt4> Ctlz(RValue<UInt4> x, bool isZeroUndef);
2366 RValue<UInt> Cttz(RValue<UInt> x, bool isZeroUndef);
2367 RValue<UInt4> Cttz(RValue<UInt4> x, bool isZeroUndef);
2374 Pointer(RValue<Pointer<S>> pointerS, int alignment = 1) in Pointer()
2393 Pointer(RValue<Pointer<T>> rhs);
2398 RValue<Pointer<T>> operator=(RValue<Pointer<T>> rhs);
2399 RValue<Pointer<T>> operator=(const Pointer<T> &rhs);
2400 RValue<Pointer<T>> operator=(const Reference<Pointer<T>> &rhs);
2401 RValue<Pointer<T>> operator=(std::nullptr_t);
2406 Reference<T> operator[](RValue<Int> index);
2407 Reference<T> operator[](RValue<UInt> index);
2415 RValue<Pointer<Byte>> operator+(RValue<Pointer<Byte>> lhs, int offset);
2416 RValue<Pointer<Byte>> operator+(RValue<Pointer<Byte>> lhs, RValue<Int> offset);
2417 RValue<Pointer<Byte>> operator+(RValue<Pointer<Byte>> lhs, RValue<UInt> offset);
2418 RValue<Pointer<Byte>> operator+=(Pointer<Byte> &lhs, int offset);
2419 RValue<Pointer<Byte>> operator+=(Pointer<Byte> &lhs, RValue<Int> offset);
2420 RValue<Pointer<Byte>> operator+=(Pointer<Byte> &lhs, RValue<UInt> offset);
2422 RValue<Pointer<Byte>> operator-(RValue<Pointer<Byte>> lhs, int offset);
2423 RValue<Pointer<Byte>> operator-(RValue<Pointer<Byte>> lhs, RValue<Int> offset);
2424 RValue<Pointer<Byte>> operator-(RValue<Pointer<Byte>> lhs, RValue<UInt> offset);
2425 RValue<Pointer<Byte>> operator-=(Pointer<Byte> &lhs, int offset);
2426 RValue<Pointer<Byte>> operator-=(Pointer<Byte> &lhs, RValue<Int> offset);
2427 RValue<Pointer<Byte>> operator-=(Pointer<Byte> &lhs, RValue<UInt> offset);
2430 RValue<Bool> operator==(const Pointer<T> &lhs, const Pointer<T> &rhs) in operator ==()
2432 return RValue<Bool>(Nucleus::createPtrEQ(lhs.loadValue(), rhs.loadValue())); in operator ==()
2436 RValue<T> Load(RValue<Pointer<T>> pointer, unsigned int alignment, bool atomic, std::memory_order m… in Load()
2438 …return RValue<T>(Nucleus::createLoad(pointer.value, T::getType(), false, alignment, atomic, memory… in Load()
2442 RValue<T> Load(Pointer<T> pointer, unsigned int alignment, bool atomic, std::memory_order memoryOrd… in Load()
2444 return Load(RValue<Pointer<T>>(pointer), alignment, atomic, memoryOrder); in Load()
2448 RValue<Float4> MaskedLoad(RValue<Pointer<Float4>> base, RValue<Int4> mask, unsigned int alignment, …
2449 RValue<Int4> MaskedLoad(RValue<Pointer<Int4>> base, RValue<Int4> mask, unsigned int alignment, bool…
2450 void MaskedStore(RValue<Pointer<Float4>> base, RValue<Float4> val, RValue<Int4> mask, unsigned int …
2451 void MaskedStore(RValue<Pointer<Int4>> base, RValue<Int4> val, RValue<Int4> mask, unsigned int alig…
2453 RValue<Float4> Gather(RValue<Pointer<Float>> base, RValue<Int4> offsets, RValue<Int4> mask, unsigne…
2454 RValue<Int4> Gather(RValue<Pointer<Int>> base, RValue<Int4> offsets, RValue<Int4> mask, unsigned in…
2455 void Scatter(RValue<Pointer<Float>> base, RValue<Float4> val, RValue<Int4> offsets, RValue<Int4> ma…
2456 void Scatter(RValue<Pointer<Int>> base, RValue<Int4> val, RValue<Int4> offsets, RValue<Int4> mask, …
2459 void Store(RValue<T> value, RValue<Pointer<T>> pointer, unsigned int alignment, bool atomic, std::m… in Store()
2465 void Store(RValue<T> value, Pointer<T> pointer, unsigned int alignment, bool atomic, std::memory_or… in Store()
2467 Store(value, RValue<Pointer<T>>(pointer), alignment, atomic, memoryOrder); in Store()
2473 Store(RValue<T>(value), RValue<Pointer<T>>(pointer), alignment, atomic, memoryOrder); in Store()
2490 Reference<T> operator[](RValue<Int> index);
2491 Reference<T> operator[](RValue<UInt> index);
2503 void branch(RValue<Bool> cmp, BasicBlock *bodyBB, BasicBlock *endBB);
2593 RValue<Long> Ticks();
2666 RValue<Pointer<T>> LValue<T>::operator&() in operator &()
2668 return RValue<Pointer<T>>(getBaseAddress()); in operator &()
2679 RValue<T> Reference<T>::operator=(RValue<T> rhs) const in operator =()
2687 RValue<T> Reference<T>::operator=(const Reference<T> &ref) const in operator =()
2692 return RValue<T>(tmp); in operator =()
2696 RValue<T> Reference<T>::operator+=(RValue<T> rhs) const in operator +=()
2715 RValue<T>::RValue(const RValue<T> &rvalue) in RValue() function in rr::RValue
2723 RValue<T>::RValue(Value *rvalue) in RValue() function in rr::RValue
2732 RValue<T>::RValue(const T &lvalue) in RValue() function in rr::RValue
2739 RValue<T>::RValue(typename BoolLiteral<T>::type i) in RValue() function in rr::RValue
2746 RValue<T>::RValue(typename IntLiteral<T>::type i) in RValue() function in rr::RValue
2753 RValue<T>::RValue(typename FloatLiteral<T>::type f) in RValue() function in rr::RValue
2760 RValue<T>::RValue(const Reference<T> &ref) in RValue() function in rr::RValue
2767 Swizzle2<Vector4, T>::operator RValue<Vector4>() const in operator RValue<Vector4>()
2772 return Swizzle(RValue<Vector4>(vector), T); in operator RValue<Vector4>()
2776 Swizzle4<Vector4, T>::operator RValue<Vector4>() const in operator RValue<Vector4>()
2781 return Swizzle(RValue<Vector4>(vector), T); in operator RValue<Vector4>()
2785 SwizzleMask4<Vector4, T>::operator RValue<Vector4>() const in operator RValue<Vector4>()
2790 return Swizzle(RValue<Vector4>(vector), T); in operator RValue<Vector4>()
2794 RValue<Vector4> SwizzleMask4<Vector4, T>::operator=(RValue<Vector4> rhs) in operator =()
2801 RValue<Vector4> SwizzleMask4<Vector4, T>::operator=(RValue<typename Scalar<Vector4>::Type> rhs) in operator =()
2808 SwizzleMask1<Vector4, T>::operator RValue<typename Scalar<Vector4>::Type>() const // FIXME: Call a… in operator RValue<typename Scalar<Vector4>::Type>()
2815 SwizzleMask1<Vector4, T>::operator RValue<Vector4>() const in operator RValue<Vector4>()
2820 return Swizzle(RValue<Vector4>(vector), T); in operator RValue<Vector4>()
2824 RValue<Vector4> SwizzleMask1<Vector4, T>::operator=(float x) in operator =()
2831 RValue<Vector4> SwizzleMask1<Vector4, T>::operator=(RValue<Vector4> rhs) in operator =()
2838 RValue<Vector4> SwizzleMask1<Vector4, T>::operator=(RValue<typename Scalar<Vector4>::Type> rhs) //… in operator =()
2845 SwizzleMask2<Vector4, T>::operator RValue<Vector4>() const in operator RValue<Vector4>()
2850 return Swizzle(RValue<Float4>(vector), T); in operator RValue<Vector4>()
2854 RValue<Vector4> SwizzleMask2<Vector4, T>::operator=(RValue<Vector4> rhs) in operator =()
2863 *this = rhs.operator RValue<Float>(); in Float()
2867 RValue<Float> Float::operator=(const SwizzleMask1<Float4, T> &rhs) in operator =()
2869 return *this = rhs.operator RValue<Float>(); in operator =()
2876 *this = rhs.operator RValue<Float4>(); in Float4()
2883 *this = rhs.operator RValue<Float4>(); in Float4()
2919 RValue<Float4> Float4::operator=(const SwizzleMask1<Float4, T> &rhs) in operator =()
2921 return *this = rhs.operator RValue<Float4>(); in operator =()
2925 RValue<Float4> Float4::operator=(const Swizzle4<Float4, T> &rhs) in operator =()
2927 return *this = rhs.operator RValue<Float4>(); in operator =()
2931 RValue<Pointer<Byte>> ConstantPointer(void const *ptr);
2934 RValue<Pointer<Byte>> ConstantData(void const *data, size_t size);
2949 Pointer<T>::Pointer(RValue<Pointer<T>> rhs) in Pointer()
2980 RValue<Pointer<T>> Pointer<T>::operator=(RValue<Pointer<T>> rhs) in operator =()
2988 RValue<Pointer<T>> Pointer<T>::operator=(const Pointer<T> &rhs) in operator =()
2993 return RValue<Pointer<T>>(value); in operator =()
2997 RValue<Pointer<T>> Pointer<T>::operator=(const Reference<Pointer<T>> &rhs) in operator =()
3002 return RValue<Pointer<T>>(value); in operator =()
3006 RValue<Pointer<T>> Pointer<T>::operator=(std::nullptr_t) in operator =()
3011 return RValue<Pointer<T>>(this); in operator =()
3039 Reference<T> Pointer<T>::operator[](RValue<Int> index) in operator []()
3048 Reference<T> Pointer<T>::operator[](RValue<UInt> index) in operator []()
3087 Reference<T> Array<T, S>::operator[](RValue<Int> index) in operator []()
3095 Reference<T> Array<T, S>::operator[](RValue<UInt> index) in operator []()
3127 RValue<T> IfThenElse(RValue<Bool> condition, RValue<T> ifTrue, RValue<T> ifFalse) in IfThenElse()
3130 return RValue<T>(Nucleus::createSelect(condition.value, ifTrue.value, ifFalse.value)); in IfThenElse()
3134 RValue<T> IfThenElse(RValue<Bool> condition, const T &ifTrue, RValue<T> ifFalse) in IfThenElse()
3139 return RValue<T>(Nucleus::createSelect(condition.value, trueValue, ifFalse.value)); in IfThenElse()
3143 RValue<T> IfThenElse(RValue<Bool> condition, RValue<T> ifTrue, const T &ifFalse) in IfThenElse()
3148 return RValue<T>(Nucleus::createSelect(condition.value, ifTrue.value, falseValue)); in IfThenElse()
3152 RValue<T> IfThenElse(RValue<Bool> condition, const T &ifTrue, const T &ifFalse) in IfThenElse()
3158 return RValue<T>(Nucleus::createSelect(condition.value, trueValue, falseValue)); in IfThenElse()
3211 RValue<T> ReinterpretCast(RValue<S> val) in ReinterpretCast()
3214 return RValue<T>(Nucleus::createBitCast(val.value, T::getType())); in ReinterpretCast()
3218 RValue<T> ReinterpretCast(const LValue<S> &var) in ReinterpretCast()
3223 return RValue<T>(Nucleus::createBitCast(val, T::getType())); in ReinterpretCast()
3227 RValue<T> ReinterpretCast(const Reference<S> &var) in ReinterpretCast()
3229 return ReinterpretCast<T>(RValue<S>(var)); in ReinterpretCast()
3233 RValue<T> As(Value *val) in As()
3236 return RValue<T>(Nucleus::createBitCast(val, T::getType())); in As()
3240 RValue<T> As(RValue<S> val) in As()
3246 RValue<T> As(const LValue<S> &var) in As()
3252 RValue<T> As(const Reference<S> &val) in As()
3260 Value *Call(RValue<Pointer<Byte>> fptr, Type *retTy, std::initializer_list<Value *> args, std::init…
3274 return RValue<RReturn>(rr::Call( in Call()
3283 return RValue<RReturn>(rr::Call( in Call()
3426 bool test(RValue<Bool> cmp) in test()
3452 IfElseData(RValue<Bool> cmp) in IfElseData()