Instruction
VMOVUPS
Moves packed singles between registers and memory without an alignment requirement.
- Extensions
- Forms
- 17 (8 VEX, 9 EVEX)
- Data
- Intel XED v2026.08.23
Forms
| Instruction | Encoding | Requires |
|---|---|---|
VMOVUPS xmm, m128
VMOVUPS_XMMdq_MEMdq | VEX.128.NP.0F.WIG 10 /r | AVX |
VMOVUPS xmm, xmm
VMOVUPS_XMMdq_XMMdq_10 | VEX.128.NP.0F.WIG 10 /r | AVX |
VMOVUPS m128, xmm
VMOVUPS_MEMdq_XMMdq | VEX.128.NP.0F.WIG 11 /r | AVX |
VMOVUPS xmm, xmm
VMOVUPS_XMMdq_XMMdq_11 | VEX.128.NP.0F.WIG 11 /r | AVX |
VMOVUPS ymm, m256
VMOVUPS_YMMqq_MEMqq | VEX.256.NP.0F.WIG 10 /r | AVX |
VMOVUPS ymm, ymm
VMOVUPS_YMMqq_YMMqq_10 | VEX.256.NP.0F.WIG 10 /r | AVX |
VMOVUPS m256, ymm
VMOVUPS_MEMqq_YMMqq | VEX.256.NP.0F.WIG 11 /r | AVX |
VMOVUPS ymm, ymm
VMOVUPS_YMMqq_YMMqq_11 | VEX.256.NP.0F.WIG 11 /r | AVX |
VMOVUPS zmm {k}{z}, zmm
VMOVUPS_ZMMf32_MASKmskw_ZMMf32_AVX512 | EVEX.512.NP.0F.W0 10 /rEVEX.512.NP.0F.W0 11 /r | AVX10.1 or AVX512F |
VMOVUPS zmm {k}{z}, m512
VMOVUPS_ZMMf32_MASKmskw_MEMf32_AVX512 | EVEX.512.NP.0F.W0 10 /r | AVX10.1 or AVX512F |
VMOVUPS m512 {k}, zmm
VMOVUPS_MEMf32_MASKmskw_ZMMf32_AVX512 | EVEX.512.NP.0F.W0 11 /r | AVX10.1 or AVX512F |
VMOVUPS xmm {k}{z}, xmm
VMOVUPS_XMMf32_MASKmskw_XMMf32_AVX512 | EVEX.128.NP.0F.W0 10 /rEVEX.128.NP.0F.W0 11 /r | AVX10.1 or AVX512F + AVX512VL |
VMOVUPS xmm {k}{z}, m128
VMOVUPS_XMMf32_MASKmskw_MEMf32_AVX512 | EVEX.128.NP.0F.W0 10 /r | AVX10.1 or AVX512F + AVX512VL |
VMOVUPS m128 {k}, xmm
VMOVUPS_MEMf32_MASKmskw_XMMf32_AVX512 | EVEX.128.NP.0F.W0 11 /r | AVX10.1 or AVX512F + AVX512VL |
VMOVUPS ymm {k}{z}, ymm
VMOVUPS_YMMf32_MASKmskw_YMMf32_AVX512 | EVEX.256.NP.0F.W0 10 /rEVEX.256.NP.0F.W0 11 /r | AVX10.1 or AVX512F + AVX512VL |
VMOVUPS ymm {k}{z}, m256
VMOVUPS_YMMf32_MASKmskw_MEMf32_AVX512 | EVEX.256.NP.0F.W0 10 /r | AVX10.1 or AVX512F + AVX512VL |
VMOVUPS m256 {k}, ymm
VMOVUPS_MEMf32_MASKmskw_YMMf32_AVX512 | EVEX.256.NP.0F.W0 11 /r | AVX10.1 or AVX512F + AVX512VL |
Intrinsics
The C intrinsics of Clang 23.1.2 that compile to VMOVUPS, each with the form it compiles to and the Clang options it needs. The forms come from compiling every intrinsic and decoding the result with Intel XED; all intrinsics A–Z explains the method.
| Intrinsic | Compiles to |
|---|---|
_mm_loadu_pbh
__m128bh _mm_loadu_pbh(const void *__p) |
|
_mm_loadu_ph
__m128h _mm_loadu_ph(const void *__p) |
|
_mm_loadu_ps
__m128 _mm_loadu_ps(const float *__p) |
|
_mm_storeu_pbh
void _mm_storeu_pbh(void *__P, __m128bh __A) |
|
_mm_storeu_ph
void _mm_storeu_ph(void *__P, __m128h __A) |
|
_mm_storeu_ps
void _mm_storeu_ps(float *__p, __m128 __a) |
|
_mm_storeu_si128
void _mm_storeu_si128(__m128i_u *__p, __m128i __b) |
|
_mm_mask_loadu_ps
__m128 _mm_mask_loadu_ps(__m128 __W, __mmask8 __U, const void *__P) |
|
_mm_mask_storeu_ps
void _mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) |
|
_mm_maskz_loadu_ps
__m128 _mm_maskz_loadu_ps(__mmask8 __U, const void *__P) |
|
_mm256_loadu_pbh
__m256bh _mm256_loadu_pbh(const void *__p) |
|
_mm256_loadu_ph
__m256h _mm256_loadu_ph(const void *__p) |
|
_mm256_loadu_ps
__m256 _mm256_loadu_ps(const float *__p) |
|
_mm256_storeu_pbh
void _mm256_storeu_pbh(void *__P, __m256bh __A) |
|
_mm256_storeu_ph
void _mm256_storeu_ph(void *__P, __m256h __A) |
|
_mm256_storeu_ps
void _mm256_storeu_ps(float *__p, __m256 __a) |
|
_mm256_mask_loadu_ps
__m256 _mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, const void *__P) |
|
_mm256_mask_storeu_ps
void _mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) |
|
_mm256_maskz_loadu_ps
__m256 _mm256_maskz_loadu_ps(__mmask8 __U, const void *__P) |
|
_mm512_loadu_pbh
__m512bh _mm512_loadu_pbh(const void *__p) |
|
_mm512_loadu_ph
__m512h _mm512_loadu_ph(const void *__p) |
|
_mm512_loadu_ps
__m512 _mm512_loadu_ps(const void *__p) |
|
_mm512_storeu_pbh
void _mm512_storeu_pbh(void *__P, __m512bh __A) |
|
_mm512_storeu_ph
void _mm512_storeu_ph(void *__P, __m512h __A) |
|
_mm512_storeu_ps
void _mm512_storeu_ps(void *__P, __m512 __A) |
|
_mm512_mask_loadu_ps
__m512 _mm512_mask_loadu_ps(__m512 __W, __mmask16 __U, const void *__P) |
|
_mm512_mask_storeu_ps
void _mm512_mask_storeu_ps(void *__P, __mmask16 __U, __m512 __A) |
|
_mm512_maskz_loadu_ps
__m512 _mm512_maskz_loadu_ps(__mmask16 __U, const void *__P) |
|
CPUID and processors
Each form belongs to an XED ISA set. A form can be used when the processor reports every CPUID bit of one of its ISA set's alternatives.
More AVX10.1 instructions
Sources
- Intel XED v2026.08.23 (commit
0bcb6237345c): forms, encodings, ISA sets, CPUID bits and chip model. - Clang's x86 intrinsic headers, LLVM 23.1.2 (commit
85ac56026243): the intrinsics, their signatures and doc comments, and the Clang of that release, which compiled each of them. - Intel Advanced Vector Extensions 10.2 Architecture Specification, revision 6.0 (361050-006, January 2026)
The tables are derived from Intel XED, Copyright Intel Corporation, licensed under the Apache License 2.0; x86-64.net converted and reformatted them. The intrinsics and their signatures come from Clang, part of the LLVM Project, licensed under the Apache License 2.0 with LLVM Exceptions. The text is our own.