https://bugs.llvm.org/show_bug.cgi?id=48223
Bug ID: 48223
Summary: [AVX512][Regression] Failed to use vpsubusw
Product: libraries
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: X86
Assignee: unassignedb...@nondot.org
Reporter: david.bolvan...@gmail.com
CC: craig.top...@gmail.com, llvm-bugs@lists.llvm.org,
llvm-...@redking.me.uk, pengfei.w...@intel.com,
spatel+l...@rotateright.com
#define SIZE 32
#define WSIZE 64
unsigned short head[SIZE] __attribute__((aligned(64)));
void f(void)
{
for (unsigned n = 0; n < SIZE; ++n) {
unsigned short m = head[n];
head[n] = (unsigned short)(m >= WSIZE ? m-WSIZE : 0);
}
}
Clang 11 or newer with -O3 -mavx512f:
f(): # @f()
vmovdqa ymm0, ymmword ptr [rip + .LCPI0_0] # ymm0 =
[64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
vmovdqa ymm1, ymmword ptr [rip + head+32]
vpmaxuw ymm2, ymm1, ymm0
vpcmpeqw ymm2, ymm1, ymm2
vmovdqa ymm3, ymmword ptr [rip + head]
vpmaxuw ymm0, ymm3, ymm0
vpcmpeqw ymm0, ymm3, ymm0
vinserti64x4 zmm0, zmm0, ymm2, 1
vmovdqa ymm2, ymmword ptr [rip + .LCPI0_1] # ymm2 =
[65472,65472,65472,65472,65472,65472,65472,65472,65472,65472,65472,65472,65472,65472,65472,65472]
vpaddw ymm1, ymm1, ymm2
vpaddw ymm2, ymm3, ymm2
vinserti64x4 zmm1, zmm2, ymm1, 1
vpandq zmm0, zmm0, zmm1
vmovdqa64 zmmword ptr [rip + head], zmm0
vzeroupper
ret
Clang 10 or ICC -O3 -mavx512f:
f(): # @f()
vmovdqa ymm0, ymmword ptr [rip + head]
vmovdqa ymm1, ymmword ptr [rip + head+32]
vmovdqa ymm2, ymmword ptr [rip + .LCPI0_0] # ymm2 =
[64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64]
vpsubusw ymm1, ymm1, ymm2
vpsubusw ymm0, ymm0, ymm2
vmovdqa ymmword ptr [rip + head], ymm0
vmovdqa ymmword ptr [rip + head+32], ymm1
vzeroupper
ret
--
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs