[all-commits] [llvm/llvm-project] ea685e: [X86][AVX] Update _mm256_loadu2_m128* intrinsics t...

Simon Pilgrim via All-commits all-commits at lists.llvm.org
Thu Sep 9 11:20:57 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ea685e1028c6fe9e2b0f9eb5858bcb867f75bdc8
      https://github.com/llvm/llvm-project/commit/ea685e1028c6fe9e2b0f9eb5858bcb867f75bdc8
  Author: Simon Pilgrim <llvm-dev at redking.me.uk>
  Date:   2021-09-09 (Thu, 09 Sep 2021)

  Changed paths:
    M clang/lib/Headers/avxintrin.h
    M clang/test/CodeGen/X86/avx-builtins.c

  Log Message:
  -----------
  [X86][AVX] Update _mm256_loadu2_m128* intrinsics to use _mm256_set_m128* (PR51796)

As reported on PR51796, the _mm256_loadu2_m128i in particular was inserting bitcasts and shuffles with different types making it trickier for some combines, and prevented the value tracker from identifying the shuffle sequences as a single insert_subvector style concat_vectors pattern.

This patch instead concatenate the 128-bit unaligned loads with _mm256_set_m128*, which was written to avoid the unnecessary bitcasts and only emits a single shuffle.

Differential Revision: https://reviews.llvm.org/D109497




More information about the All-commits mailing list