mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-01-31 12:41:49 +01:00
Fix an overly aggressive assertion in getCopyFromPartsVector.
The assertion in getCopyFromPartsVector assumed that the vector 'part' must match the type of argument (arguments are potentially split into multiple parts). However, in some cases the targets return a 'part' of the right size but with a different type. We already handle this case correctly later on and generate a bitcast. This commit just makes sure that we are actually checking the property that we care about. llvm-svn: 241312
This commit is contained in:
parent
9c43298950
commit
4e07210007
@ -261,8 +261,9 @@ static SDValue getCopyFromPartsVector(SelectionDAG &DAG, SDLoc DL,
|
||||
assert(NumRegs == NumParts && "Part count doesn't match vector breakdown!");
|
||||
NumParts = NumRegs; // Silence a compiler warning.
|
||||
assert(RegisterVT == PartVT && "Part type doesn't match vector breakdown!");
|
||||
assert(RegisterVT == Parts[0].getSimpleValueType() &&
|
||||
"Part type doesn't match part!");
|
||||
assert(RegisterVT.getSizeInBits() ==
|
||||
Parts[0].getSimpleValueType().getSizeInBits() &&
|
||||
"Part type sizes don't match!");
|
||||
|
||||
// Assemble the parts into intermediate operands.
|
||||
SmallVector<SDValue, 8> Ops(NumIntermediates);
|
||||
|
18
test/CodeGen/AArch64/aarch-multipart.ll
Normal file
18
test/CodeGen/AArch64/aarch-multipart.ll
Normal file
@ -0,0 +1,18 @@
|
||||
; RUN: llc < %s -o - | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
|
||||
target triple = "arm64-apple-os"
|
||||
|
||||
declare <4 x double> @user_func(<4 x double>) #1
|
||||
|
||||
; Make sure we are not crashing on this code.
|
||||
; CHECK-LABEL: caller_function
|
||||
; CHECK: ret
|
||||
define void @caller_function(<4 x double>, <4 x double>, <4 x double>, <4 x double>, <4 x double>) #1 {
|
||||
entry:
|
||||
%r = call <4 x double> @user_func(<4 x double> %4)
|
||||
ret void
|
||||
}
|
||||
|
||||
attributes #1 = { nounwind readnone }
|
||||
|
Loading…
x
Reference in New Issue
Block a user