Revert "Add integer relational ops to sksl_public."

This reverts commit b476981949.

Reason for revert: https://logs.chromium.org/logs/skia/507fb79e5cf79811/+/steps/dm/0/stdout

Original change's description:
> Add integer relational ops to sksl_public.
>
> These aren't implemented yet in the software rasterizer, but work
> properly on GPU and serve as a good end-to-end test for skia:10999.
>
> Change-Id: I1dac66cd5762ebde828e819c1b6890016599672e
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344036
> Auto-Submit: John Stiles <johnstiles@google.com>
> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
> Reviewed-by: Ethan Nicholas <ethannicholas@google.com>

TBR=brianosman@google.com,ethannicholas@google.com,johnstiles@google.com

Change-Id: Ic9ace24c3f0ea764b2720bffa50792a136d452ef
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/344558
Reviewed-by: Ethan Nicholas <ethannicholas@google.com>
Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
This commit is contained in:
Ethan Nicholas 2020-12-15 15:07:13 +00:00 committed by Skia Commit-Bot
parent b476981949
commit 1ad5445100
3 changed files with 168 additions and 366 deletions

View File

@ -277,9 +277,8 @@ static SkString make_bvec_sksl(const char* fn) {
return SkStringPrintf(
"half4 main(float2 p) {"
" float2 v1 = float2(1.0);"
" p = floor(p * 3);"
" int2 i = int2(p);"
" uint2 u = uint2(p);"
" p.x = p.x < 0.33 ? 0.0 : (p.x < 0.66 ? 1.0 : 2.0);"
" p.y = p.y < 0.33 ? 0.0 : (p.y < 0.66 ? 1.0 : 2.0);"
" bool2 cmp = %s;"
" return half4(cmp.x ? 1.0 : 0.0, cmp.y ? 1.0 : 0.0, 0, 1);"
"}",
@ -332,53 +331,36 @@ static void plot_bvec(SkCanvas* canvas, const char* fn, const char* label = null
}
canvas->restore();
col(canvas);
}
// The OpenGL ES Shading Language, Version 1.00, Section 8.6
DEF_SIMPLE_GM_BG(runtime_intrinsics_relational,
canvas,
columns_to_width(6),
columns_to_width(2),
rows_to_height(6),
SK_ColorWHITE) {
canvas->translate(kPadding, kPadding);
canvas->save();
// TODO: ivec relational support is missing from the software rasterizer.
// TODO: ivec versions of these. (Not declared in sksl_public.sksl yet).
plot_bvec(canvas, "lessThan(p, v1)", "lessThan(f)");
plot_bvec(canvas, "lessThan(i, v1)", "lessThan(i)");
plot_bvec(canvas, "lessThan(u, v1)", "lessThan(u)");
plot_bvec(canvas, "lessThanEqual(p, v1)", "lessThanEqual(f)");
plot_bvec(canvas, "lessThanEqual(i, v1)", "lessThanEqual(i)");
plot_bvec(canvas, "lessThanEqual(u, v1)", "lessThanEqual(u)");
row(canvas);
plot_bvec(canvas, "lessThan(p, v1)", "lessThan"); col(canvas);
plot_bvec(canvas, "lessThanEqual(p, v1)", "lessThanEqual"); row(canvas);
plot_bvec(canvas, "greaterThan(p, v1)", "greaterThan(f)");
plot_bvec(canvas, "greaterThan(i, v1)", "greaterThan(i)");
plot_bvec(canvas, "greaterThan(u, v1)", "greaterThan(u)");
plot_bvec(canvas, "greaterThanEqual(p, v1)", "greaterThanEqual(f)");
plot_bvec(canvas, "greaterThanEqual(i, v1)", "greaterThanEqual(i)");
plot_bvec(canvas, "greaterThanEqual(u, v1)", "greaterThanEqual(u)");
row(canvas);
plot_bvec(canvas, "greaterThan(p, v1)", "greaterThan"); col(canvas);
plot_bvec(canvas, "greaterThanEqual(p, v1)", "greaterThanEqual"); row(canvas);
plot_bvec(canvas, "equal(p, v1)", "equal(f)");
plot_bvec(canvas, "equal(i, v1)", "equal(i)");
plot_bvec(canvas, "equal(u, v1)", "equal(u)");
plot_bvec(canvas, "notEqual(p, v1)", "notEqual(f)");
plot_bvec(canvas, "notEqual(i, v1)", "notEqual(i)");
plot_bvec(canvas, "notEqual(u, v1)", "notEqual(u)");
row(canvas);
plot_bvec(canvas, "equal(p, v1)", "equal"); col(canvas);
plot_bvec(canvas, "notEqual(p, v1)", "notEqual"); row(canvas);
plot_bvec(canvas, "equal(lessThanEqual(p, v1), greaterThanEqual(p, v1))", "equal(bvec)");
plot_bvec(canvas, "notEqual(lessThanEqual(p, v1), greaterThanEqual(p, v1))", "notequal(bvec)");
row(canvas);
plot_bvec(canvas, "equal(lessThanEqual(p, v1), greaterThanEqual(p, v1))",
"equal(bvec)"); col(canvas);
plot_bvec(canvas, "notEqual(lessThanEqual(p, v1), greaterThanEqual(p, v1))",
"notequal(bvec)"); row(canvas);
plot_bvec(canvas, "not(notEqual(p, v1))", "not(notEqual)");
plot_bvec(canvas, "not(equal(p, v1))", "not(equal)");
row(canvas);
plot_bvec(canvas, "not(notEqual(p, v1))", "not(notEqual)"); col(canvas);
plot_bvec(canvas, "not(equal(p, v1))", "not(equal)"); row(canvas);
plot_bvec(canvas, "bool2(any(equal(p, v1)))", "any(equal)");
plot_bvec(canvas, "bool2(all(equal(p, v1)))", "all(equal)");
row(canvas);
plot_bvec(canvas, "bool2(any(equal(p, v1)))", "any(equal)"); col(canvas);
plot_bvec(canvas, "bool2(all(equal(p, v1)))", "all(equal)"); row(canvas);
}

View File

@ -1,4 +1,4 @@
static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
static uint8_t SKSL_INCLUDE_sksl_public[] = {45,2,
3,100,101,103,
5,102,108,111,97,116,
7,114,97,100,105,97,110,115,
@ -73,8 +73,6 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
8,108,101,115,115,84,104,97,110,
5,36,98,118,101,99,
5,36,104,118,101,99,
5,36,105,118,101,99,
5,36,117,118,101,99,
13,108,101,115,115,84,104,97,110,69,113,117,97,108,
11,103,114,101,97,116,101,114,84,104,97,110,
16,103,114,101,97,116,101,114,84,104,97,110,69,113,117,97,108,
@ -90,7 +88,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
14,117,110,112,114,101,109,117,108,95,102,108,111,97,116,
1,107,
5,104,97,108,102,51,
44,193,1,
44,145,1,
48,1,0,
9,2,0,
45,2,0,6,0,3,
@ -1199,335 +1197,169 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
42,108,1,
48,109,1,
9,90,0,
45,110,1,184,1,3,
48,111,1,
42,100,1,3,
48,110,1,
9,102,0,
42,110,1,3,
47,112,1,3,
42,102,1,
42,108,1,
23,113,1,
9,163,1,2,109,1,111,1,
42,100,1,3,
23,111,1,
9,184,1,2,109,1,110,1,
42,103,1,
42,113,1,
48,114,1,
48,112,1,
9,90,0,
45,115,1,190,1,3,
48,116,1,
42,105,1,3,
48,113,1,
9,102,0,
42,115,1,3,
47,117,1,4,
42,102,1,
42,108,1,
42,113,1,
23,118,1,
9,163,1,2,114,1,116,1,
42,105,1,3,
47,114,1,2,
42,111,1,
23,115,1,
9,184,1,2,112,1,113,1,
42,103,1,
42,115,1,
48,116,1,
9,90,0,
42,100,1,3,
48,117,1,
9,102,0,
42,100,1,3,
23,118,1,
9,198,1,2,116,1,117,1,
42,103,1,
42,118,1,
48,119,1,
9,90,0,
42,100,1,3,
42,105,1,3,
48,120,1,
9,102,0,
42,100,1,3,
23,121,1,
9,196,1,2,119,1,120,1,
42,103,1,
48,122,1,
9,90,0,
42,105,1,3,
47,121,1,2,
42,118,1,
23,122,1,
9,198,1,2,119,1,120,1,
42,103,1,
42,122,1,
48,123,1,
9,90,0,
42,100,1,3,
48,124,1,
9,102,0,
42,105,1,3,
47,124,1,2,
42,121,1,
42,100,1,3,
23,125,1,
9,196,1,2,122,1,123,1,
9,210,1,2,123,1,124,1,
42,103,1,
42,125,1,
48,126,1,
9,90,0,
42,110,1,3,
42,105,1,3,
48,127,1,
9,102,0,
42,110,1,3,
47,128,1,3,
42,121,1,
42,105,1,3,
47,128,1,2,
42,125,1,
23,129,1,
9,196,1,2,126,1,127,1,
9,210,1,2,126,1,127,1,
42,103,1,
42,129,1,
48,130,1,
9,90,0,
42,115,1,3,
42,100,1,3,
48,131,1,
9,102,0,
42,115,1,3,
47,132,1,4,
42,121,1,
42,125,1,
42,129,1,
23,133,1,
9,196,1,2,130,1,131,1,
42,100,1,3,
23,132,1,
9,227,1,2,130,1,131,1,
42,103,1,
42,133,1,
48,134,1,
48,133,1,
9,90,0,
42,100,1,3,
48,135,1,
42,105,1,3,
48,134,1,
9,102,0,
42,100,1,3,
42,105,1,3,
47,135,1,2,
42,132,1,
23,136,1,
9,210,1,2,134,1,135,1,
9,227,1,2,133,1,134,1,
42,103,1,
42,136,1,
48,137,1,
9,90,0,
42,105,1,3,
42,103,1,3,
48,138,1,
9,102,0,
42,105,1,3,
47,139,1,2,
42,103,1,3,
47,139,1,3,
42,132,1,
42,136,1,
23,140,1,
9,210,1,2,137,1,138,1,
9,227,1,2,137,1,138,1,
42,103,1,
42,140,1,
48,141,1,
9,90,0,
42,110,1,3,
42,100,1,3,
48,142,1,
9,102,0,
42,110,1,3,
47,143,1,3,
42,136,1,
42,140,1,
23,144,1,
9,210,1,2,141,1,142,1,
42,100,1,3,
23,143,1,
9,233,1,2,141,1,142,1,
42,103,1,
42,144,1,
48,144,1,
9,90,0,
42,105,1,3,
48,145,1,
9,90,0,
42,115,1,3,
48,146,1,
9,102,0,
42,115,1,3,
47,147,1,4,
42,136,1,
42,140,1,
42,144,1,
23,148,1,
9,210,1,2,145,1,146,1,
42,105,1,3,
47,146,1,2,
42,143,1,
23,147,1,
9,233,1,2,144,1,145,1,
42,103,1,
42,148,1,
42,147,1,
48,148,1,
9,90,0,
42,103,1,3,
48,149,1,
9,90,0,
42,100,1,3,
48,150,1,
9,102,0,
42,100,1,3,
42,103,1,3,
47,150,1,3,
42,143,1,
42,147,1,
23,151,1,
9,222,1,2,149,1,150,1,
9,233,1,2,148,1,149,1,
42,103,1,
42,151,1,
48,152,1,
9,90,0,
42,105,1,3,
48,153,1,
9,102,0,
42,105,1,3,
47,154,1,2,
42,151,1,
23,155,1,
9,222,1,2,152,1,153,1,
42,103,1,
42,155,1,
48,156,1,
42,103,1,3,
23,153,1,
9,242,1,1,152,1,
45,154,1,246,1,
48,155,1,
9,90,0,
42,110,1,3,
42,103,1,3,
23,156,1,
9,251,1,1,155,1,
42,154,1,
48,157,1,
9,102,0,
42,110,1,3,
47,158,1,3,
42,151,1,
42,155,1,
23,159,1,
9,222,1,2,156,1,157,1,
42,103,1,
42,159,1,
48,160,1,
9,90,0,
42,115,1,3,
48,161,1,
9,102,0,
42,115,1,3,
47,162,1,4,
42,151,1,
42,155,1,
42,159,1,
23,163,1,
9,222,1,2,160,1,161,1,
42,103,1,
42,163,1,
48,164,1,
9,90,0,
42,100,1,3,
48,165,1,
9,102,0,
42,100,1,3,
23,166,1,
9,239,1,2,164,1,165,1,
42,103,1,
48,167,1,
9,90,0,
42,105,1,3,
48,168,1,
9,102,0,
42,105,1,3,
47,169,1,2,
42,166,1,
23,170,1,
9,239,1,2,167,1,168,1,
42,103,1,
42,170,1,
48,171,1,
9,90,0,
42,110,1,3,
48,172,1,
9,102,0,
42,110,1,3,
47,173,1,3,
42,166,1,
42,170,1,
23,174,1,
9,239,1,2,171,1,172,1,
42,103,1,
42,174,1,
48,175,1,
9,90,0,
42,115,1,3,
48,176,1,
9,102,0,
42,115,1,3,
47,177,1,4,
42,166,1,
42,170,1,
42,174,1,
23,178,1,
9,239,1,2,175,1,176,1,
42,103,1,
42,178,1,
48,179,1,
9,90,0,
42,103,1,3,
48,180,1,
9,102,0,
42,103,1,3,
47,181,1,5,
42,166,1,
42,170,1,
42,174,1,
42,178,1,
23,182,1,
9,239,1,2,179,1,180,1,
23,158,1,
9,255,1,1,157,1,
42,103,1,
42,182,1,
48,183,1,
9,90,0,
42,100,1,3,
48,184,1,
9,102,0,
42,100,1,3,
23,185,1,
9,245,1,2,183,1,184,1,
42,103,1,
48,186,1,
9,90,0,
42,105,1,3,
48,187,1,
9,102,0,
42,105,1,3,
47,188,1,2,
42,185,1,
23,189,1,
9,245,1,2,186,1,187,1,
42,103,1,
42,189,1,
48,190,1,
9,90,0,
42,110,1,3,
48,191,1,
9,102,0,
42,110,1,3,
47,192,1,3,
42,185,1,
42,189,1,
23,193,1,
9,245,1,2,190,1,191,1,
42,103,1,
42,193,1,
48,194,1,
9,90,0,
42,115,1,3,
48,195,1,
9,102,0,
42,115,1,3,
47,196,1,4,
42,185,1,
42,189,1,
42,193,1,
23,197,1,
9,245,1,2,194,1,195,1,
42,103,1,
42,197,1,
48,198,1,
9,90,0,
42,103,1,3,
48,199,1,
9,102,0,
42,103,1,3,
47,200,1,5,
42,185,1,
42,189,1,
42,193,1,
42,197,1,
23,201,1,
9,245,1,2,198,1,199,1,
42,103,1,
42,201,1,
48,202,1,
9,90,0,
42,103,1,3,
23,203,1,
9,254,1,1,202,1,
45,204,1,2,2,
48,205,1,
9,90,0,
42,103,1,3,
23,206,1,
9,7,2,1,205,1,
42,204,1,
48,207,1,
9,90,0,
42,103,1,3,
23,208,1,
9,11,2,1,207,1,
42,103,1,
48,209,1,
9,15,2,
45,210,1,21,2,3,
23,211,1,
9,27,2,1,209,1,
42,210,1,
48,212,1,
9,15,2,
48,159,1,
9,3,2,
45,160,1,9,2,3,
23,161,1,
9,15,2,1,159,1,
42,160,1,
48,162,1,
9,3,2,
42,13,0,3,
23,213,1,
9,36,2,1,212,1,
23,163,1,
9,24,2,1,162,1,
42,13,0,48,0,
100,0,
45,0,
186,1,
184,1,
138,1,
136,1,
40,0,
58,0,
115,0,
@ -1537,19 +1369,19 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
20,0,
254,0,
5,1,
162,1,
122,1,
70,0,
80,0,
32,1,
110,0,
120,0,
128,1,
143,1,
104,1,
111,1,
83,1,
95,0,
247,0,
98,1,
113,1,
90,1,
97,1,
75,0,
85,0,
165,0,
@ -1557,8 +1389,8 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
208,0,
135,0,
13,1,
188,1,
181,1,
140,1,
133,1,
65,0,
9,0,
47,1,
@ -1570,8 +1402,8 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
90,0,
223,0,
35,0,
190,1,
192,1,
142,1,
144,1,
12,
22,3,0,
2,
@ -1705,7 +1537,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
51,24,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
51,23,1,0,
35,58,
51,23,1,0,1,0,
@ -1721,7 +1553,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
51,28,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
51,27,1,0,
35,58,
51,27,1,0,1,0,
@ -1737,7 +1569,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
51,33,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
51,32,1,0,
35,58,
51,32,1,0,1,0,
@ -1753,7 +1585,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
51,38,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
51,37,1,0,
35,58,
51,37,1,0,1,0,
@ -1832,11 +1664,11 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
22,60,1,
2,
44,1,0,
48,214,1,
9,51,2,
48,164,1,
9,39,2,
42,2,0,2,1,0,
0,0,2,
49,214,1,
49,164,1,
42,2,0,0,
1,
19,
@ -1865,10 +1697,10 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
36,
46,
1,
51,214,1,0,79,
51,164,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
19,
42,2,0,0,0,0,0,
1,
@ -1887,7 +1719,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
42,2,0,57,
21,
42,2,0,95,0,1,
51,214,1,0,
51,164,1,0,
42,2,0,59,
51,58,1,0,
42,2,0,
@ -1895,11 +1727,11 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
22,65,1,
2,
44,1,0,
48,215,1,
9,51,2,
48,165,1,
9,39,2,
42,2,0,2,1,0,
0,0,2,
49,215,1,
49,165,1,
42,2,0,0,
1,
19,
@ -1928,10 +1760,10 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
36,
46,
1,
51,215,1,0,79,
51,165,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
6,
42,5,0,1,
19,
@ -1952,7 +1784,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
42,2,0,57,
21,
42,2,0,95,0,1,
51,215,1,0,
51,165,1,0,
42,2,0,59,
51,62,1,0,
42,5,0,
@ -1960,11 +1792,11 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
22,70,1,
2,
44,1,0,
48,216,1,
9,51,2,
48,166,1,
9,39,2,
42,2,0,2,1,0,
0,0,2,
49,216,1,
49,166,1,
42,2,0,0,
1,
19,
@ -1993,10 +1825,10 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
36,
46,
1,
51,216,1,0,79,
51,166,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
6,
42,9,0,1,
19,
@ -2017,7 +1849,7 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
42,2,0,57,
21,
42,2,0,95,0,1,
51,216,1,0,
51,166,1,0,
42,2,0,59,
51,67,1,0,
42,9,0,
@ -2025,11 +1857,11 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
22,75,1,
2,
44,1,0,
48,217,1,
9,51,2,
48,167,1,
9,39,2,
42,2,0,2,1,0,
0,0,2,
49,217,1,
49,167,1,
42,2,0,0,
1,
19,
@ -2058,10 +1890,10 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
36,
46,
1,
51,217,1,0,79,
51,167,1,0,79,
19,
42,2,0,0,0,0,0,
42,204,1,
42,154,1,
6,
42,13,0,1,
19,
@ -2082,30 +1914,30 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
42,2,0,57,
21,
42,2,0,95,0,1,
51,217,1,0,
51,167,1,0,
42,2,0,59,
51,72,1,0,
42,13,0,
42,13,0,1,0,
22,211,1,
22,161,1,
2,
44,0,0,0,0,1,
36,
6,
42,210,1,2,
42,160,1,2,
1,
41,
51,209,1,0,3,0,1,2,60,
51,159,1,0,3,0,1,2,60,
21,
42,138,0,170,0,2,
41,
51,209,1,0,1,3,
51,159,1,0,1,3,
19,
42,138,0,23,183,209,56,
45,218,1,53,2,
45,168,1,41,2,
41,
51,209,1,0,1,3,1,0,
22,213,1,
51,159,1,0,1,3,1,0,
22,163,1,
2,
44,0,0,0,0,1,
36,
@ -2113,15 +1945,15 @@ static uint8_t SKSL_INCLUDE_sksl_public[] = {57,2,
42,13,0,2,
1,
41,
51,212,1,0,3,0,1,2,60,
51,162,1,0,3,0,1,2,60,
21,
42,2,0,162,0,2,
41,
51,212,1,0,1,3,
51,162,1,0,1,3,
19,
42,2,0,23,183,209,56,
42,9,0,
41,
51,212,1,0,1,3,1,0,
51,162,1,0,1,3,1,0,
13,};
static constexpr size_t SKSL_INCLUDE_sksl_public_LENGTH = sizeof(SKSL_INCLUDE_sksl_public);

View File

@ -152,29 +152,17 @@ half4x4 inverse(half4x4 m);
// 8.6 : Vector Relational Functions
$bvec lessThan($vec x, $vec y);
$bvec lessThan($hvec x, $hvec y);
$bvec lessThan($ivec x, $ivec y);
$bvec lessThan($uvec x, $uvec y);
$bvec lessThanEqual($vec x, $vec y);
$bvec lessThanEqual($hvec x, $hvec y);
$bvec lessThanEqual($ivec x, $ivec y);
$bvec lessThanEqual($uvec x, $uvec y);
$bvec greaterThan($vec x, $vec y);
$bvec greaterThan($hvec x, $hvec y);
$bvec greaterThan($ivec x, $ivec y);
$bvec greaterThan($uvec x, $uvec y);
$bvec greaterThanEqual($vec x, $vec y);
$bvec greaterThanEqual($hvec x, $hvec y);
$bvec greaterThanEqual($ivec x, $ivec y);
$bvec greaterThanEqual($uvec x, $uvec y);
$bvec equal($vec x, $vec y);
$bvec equal($hvec x, $hvec y);
$bvec equal($ivec x, $ivec y);
$bvec equal($uvec x, $uvec y);
$bvec equal($bvec x, $bvec y);
$bvec notEqual($vec x, $vec y);
$bvec notEqual($hvec x, $hvec y);
$bvec notEqual($ivec x, $ivec y);
$bvec notEqual($uvec x, $uvec y);
$bvec notEqual($bvec x, $bvec y);
bool any($bvec x);