|---|---- |--|-----|-----|-----|----- |----- |--|---- |
|19 |RT | |mask |BFA | |XO[0:4]|XO[5:9]|/ | |
|19 | | | | | |1 //// |00011 | |rsvd |
-|19 |RT |M |mask |BFA | 0 0 |0 mode |00011 |Rc|crrweird |
-|19 |RA |M |mask |BF | 0 1 |0 mode |00011 |/ |mtcrweird |
-|19 |BT |M |mask |BFA | 1 0 |0 mode |00011 |/ |crweirder |
+|19 |RT |M |mask |BFA | 0 0 |0 mode |00011 |0 |crrweird |
+|19 |RT |0 |mask |BFA | 0 0 |0 mode |00011 |1 |mfcrweird |
+|19 |RA |1 |mask |BF | 0 0 |0 mode |00011 |1 |mtcrrweird |
+|19 |RA |M |mask |BF | 0 1 |0 mode |00011 |0 |mtcrweird |
+|19 |BT |M |mask |BFA | 0 1 |0 mode |00011 |1 |crweirder |
|19 |BF //|M |mask |BFA | 1 1 |0 mode |00011 |0 |crweird |
|19 |BF //|M |mask |BFA | 1 1 |0 mode |00011 |1 |mcrfm |
n3 = mask[3] & (mode[3] == creg[3])
result = n0|n1|n2|n3 if M else n0&n1&n2&n3
RT[63] = result # MSB0 numbering, 63 is LSB
- If Rc:
- CR0 = analyse(RT)
When used with SVP64 Prefixing this is a [[openpower/sv/normal]]
-SVP64 type operation and as such can use Rc=1 and RC1 Data-dependent
+SVP64 type operation and as such can use RC1 Data-dependent
+Mode capability
+
+**mfcrrweird**
+
+mode is encoded in XO and is 4 bits
+
+bit 19=0, bit 20=0
+
+ mfcrrweird: RT, BFA, mask.mode
+
+ creg = CR{BFA}
+ n0 = mask[0] & (mode[0] == creg[0])
+ n1 = mask[1] & (mode[1] == creg[1])
+ n2 = mask[2] & (mode[2] == creg[2])
+ n3 = mask[3] & (mode[3] == creg[3])
+ result = n0||n1||n2||n3
+ RT[60:63] = result # MSB0 numbering, 63 is LSB
+
+When used with SVP64 Prefixing this is a [[openpower/sv/normal]]
+SVP64 type operation and as such can use RC1 Data-dependent
+Mode capability
+
+**mtcrrweird**
+
+mode is encoded in XO and is 4 bits
+
+bit 19=0, bit 20=0
+
+ mtcrrweird: BF, RA, M, mask.mode
+
+ n0 = mask[0] & (mode[0] == RA[63])
+ n1 = mask[1] & (mode[1] == RA[62])
+ n2 = mask[2] & (mode[2] == RA[61])
+ n3 = mask[3] & (mode[3] == RA[60])
+ result = n0 || n1 || n2 || n3
+ if M:
+ result |= CR{BF} & ~mask
+ CR{BF} = result
+
+When used with SVP64 Prefixing this is a [[openpower/sv/normal]]
+SVP64 type operation and as such can use RC1 Data-dependent
Mode capability
**mtcrweird**