[flang-commits] [clang] [flang] [llvm] [X86][AVX10] Remove EVEX512 and AVX10-256 implementations (PR #157034)

Arthur Eubanks via flang-commits flang-commits at lists.llvm.org
Tue Sep 30 11:26:43 PDT 2025


aeubanks wrote:

the following crashes with that assert at head

```
$ cat a.cpp
typedef long __m128i __attribute__((__vector_size__(16)));
__m128i _mm_undefined_si128();
__attribute__((
    __vector_size__(2 * sizeof(double)))) double _mm_cvtts_pd_epu32___A;
__m128i DemoteInRangeTo___trans_tmp_5;
__attribute__((target("avx512vpopcntdq,gfni,avx10.2"))) void DemoteInRangeTo() {
  DemoteInRangeTo___trans_tmp_5 = __builtin_ia32_vcvttpd2udqs128_mask(
      _mm_cvtts_pd_epu32___A, _mm_undefined_si128(), -1);
}
$ clang -cc1 -triple i686-unknown-linux-android29 -Os -emit-obj a.cpp
clang: ../../llvm/lib/CodeGen/TargetInstrInfo.cpp:773: MachineInstr *llvm::TargetInstrInfo::foldMemoryOperand(MachineInstr &, ArrayRef<unsigned int>, int, LiveIntervals *, VirtRegMap *) const: Assertion `(!(Flags & MachineMemOperand::MOLoad) || NewMI->mayLoad()) && "Folded a use to a non-load!"' failed.
```

and no frontend errors/warnings

https://github.com/llvm/llvm-project/pull/157034


More information about the flang-commits mailing list