diff --git a/Intrinsics_Reference/ch_vec_reference.xml b/Intrinsics_Reference/ch_vec_reference.xml
index f0d54f2..d142c0e 100644
--- a/Intrinsics_Reference/ch_vec_reference.xml
+++ b/Intrinsics_Reference/ch_vec_reference.xml
@@ -13612,7 +13612,6 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
r = vec_first_match_index (a, b)
- GCC 8.1 implementation is broken!
Purpose:
Performs a comparison of equality on each of the corresponding
elements of a and
None.
+
+ vcmpnezb
+ vec_first_match_index
+
+
+ vcmpnezh
+ vec_first_match_index
+
+
+ vcmpnezw
+ vec_first_match_index
+
+
+ xxlnor
+ vec_first_match_index
+
+
+ vctzlsbb
+ vec_first_match_index
+
+
+ vclzlsbb
+ vec_first_match_index
+
+
+ rldicl
+ vec_first_match_index
+
+
Supported type signatures for vec_first_match_index
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
r
@@ -13641,16 +13670,21 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
- ARG1
+ a
- ARG2
+ b
- Example Implementation
+ Example LE
+ Implementation
+
+
+ Example BE
+ Implementation
Restrictions
@@ -13669,7 +13703,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed char
- sample implementation TBD
+
+ vcmpnezb t,a,b
+ xxlnor u,t,t
+ vctzlsbb r,u
+
+
+
+
+ vcmpnezb t,a,b
+ xxlnor u,t,t
+ vclzlsbb r,u
+
ISA 3.0 or later
@@ -13686,7 +13731,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned char
- sample implementation TBD
+
+ vcmpnezb t,a,b
+ xxlnor u,t,t
+ vctzlsbb r,u
+
+
+
+
+ vcmpnezb t,a,b
+ xxlnor u,t,t
+ vclzlsbb r,u
+
ISA 3.0 or later
@@ -13703,7 +13759,20 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed int
- sample implementation TBD
+
+ vcmpnezw t,a,b
+ xxlnor u,t,t
+ vctzlsbb v,u
+ rldicl r,v,62,34
+
+
+
+
+ vcmpnezw t,a,b
+ xxlnor u,t,t
+ vclzlsbb v,u
+ rldicl r,v,62,34
+
ISA 3.0 or later
@@ -13720,7 +13789,20 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned int
- sample implementation TBD
+
+ vcmpnezw t,a,b
+ xxlnor u,t,t
+ vctzlsbb v,u
+ rldicl r,v,62,34
+
+
+
+
+ vcmpnezw t,a,b
+ xxlnor u,t,t
+ vclzlsbb v,u
+ rldicl r,v,62,34
+
ISA 3.0 or later
@@ -13737,7 +13819,20 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed short
- sample implementation TBD
+
+ vcmpnezh t,a,b
+ xxlnor u,t,t
+ vctzlsbb v,u
+ rldicl r,v,63,33
+
+
+
+
+ vcmpnezh t,a,b
+ xxlnor u,t,t
+ vclzlsbb v,u
+ rldicl r,v,63,33
+
ISA 3.0 or later
@@ -13754,7 +13849,20 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned short
- sample implementation TBD
+
+ vcmpnezh t,a,b
+ xxlnor u,t,t
+ vctzlsbb v,u
+ rldicl r,v,63,33
+
+
+
+
+ vcmpnezh t,a,b
+ xxlnor u,t,t
+ vclzlsbb v,u
+ rldicl r,v,63,33
+
ISA 3.0 or later
@@ -13771,28 +13879,84 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vec_first_match_or_eos_index
Vector Index of First Match or End of String
- r = vec_first_match_or_eos_index (ARG1, ARG2)
+ r = vec_first_match_or_eos_index (a, b)
- GCC 8.1 implementation is broken!
Purpose:
- Performs a comparison of equality on each of the corresponding elements of ARG1 and ARG2. Returns the first position of equality, or the zero string terminator.
-
- Result value: Returns the element index of the position of either the first character match or an end-of-string (EOS) terminator. If no match or terminator, returns the number of characters as an element count in the vector argument.
+ Performs a comparison of equality on each of the corresponding
+ elements of a and b. Returns the first position of
+ equality, or the zero string terminator.
+
+ Result value: Returns the
+ element index of the position of either the first character
+ match or an end-of-string (EOS) terminator. If no match or
+ terminator, returns the number of characters as an element count
+ in the vector argument.
Endian considerations:
None.
+
+ xxspltib
+ vec_first_match_or_eos_index
+
+
+ vcmpneb
+ vec_first_match_or_eos_index
+
+
+ vcmpnezb
+ vec_first_match_or_eos_index
+
+
+ vcmpneh
+ vec_first_match_or_eos_index
+
+
+ vcmpnezh
+ vec_first_match_or_eos_index
+
+
+ vcmpnew
+ vec_first_match_or_eos_index
+
+
+ vcmpnezw
+ vec_first_match_or_eos_index
+
+
+ xxland
+ vec_first_match_or_eos_index
+
+
+ xxlnand
+ vec_first_match_or_eos_index
+
+
+ vctzlsbb
+ vec_first_match_or_eos_index
+
+
+ vclzlsbb
+ vec_first_match_or_eos_index
+
+
+ rldicl
+ vec_first_match_or_eos_index
+
+
Supported type signatures for vec_first_match_or_eos_index
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
r
@@ -13800,16 +13964,21 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
- ARG1
+ a
- ARG2
+ b
- Example Implementation
+ Example LE
+ Implementation
+
+
+ Example BE
+ Implementation
Restrictions
@@ -13828,7 +13997,26 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed char
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vctzlsbb r,y
+
+
+
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vclzlsbb r,y
+
ISA 3.0 or later
@@ -13845,7 +14033,26 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned char
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vctzlsbb r,y
+
+
+
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vclzlsbb r,y
+
ISA 3.0 or later
@@ -13862,7 +14069,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed int
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vctzlsbb z,y
+ rldicl r,z,62,34
+
+
+
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vclzlsbb z,y
+ rldicl r,z,62,34
+
ISA 3.0 or later
@@ -13879,7 +14107,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned int
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vctzlsbb z,y
+ rldicl r,z,62,34
+
+
+
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vclzlsbb z,y
+ rldicl r,z,62,34
+
ISA 3.0 or later
@@ -13896,7 +14145,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed short
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vctzlsbb z,y
+ rldicl r,z,63,33
+
+
+
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vclzlsbb z,y
+ rldicl r,z,63,33
+
ISA 3.0 or later
@@ -13913,7 +14183,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned short
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vctzlsbb z,y
+ rldicl r,z,63,33
+
+
+
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlnand y,x,w
+ vclzlsbb z,y
+ rldicl r,z,63,33
+
ISA 3.0 or later
@@ -13930,28 +14221,59 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vec_first_mismatch_index
Vector Index of First Mismatch
- r = vec_first_mismatch_index (ARG1, ARG2)
+ r = vec_first_mismatch_index (a, b)
- GCC 8.1 implementation is broken!
Purpose:
- Performs a comparison of inequality on each of the corresponding elements of ARG1 and ARG2, and returns the first position of inequality.
+ Performs a comparison of inequality on each of the corresponding
+ elements of a and b, and returns the first position of
+ inequality.
- Result value: Returns the element index of the position of the first character mismatch. If no mismatch, returns the number of characters as an element count in the vector argument.
+ Result value: Returns the
+ element index of the position of the first character
+ mismatch. If no mismatch, returns the number of characters as an
+ element count in the vector argument.
Endian considerations:
None.
+
+ vcmpneb
+ vec_first_mismatch_index
+
+
+ vcmpneh
+ vec_first_mismatch_index
+
+
+ vcmpnew
+ vec_first_mismatch_index
+
+
+ vctzlsbb
+ vec_first_mismatch_index
+
+
+ vclzlsbb
+ vec_first_mismatch_index
+
+
+ rldicl
+ vec_first_mismatch_index
+
+
Supported type signatures for vec_first_mismatch_index
-
-
-
-
-
-
+
+
+
+
+
+
+
-
+
r
@@ -13959,16 +14281,21 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
- ARG1
+ a
- ARG2
+ b
- Example Implementation
+ Example LE
+ Implementation
+
+
+ Example BE
+ Implementation
Restrictions
@@ -13987,7 +14314,16 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed char
- sample implementation TBD
+
+ vcmpneb t,a,b
+ vctzlsbb r,t
+
+
+
+
+ vcmpneb t,a,b
+ vclzlsbb r,t
+
ISA 3.0 or later
@@ -14004,7 +14340,16 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned char
- sample implementation TBD
+
+ vcmpneb t,a,b
+ vctzlsbb r,t
+
+
+
+
+ vcmpneb t,a,b
+ vclzlsbb r,t
+
ISA 3.0 or later
@@ -14021,7 +14366,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed int
- sample implementation TBD
+
+ vcmpnew t,a,b
+ vctzlsbb u,t
+ rldicl r,u,62,34
+
+
+
+
+ vcmpnew t,a,b
+ vclzlsbb u,t
+ rldicl r,u,62,34
+
ISA 3.0 or later
@@ -14038,7 +14394,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned int
- sample implementation TBD
+
+ vcmpnew t,a,b
+ vctzlsbb u,t
+ rldicl r,u,62,34
+
+
+
+
+ vcmpnew t,a,b
+ vclzlsbb u,t
+ rldicl r,u,62,34
+
ISA 3.0 or later
@@ -14055,7 +14422,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed short
- sample implementation TBD
+
+ vcmpneh t,a,b
+ vctzlsbb u,t
+ rldicl r,u,63,33
+
+
+
+
+ vcmpneh t,a,b
+ vclzlsbb u,t
+ rldicl r,u,63,33
+
ISA 3.0 or later
@@ -14072,7 +14450,18 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned short
- sample implementation TBD
+
+ vcmpneh t,a,b
+ vctzlsbb u,t
+ rldicl r,u,63,33
+
+
+
+
+ vcmpneh t,a,b
+ vclzlsbb u,t
+ rldicl r,u,63,33
+
ISA 3.0 or later
@@ -14089,28 +14478,85 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vec_first_mismatch_or_eos_index
Vector Index of First Mismatch or End of String
- r = vec_first_mismatch_or_eos_index (ARG1, ARG2)
+ r = vec_first_mismatch_or_eos_index (a, b)
- GCC 8.1 implementation is broken!
Purpose:
- Performs a comparison of inequality on each of the corresponding elements of ARG1 and ARG2. Returns the first position of inequality, or the zero string terminator.
-
- Result value: Returns the element index of the position of either the first character mismatch or an end-of-string (EOS) terminator. If no mismatch or terminator, returns the number of characters as an element count in the vector argument.
+ Performs a comparison of inequality on each of the corresponding
+ elements of a and b. Returns the first position of
+ inequality, or the zero string terminator.
+
+ Result value: Returns the
+ element index of the position of either the first character
+ mismatch or an end-of-string (EOS) terminator. If no mismatch or
+ terminator, returns the number of characters as an element count
+ in the vector argument.
Endian considerations:
None.
+
+ xxspltib
+ vec_first_mismatch_or_eos_index
+
+
+ vcmpneb
+ vec_first_mismatch_or_eos_index
+
+
+ vcmpnezb
+ vec_first_mismatch_or_eos_index
+
+
+ vcmpneh
+ vec_first_mismatch_or_eos_index
+
+
+ vcmpnezh
+ vec_first_mismatch_or_eos_index
+
+
+ vcmpnew
+ vec_first_mismatch_or_eos_index
+
+
+ vcmpnezw
+ vec_first_mismatch_or_eos_index
+
+
+ xxland
+ vec_first_mismatch_or_eos_index
+
+
+ xxlorc
+ vec_first_mismatch_or_eos_index
+
+
+ vctzlsbb
+ vec_first_mismatch_or_eos_index
+
+
+ vclzlsbb
+ vec_first_mismatch_or_eos_index
+
+
+ rldicl
+ vec_first_mismatch_or_eos_index
+
+
- Supported type signatures for vec_first_mismatch_or_eos_index
-
-
-
-
-
-
+ Supported type signatures for
+ vec_first_mismatch_or_eos_index
+
+
+
+
+
+
+
-
+
r
@@ -14127,7 +14573,12 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
- Example Implementation
+ Example LE
+ Implementation
+
+
+ Example BE
+ Implementation
Restrictions
@@ -14146,7 +14597,26 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed char
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vctzlsbb r,y
+
+
+
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vclzlsbb r,y
+
ISA 3.0 or later
@@ -14163,7 +14633,26 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned char
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vctzlsbb r,y
+
+
+
+
+ xxspltib t,0
+ vcmpneb u,a,t
+ vcmpneb v,b,t
+ vcmpnezb w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vclzlsbb r,y
+
ISA 3.0 or later
@@ -14180,7 +14669,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed int
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vctzlsbb z,y
+ rldicr r,z,62,34
+
+
+
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vclzlsbb z,y
+ rldicr r,z,62,34
+
ISA 3.0 or later
@@ -14197,7 +14707,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned int
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vctzlsbb z,y
+ rldicr r,z,62,34
+
+
+
+
+ xxspltib t,0
+ vcmpnew u,a,t
+ vcmpnew v,b,t
+ vcmpnezw w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vclzlsbb z,y
+ rldicr r,z,62,34
+
ISA 3.0 or later
@@ -14214,7 +14745,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector signed short
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vctzlsbb z,y
+ rldicl r,z,63,33
+
+
+
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vclzlsbb z,y
+ rldicl r,z,63,33
+
ISA 3.0 or later
@@ -14231,7 +14783,28 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="VIPR.vec-ref">
vector unsigned short
- sample implementation TBD
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vctzlsbb z,y
+ rldicl r,z,63,33
+
+
+
+
+ xxspltib t,0
+ vcmpneh u,a,t
+ vcmpneh v,b,t
+ vcmpnezh w,a,b
+ xxland x,u,v
+ xxlorc y,w,x
+ vclzlsbb z,y
+ rldicl r,z,63,33
+
ISA 3.0 or later