Commit 4a06ac3
authored
Arm64 SVE: Fix conditionalselect with constant arguments (#116852)
* Arm64 SVE: Fix conditionalselect with constant arguments
Fixes #116847
When folding, allow arg1 to be a constant mask
* Make masked EvaluateBinaryInPlace() Arm64 only
* Check significantBit in EvaluateSimdVectorToPattern()
* fix set checks in EvaluateSimdVectorToPattern
* Use masks in EvalHWIntrinsicFunTernary() for SVE conditionalselect
* Check all of a vector lane when converting to mask
* Add testing for EvalHWIntrinsicFunTernary changes
* whitespace
* Revert "Check all of a vector lane when converting to mask"
This reverts commit b923b28.
* rename significantBit to leastSignificantBit
* Use LSB of vector when converting from vector to mask
* Add LowerCnsMask
* Add testcase
* Remove EvaluateSimdMaskToPattern
* Revert "Use LSB of vector when converting from vector to mask"
This reverts commit c96e38c.
* formatting
* fix assert check
Change-Id: I7951b70aec9aaef5521e100d30737b5a4d332b38
* GenTree for gtNewSimdCvtVectorToMaskNode()
* Split NI_Sve_ConditionalSelect into it's own case
* Remove mask version of EvaluateBinaryInPlace
* remove assert
* Check all bits in EvaluateSimdCvtVectorToMask
* Add ConstantVectors test
* No need for DOTNET_EnableHWIntrinsic in csproj
* Use IsMaskZero
* Remove EvaluateBinarySimdAndMask
* In lowering, default the mask type to byte
* In lowering, convert mask using byte basetype1 parent e4b07f4 commit 4a06ac3
File tree
10 files changed
+392
-31
lines changed- src
- coreclr/jit
- tests/JIT/opt/SVE
10 files changed
+392
-31
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
33525 | 33525 | | |
33526 | 33526 | | |
33527 | 33527 | | |
33528 | | - | |
33529 | 33528 | | |
33530 | 33529 | | |
33531 | 33530 | | |
| 33531 | + | |
33532 | 33532 | | |
33533 | 33533 | | |
33534 | 33534 | | |
33535 | 33535 | | |
33536 | 33536 | | |
33537 | 33537 | | |
33538 | | - | |
33539 | | - | |
| 33538 | + | |
33540 | 33539 | | |
33541 | | - | |
| 33540 | + | |
| 33541 | + | |
| 33542 | + | |
| 33543 | + | |
| 33544 | + | |
| 33545 | + | |
| 33546 | + | |
| 33547 | + | |
| 33548 | + | |
| 33549 | + | |
33542 | 33550 | | |
33543 | | - | |
| 33551 | + | |
| 33552 | + | |
33544 | 33553 | | |
33545 | | - | |
| 33554 | + | |
| 33555 | + | |
| 33556 | + | |
| 33557 | + | |
| 33558 | + | |
| 33559 | + | |
| 33560 | + | |
| 33561 | + | |
| 33562 | + | |
| 33563 | + | |
| 33564 | + | |
| 33565 | + | |
| 33566 | + | |
| 33567 | + | |
| 33568 | + | |
| 33569 | + | |
| 33570 | + | |
| 33571 | + | |
| 33572 | + | |
| 33573 | + | |
| 33574 | + | |
| 33575 | + | |
| 33576 | + | |
| 33577 | + | |
| 33578 | + | |
| 33579 | + | |
| 33580 | + | |
| 33581 | + | |
33546 | 33582 | | |
33547 | | - | |
33548 | 33583 | | |
33549 | | - | |
| 33584 | + | |
33550 | 33585 | | |
33551 | 33586 | | |
33552 | 33587 | | |
| |||
33560 | 33595 | | |
33561 | 33596 | | |
33562 | 33597 | | |
33563 | | - | |
| 33598 | + | |
33564 | 33599 | | |
33565 | 33600 | | |
33566 | 33601 | | |
33567 | 33602 | | |
33568 | 33603 | | |
33569 | 33604 | | |
| 33605 | + | |
| 33606 | + | |
| 33607 | + | |
| 33608 | + | |
| 33609 | + | |
| 33610 | + | |
33570 | 33611 | | |
33571 | | - | |
| 33612 | + | |
| 33613 | + | |
| 33614 | + | |
| 33615 | + | |
33572 | 33616 | | |
33573 | 33617 | | |
33574 | | - | |
| 33618 | + | |
| 33619 | + | |
| 33620 | + | |
| 33621 | + | |
33575 | 33622 | | |
33576 | 33623 | | |
33577 | 33624 | | |
| |||
33580 | 33627 | | |
33581 | 33628 | | |
33582 | 33629 | | |
| 33630 | + | |
33583 | 33631 | | |
33584 | 33632 | | |
33585 | 33633 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
789 | 789 | | |
790 | 790 | | |
791 | 791 | | |
| 792 | + | |
| 793 | + | |
| 794 | + | |
| 795 | + | |
| 796 | + | |
792 | 797 | | |
793 | 798 | | |
794 | 799 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
451 | 451 | | |
452 | 452 | | |
453 | 453 | | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
459 | 460 | | |
460 | 461 | | |
461 | 462 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1134 | 1134 | | |
1135 | 1135 | | |
1136 | 1136 | | |
| 1137 | + | |
| 1138 | + | |
| 1139 | + | |
| 1140 | + | |
| 1141 | + | |
| 1142 | + | |
| 1143 | + | |
| 1144 | + | |
| 1145 | + | |
| 1146 | + | |
| 1147 | + | |
| 1148 | + | |
| 1149 | + | |
| 1150 | + | |
| 1151 | + | |
| 1152 | + | |
| 1153 | + | |
| 1154 | + | |
| 1155 | + | |
| 1156 | + | |
| 1157 | + | |
| 1158 | + | |
| 1159 | + | |
| 1160 | + | |
| 1161 | + | |
| 1162 | + | |
| 1163 | + | |
| 1164 | + | |
| 1165 | + | |
| 1166 | + | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
| 1176 | + | |
| 1177 | + | |
| 1178 | + | |
| 1179 | + | |
| 1180 | + | |
| 1181 | + | |
| 1182 | + | |
| 1183 | + | |
| 1184 | + | |
| 1185 | + | |
| 1186 | + | |
| 1187 | + | |
| 1188 | + | |
| 1189 | + | |
| 1190 | + | |
| 1191 | + | |
| 1192 | + | |
| 1193 | + | |
| 1194 | + | |
| 1195 | + | |
| 1196 | + | |
| 1197 | + | |
| 1198 | + | |
| 1199 | + | |
| 1200 | + | |
| 1201 | + | |
| 1202 | + | |
| 1203 | + | |
| 1204 | + | |
| 1205 | + | |
| 1206 | + | |
| 1207 | + | |
1137 | 1208 | | |
1138 | 1209 | | |
1139 | 1210 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1598 | 1598 | | |
1599 | 1599 | | |
1600 | 1600 | | |
1601 | | - | |
1602 | 1601 | | |
1603 | | - | |
| 1602 | + | |
1604 | 1603 | | |
1605 | 1604 | | |
1606 | 1605 | | |
1607 | 1606 | | |
1608 | 1607 | | |
1609 | 1608 | | |
1610 | 1609 | | |
1611 | | - | |
1612 | | - | |
1613 | 1610 | | |
1614 | | - | |
1615 | | - | |
1616 | | - | |
1617 | | - | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
1618 | 1615 | | |
| 1616 | + | |
1619 | 1617 | | |
1620 | | - | |
1621 | | - | |
1622 | | - | |
1623 | | - | |
1624 | | - | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
1625 | 1622 | | |
| 1623 | + | |
1626 | 1624 | | |
1627 | | - | |
| 1625 | + | |
1628 | 1626 | | |
1629 | | - | |
1630 | 1627 | | |
1631 | 1628 | | |
1632 | 1629 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
9145 | 9145 | | |
9146 | 9146 | | |
9147 | 9147 | | |
| 9148 | + | |
| 9149 | + | |
| 9150 | + | |
| 9151 | + | |
| 9152 | + | |
| 9153 | + | |
| 9154 | + | |
| 9155 | + | |
| 9156 | + | |
| 9157 | + | |
| 9158 | + | |
| 9159 | + | |
| 9160 | + | |
| 9161 | + | |
| 9162 | + | |
| 9163 | + | |
| 9164 | + | |
| 9165 | + | |
| 9166 | + | |
| 9167 | + | |
| 9168 | + | |
| 9169 | + | |
| 9170 | + | |
| 9171 | + | |
9148 | 9172 | | |
9149 | 9173 | | |
9150 | 9174 | | |
| |||
0 commit comments