Commit 61921ee
committed
[RISCV] Fix a bug in partial.reduce lowering for zvqdotq .vx forms
I'd missed a bitcast in the lowering. Unfortunately, that bitcast
happens to be semantically required here as the partial_reduce_*
source expects an i8 element type, but the pseudos and patterns
expect an i32 element type.
This appears to only influence the .vx matching from the cases I've
found so far, and LV does not yet generate anything which will
exercise this. The reduce path (instead of the partial.reduce one)
used by SLP currently manually constructs the i32 value, and then goes
directly to the pseudo's with their i32 arguments, not the
partial_reduce nodes.
We're basically loosing the .vx matching on this path until we teach
splat matching to be able to manually splat the i8 value into an i32
via LUI/ADDI.1 parent c46927f commit 61921ee
File tree
3 files changed
+77
-15
lines changed- llvm
- lib/Target/RISCV
- test/CodeGen/RISCV/rvv
3 files changed
+77
-15
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8412 | 8412 | | |
8413 | 8413 | | |
8414 | 8414 | | |
| 8415 | + | |
| 8416 | + | |
| 8417 | + | |
| 8418 | + | |
| 8419 | + | |
| 8420 | + | |
8415 | 8421 | | |
8416 | 8422 | | |
8417 | 8423 | | |
8418 | 8424 | | |
8419 | | - | |
8420 | | - | |
8421 | | - | |
| 8425 | + | |
| 8426 | + | |
8422 | 8427 | | |
8423 | 8428 | | |
8424 | 8429 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
598 | 598 | | |
599 | 599 | | |
600 | 600 | | |
601 | | - | |
602 | 601 | | |
603 | 602 | | |
604 | 603 | | |
| |||
618 | 617 | | |
619 | 618 | | |
620 | 619 | | |
621 | | - | |
| 620 | + | |
622 | 621 | | |
623 | 622 | | |
624 | | - | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
625 | 627 | | |
626 | 628 | | |
627 | 629 | | |
| |||
631 | 633 | | |
632 | 634 | | |
633 | 635 | | |
634 | | - | |
635 | 636 | | |
636 | 637 | | |
637 | 638 | | |
| |||
652 | 653 | | |
653 | 654 | | |
654 | 655 | | |
655 | | - | |
| 656 | + | |
656 | 657 | | |
657 | 658 | | |
658 | | - | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
659 | 663 | | |
660 | 664 | | |
661 | 665 | | |
| |||
1372 | 1376 | | |
1373 | 1377 | | |
1374 | 1378 | | |
1375 | | - | |
1376 | 1379 | | |
1377 | 1380 | | |
1378 | 1381 | | |
| |||
1393 | 1396 | | |
1394 | 1397 | | |
1395 | 1398 | | |
| 1399 | + | |
| 1400 | + | |
1396 | 1401 | | |
1397 | 1402 | | |
1398 | | - | |
1399 | | - | |
| 1403 | + | |
1400 | 1404 | | |
1401 | 1405 | | |
1402 | 1406 | | |
| |||
1405 | 1409 | | |
1406 | 1410 | | |
1407 | 1411 | | |
1408 | | - | |
1409 | 1412 | | |
1410 | 1413 | | |
1411 | 1414 | | |
| |||
1426 | 1429 | | |
1427 | 1430 | | |
1428 | 1431 | | |
| 1432 | + | |
| 1433 | + | |
1429 | 1434 | | |
1430 | 1435 | | |
1431 | | - | |
1432 | | - | |
| 1436 | + | |
1433 | 1437 | | |
1434 | 1438 | | |
1435 | 1439 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
957 | 957 | | |
958 | 958 | | |
959 | 959 | | |
| 960 | + | |
| 961 | + | |
| 962 | + | |
| 963 | + | |
| 964 | + | |
| 965 | + | |
| 966 | + | |
| 967 | + | |
| 968 | + | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
| 983 | + | |
| 984 | + | |
| 985 | + | |
| 986 | + | |
| 987 | + | |
| 988 | + | |
| 989 | + | |
| 990 | + | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
0 commit comments