123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290 |
- using System;
- using Burst.Compiler.IL.Tests.Helpers;
- using NUnit.Framework;
- using Unity.Mathematics;
-
- namespace Burst.Compiler.IL.Tests
- {
- internal partial class VectorsBinOpInt4
- {
- [TestCompiler]
- public static int Add()
- {
- var left = new int4(1);
- var right = new int4(1, 2, 3, 4);
- var result = left + right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int AddIntRight()
- {
- var left = new int4(1);
- var right = 2;
- var result = left + right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int AddIntLeft()
- {
- var left = 2;
- var right = new int4(1);
- var result = left + right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int AddByArgs(ref int4 left, ref int4 right)
- {
- var result = left + right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int Sub()
- {
- var left = new int4(1);
- var right = new int4(1, 2, 3, 4);
- var result = left - right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int SubIntLeft()
- {
- var left = 2;
- var right = new int4(1, 2, 3, 4);
- var result = left - right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int SubIntRight()
- {
- var left = new int4(1, 2, 3, 4);
- var right = 2;
- var result = left - right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int SubByArgs(ref int4 left, ref int4 right)
- {
- var result = left - right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int Mul()
- {
- var left = new int4(2, 1, 3, 5);
- var right = new int4(1, 2, 3, 4);
- var result = left * right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int MulIntLeft()
- {
- var left = 2;
- var right = new int4(1, 2, 3, 4);
- var result = left * right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int MulIntRight()
- {
- var left = new int4(1, 2, 3, 4);
- var right = 2;
- var result = left * right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int MulByArgs(ref int4 left, ref int4 right)
- {
- var result = left * right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int Div()
- {
- var left = new int4(1, 2, 3, 4);
- var right = new int4(2, 1, 3, 5);
- var result = left / right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int DivIntLeft()
- {
- var left = 15;
- var right = new int4(2, 1, 3, 5);
- var result = left / right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int DivIntRight()
- {
- var left = new int4(2, 1, 3, 5);
- var right = 15;
- var result = left / right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int LeftShift()
- {
- var left = new int4(2, 1, 3, 5);
- var right = 15;
- var result = left << right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int RightShift()
- {
- var left = new int4(2, -17, 3, Int32.MinValue);
- var right = 31;
- var result = left >> right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard & ~DataRange.Zero)]
- public static int DivByArgs(ref int4 left, ref int4 right)
- {
- var result = left / right;
- return Vectors.ConvertToInt(result);
- }
-
- [TestCompiler]
- public static int Neg()
- {
- var left = new int4(1, 2, 3, 4);
- return Vectors.ConvertToInt((-left));
- }
-
- [TestCompiler]
- public static int Positive()
- {
- var left = new int4(1, 2, 3, 4);
- return Vectors.ConvertToInt((+left));
- }
-
- // Comparisons
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int Equality(int a, int b)
- {
- return Vectors.ConvertToInt(new int4(a) == new int4(b));
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int EqualityInt4(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a == b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int Inequality(int a, int b)
- {
- return Vectors.ConvertToInt(new int4(a) != new int4(b));
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int InequalityInt4(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a != b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int GreaterThan(int a, int b)
- {
- return Vectors.ConvertToInt(new int4(a) > new int4(b));
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int GreaterThanInt4(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a > b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int GreaterThanOrEqual(int a, int b)
- {
- return Vectors.ConvertToInt(new int4(a) >= new int4(b));
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int GreaterThanOrEqualInt4(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a >= b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int LessThan(int a, int b)
- {
- return Vectors.ConvertToInt(new int4(a) < new int4(b));
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int LessThanInt4(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a < b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int LessThanOrEqual(int a, int b)
- {
- return Vectors.ConvertToInt(new int4(a) <= new int4(b));
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int LessThanOrEqualInt4(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a <= b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int And(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a & b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int Or(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a | b);
- }
-
- [TestCompiler(DataRange.Standard, DataRange.Standard)]
- public static int Xor(ref int4 a, ref int4 b)
- {
- return Vectors.ConvertToInt(a ^ b);
- }
-
- [TestCompiler(DataRange.Standard)]
- public static int ImplicitBitwiseNot(int a)
- {
- // Let int -> int4 implicit conversion
- return Vectors.ConvertToInt(~(int4) a);
- }
-
- [TestCompiler(DataRange.Standard)]
- public static int ImplicitInt(int a)
- {
- // Let int -> int4 implicit conversion
- return Vectors.ConvertToInt((int4) a);
- }
-
- [TestCompiler(DataRange.Standard)]
- public static int ImplicitInt4(ref int4 a)
- {
- // Let int4 -> int4 implicit conversion
- return Vectors.ConvertToInt(a);
- }
- }
- }
|