Skip to content

<altivec.h> is missing vec_sel(vector [un]signed long long, ...) #42682

Open
@zygoloid

Description

@zygoloid
Bugzilla Link 43337
Version unspecified
OS All
Blocks #17538
CC @topperc,@zygoloid

Extended Description

The following overloads of vec_sel are missing from <altivec.h>:

vector signed long long vec_sel(vector signed long long,
vector signed long long,
vector bool long long);
vector signed long long vec_sel(vector signed long long,
vector signed long long,
vector unsigned long long);
vector unsigned long long vec_sel(vector unsigned long long,
vector unsigned long long,
vector bool long long);
vector unsigned long long vec_sel(vector unsigned long long,
vector unsigned long long,
vector unsigned long long);

Worse, the PPC wrapper <emmintrin.h> relies on one of these in the implementation of _mm_sll_epi64.

We currently "get away with" this due to the broken default of -flax-vector-conversions, but builds using <emmintrin.h> under Power8 fail with -fno-lax-vector-conversions due to this (and other bugs in our intrinsics headers).

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugzillaIssues migrated from bugzillaclang:headersHeaders provided by Clang, e.g. for intrinsics

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions