Commit b8ff29c
[compiler][arm64] Fix Dup and Shuffle recognition
The 'dup and shuffle' optimization worked on the assumption that, for
swizzles, we could drop the second argument and replace it with the
result of the dup. This would result in the dup producing the eight
most significant bytes and the canonical shuffle would produce the
other eight.
However, because we are dealing with swizzles, it may be that the
instruction used to implement the canonical shuffle doesn't read from
two registers. In this case the dup is never read and so the top bytes
are not what we expect.
Bug: 455592080
Change-Id: Ic205b01dec1a82631b1de1fce2d98e82d9af3804
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7095236
Reviewed-by: Darius Mercadier <[email protected]>
Commit-Queue: Darius Mercadier <[email protected]>
Reviewed-by: Marja Hölttä <[email protected]>
Cr-Commit-Position: refs/heads/main@{#103394}1 parent 751d0ff commit b8ff29c
3 files changed
Lines changed: 31 additions & 28 deletions
File tree
- src/compiler/backend/arm64
- test
- mjsunit/wasm
- unittests/compiler/arm64
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5819 | 5819 | | |
5820 | 5820 | | |
5821 | 5821 | | |
5822 | | - | |
5823 | | - | |
5824 | | - | |
5825 | | - | |
5826 | | - | |
5827 | | - | |
5828 | | - | |
5829 | | - | |
5830 | | - | |
5831 | | - | |
5832 | | - | |
5833 | | - | |
5834 | | - | |
| 5822 | + | |
| 5823 | + | |
| 5824 | + | |
| 5825 | + | |
| 5826 | + | |
| 5827 | + | |
| 5828 | + | |
| 5829 | + | |
5835 | 5830 | | |
5836 | 5831 | | |
5837 | 5832 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
54 | 54 | | |
55 | 55 | | |
56 | 56 | | |
| 57 | + | |
57 | 58 | | |
58 | 59 | | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
62 | 63 | | |
| 64 | + | |
63 | 65 | | |
64 | 66 | | |
65 | 67 | | |
| |||
77 | 79 | | |
78 | 80 | | |
79 | 81 | | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
80 | 87 | | |
81 | 88 | | |
82 | 89 | | |
| |||
Lines changed: 16 additions & 15 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3627 | 3627 | | |
3628 | 3628 | | |
3629 | 3629 | | |
3630 | | - | |
| 3630 | + | |
3631 | 3631 | | |
3632 | 3632 | | |
3633 | 3633 | | |
3634 | 3634 | | |
3635 | 3635 | | |
3636 | 3636 | | |
3637 | 3637 | | |
3638 | | - | |
| 3638 | + | |
3639 | 3639 | | |
3640 | 3640 | | |
3641 | 3641 | | |
3642 | 3642 | | |
3643 | 3643 | | |
3644 | 3644 | | |
3645 | 3645 | | |
3646 | | - | |
| 3646 | + | |
3647 | 3647 | | |
3648 | 3648 | | |
3649 | 3649 | | |
| |||
3738 | 3738 | | |
3739 | 3739 | | |
3740 | 3740 | | |
3741 | | - | |
| 3741 | + | |
| 3742 | + | |
3742 | 3743 | | |
| 3744 | + | |
3743 | 3745 | | |
3744 | 3746 | | |
3745 | 3747 | | |
3746 | 3748 | | |
3747 | | - | |
| 3749 | + | |
3748 | 3750 | | |
3749 | 3751 | | |
3750 | | - | |
3751 | | - | |
3752 | | - | |
3753 | | - | |
3754 | | - | |
3755 | | - | |
| 3752 | + | |
| 3753 | + | |
| 3754 | + | |
3756 | 3755 | | |
3757 | | - | |
3758 | | - | |
3759 | | - | |
3760 | | - | |
| 3756 | + | |
3761 | 3757 | | |
| 3758 | + | |
| 3759 | + | |
| 3760 | + | |
| 3761 | + | |
3762 | 3762 | | |
| 3763 | + | |
3763 | 3764 | | |
3764 | 3765 | | |
3765 | 3766 | | |
| |||
0 commit comments