mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 03:02:36 +01:00
AArch64: Mark vector long multiplication as expand.
There are no patterns for this. This was already fixed for ARM64 but I forgot to apply it to AArch64 too. llvm-svn: 207515
This commit is contained in:
parent
6630aee422
commit
3e3e43e656
@ -514,6 +514,11 @@ AArch64TargetLowering::AArch64TargetLowering(AArch64TargetMachine &TM)
|
||||
> VT1.getVectorElementType().getSizeInBits())
|
||||
setTruncStoreAction(VT, VT1, Expand);
|
||||
}
|
||||
|
||||
setOperationAction(ISD::MULHS, VT, Expand);
|
||||
setOperationAction(ISD::SMUL_LOHI, VT, Expand);
|
||||
setOperationAction(ISD::MULHU, VT, Expand);
|
||||
setOperationAction(ISD::UMUL_LOHI, VT, Expand);
|
||||
}
|
||||
|
||||
// There is no v1i64/v2i64 multiply, expand v1i64/v2i64 to GPR i64 multiply.
|
||||
|
14
test/CodeGen/AArch64/neon-idiv.ll
Normal file
14
test/CodeGen/AArch64/neon-idiv.ll
Normal file
@ -0,0 +1,14 @@
|
||||
; RUN: llc -mtriple=aarch64-none-linux-gnu < %s -mattr=+neon | FileCheck %s
|
||||
; RUN: llc -mtriple=arm64-none-linux-gnu < %s -mattr=+neon | FileCheck %s
|
||||
|
||||
define <4 x i32> @test1(<4 x i32> %a) {
|
||||
%rem = srem <4 x i32> %a, <i32 7, i32 7, i32 7, i32 7>
|
||||
ret <4 x i32> %rem
|
||||
; CHECK-LABEL: test1
|
||||
; FIXME: Can we lower this more efficiently?
|
||||
; CHECK: mul
|
||||
; CHECK: mul
|
||||
; CHECK: mul
|
||||
; CHECK: mul
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user