Skip to content

Incomplete breakdown of soft-float vectors #4270

@stoklund

Description

@stoklund
mannequin
Bugzilla Link 3898
Resolution FIXED
Resolved on Apr 18, 2009 15:49
Version trunk
OS All
Attachments Test case for XCore backend, Fix for TargetLowering::getVectorTypeBreakdown
CC @asl

Extended Description

On a target with soft-float and only i32 registers, a <2 x double> vector is legalized as follows:

v2f64 -> 2 x i64 -> 4 x i32

TargetLowering::getVectorTypeBreakdown() misses the last step, and a FORMAL_ARGUMENTS node with two illegal i64 parameters is created. This triggers an assert in XCoreTargetLowering::LowerCCCArguments()

I believe this bug only affects the XCore backend, but it is not a bug /in/ the XCore backend. I found it while writing a new Blackfin backend.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillacompile-failUse [accepts-invalid] and [rejects-valid] insteadllvm:codegen

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions