Commit 8fdca02
committed
[HEXAGON] Add AssertSext in sign-extended mpy
The pattern i32xi32->i64, should be matched to the
sign-extended multiply op, instead of explicit sign-
extension of the operands followed by non-widening
multiply (this takes 4 operations instead of one).
Currently, if one of the operands of multiply inside
a loop is a constant, the sign-extension of this
constant is hoisted out of the loop by LICM pass
and this pattern is not matched by the ISEL.
This change handles multiply operand with Opcode of
the type AssertSext which is seen when the sign-extension
is hoisted out-of the loop. Modifies the DetectUseSxtw()
to check for this.1 parent d4516c7 commit 8fdca02
File tree
2 files changed
+47
-0
lines changed- llvm
- lib/Target/Hexagon
- test/CodeGen/Hexagon
2 files changed
+47
-0
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1640 | 1640 | | |
1641 | 1641 | | |
1642 | 1642 | | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
1643 | 1652 | | |
1644 | 1653 | | |
1645 | 1654 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
0 commit comments