Skip to content

[AVX512] incorrect register in vpbroadcastb instruction #33142

@dbabokin

Description

@dbabokin
Bugzilla Link 33795
Resolution FIXED
Resolved on Aug 17, 2017 10:42
Version trunk
OS All
Blocks #33196
Attachments reproducer
CC @topperc,@Delena,@zmodem,@igor-breger,@RKSimon,@ZviRackover

Extended Description

clang trunk, x86 (32 bit mode).

Clang generates "vpbroadcastb %ch, %xmm1" instruction (at least it intends doing so). The instruction consumes 8 bit from general purpose register, but only 32 registers are allowed. As a result, clang tries to encode
"vpbroadcastb %ch, %xmm1" as 62 f2 7d 08 7a cd, which really is "vpbroadcastb %ebp,%zmm1".

I assume instruction description is incorrect.

The instruction was generated by "Machine Instruction Scheduler on function" pass, if this matters.

Reproducer isn't really small, check "run" file for instruction for compiling it, they should be self explanatory.

Let me know if more details are needed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions