diff options
| author | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2017-06-13 16:21:57 +0000 |
|---|---|---|
| committer | Krzysztof Parzyszek <kparzysz@codeaurora.org> | 2017-06-13 16:21:57 +0000 |
| commit | c83c267b84c2f9986fa67cd62e738da7d9a76137 (patch) | |
| tree | 2a2855fe85790afdf4f40650b65164923421cec1 /llvm/lib/Target/Hexagon | |
| parent | 7e9d2cb553fc7344d37b9659a40a38cb2a3d66b1 (diff) | |
| download | bcm5719-llvm-c83c267b84c2f9986fa67cd62e738da7d9a76137.tar.gz bcm5719-llvm-c83c267b84c2f9986fa67cd62e738da7d9a76137.zip | |
[Hexagon] Generate multiply-high instruction in isel
llvm-svn: 305302
Diffstat (limited to 'llvm/lib/Target/Hexagon')
| -rw-r--r-- | llvm/lib/Target/Hexagon/HexagonPatterns.td | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/HexagonPatterns.td b/llvm/lib/Target/Hexagon/HexagonPatterns.td index f269b74fc44..a8c5658337b 100644 --- a/llvm/lib/Target/Hexagon/HexagonPatterns.td +++ b/llvm/lib/Target/Hexagon/HexagonPatterns.td @@ -401,6 +401,11 @@ def Aext64: PatFrag<(ops node:$Rs), (i64 (anyext node:$Rs))>; def Zext64: PatFrag<(ops node:$Rs), (i64 (zext node:$Rs))>; def Sext64: PatLeaf<(i64 Usxtw:$Rs)>; +def: Pat<(i32 (trunc (sra (mul Sext64:$Rs, Sext64:$Rt), (i32 32)))), + (M2_mpy_up (LoReg Sext64:$Rs), (LoReg Sext64:$Rt))>; +def: Pat<(i32 (trunc (srl (mul Sext64:$Rs, Sext64:$Rt), (i32 32)))), + (M2_mpy_up (LoReg Sext64:$Rs), (LoReg Sext64:$Rt))>; + def: Pat<(mul (Aext64 I32:$Rs), (Aext64 I32:$Rt)), (M2_dpmpyuu_s0 I32:$Rs, I32:$Rt)>; |

