tools/perf/arch/x86/tests/insn-x86-dat-src.c

Source file repositories/reference/linux-study-clean/tools/perf/arch/x86/tests/insn-x86-dat-src.c

File Facts

System
Linux kernel
Corpus path
tools/perf/arch/x86/tests/insn-x86-dat-src.c
Extension
.c
Size
216930 bytes
Lines
5480
Domain
Support Tooling And Documentation
Bucket
tools
Inferred role
Support Tooling And Documentation: implementation source
Status
source implementation candidate

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

asm volatile("vpscatterdd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
	asm volatile("vpscatterdq %zmm26,0x7b(%rbp,%ymm27,8){%k1}");

	/* AVX-512: Op code 0f 38 a1 */

	asm volatile("vpscatterqd %ymm6,0x7b(%rbp,%zmm29,8){%k1}");
	asm volatile("vpscatterqq %ymm6,0x7b(%rbp,%ymm27,8){%k1}");

	/* AVX-512: Op code 0f 38 a2 */

	asm volatile("vscatterdps %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
	asm volatile("vscatterdpd %zmm28,0x7b(%rbp,%ymm27,8){%k1}");

	/* AVX-512: Op code 0f 38 a3 */

	asm volatile("vscatterqps %ymm6,0x7b(%rbp,%zmm29,8){%k1}");
	asm volatile("vscatterqpd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");

	/* AVX-512: Op code 0f 38 aa */

	asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");
	asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");
	asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");
	asm volatile("vfmsub213ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
	asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");

	asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");
	asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");
	asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");
	asm volatile("vfmsub213pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
	asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");

	asm volatile("v4fnmaddps (%rax), %zmm0, %zmm4");
	asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");
	asm volatile("v4fnmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
	asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");

	/* AVX-512: Op code 0f 38 ab */

	asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");
	asm volatile("vfmsub213ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
	asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");

	asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");
	asm volatile("vfmsub213sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
	asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");

	asm volatile("v4fnmaddss (%rax), %xmm0, %xmm4");
	asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");
	asm volatile("v4fnmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");
	asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");

	/* AVX-512: Op code 0f 38 b4 */

	asm volatile("vpmadd52luq %zmm26,%zmm27,%zmm28");

	/* AVX-512: Op code 0f 38 b5 */

	asm volatile("vpmadd52huq %zmm26,%zmm27,%zmm28");

	/* AVX-512: Op code 0f 38 c4 */

	asm volatile("vpconflictd %zmm26,%zmm27");
	asm volatile("vpconflictq %zmm26,%zmm27");

	/* AVX-512: Op code 0f 38 c8 */

	asm volatile("vexp2ps %zmm29,%zmm30");
	asm volatile("vexp2pd %zmm26,%zmm27");

	/* AVX-512: Op code 0f 38 ca */

	asm volatile("vrcp28ps %zmm29,%zmm30");
	asm volatile("vrcp28pd %zmm26,%zmm27");

	/* AVX-512: Op code 0f 38 cb */

	asm volatile("vrcp28ss %xmm28,%xmm29,%xmm30{%k7}");
	asm volatile("vrcp28sd %xmm25,%xmm26,%xmm27{%k7}");

	/* AVX-512: Op code 0f 38 cc */

	asm volatile("vrsqrt28ps %zmm29,%zmm30");
	asm volatile("vrsqrt28pd %zmm26,%zmm27");

	/* AVX-512: Op code 0f 38 cd */

	asm volatile("vrsqrt28ss %xmm28,%xmm29,%xmm30{%k7}");
	asm volatile("vrsqrt28sd %xmm25,%xmm26,%xmm27{%k7}");

Annotation

Implementation Notes