Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memuatkan 8 Terapung ke dalam Pembolehubah __m256 Menggunakan Intrinsik AVX?

Bagaimana untuk Memuatkan 8 Terapung ke dalam Pembolehubah __m256 Menggunakan Intrinsik AVX?

DDD
Lepaskan: 2024-11-02 00:22:30
asal
941 orang telah melayarinya

How to Load 8 Floats into an __m256 Variable Using AVX Intrinsics?

Memuatkan 8 Terapung daripada Memori ke dalam Pembolehubah __m256

Matlamat anda adalah untuk menggantikan penimbal apungan[8] dengan pembolehubah intrinsik, __m256. Berikut ialah arahan untuk mencapainya:

Arahan AVX2:

  1. Gunakan VPMOVZXBD ymm0, [rsi] untuk memanjangkan bait dalam ingatan sifar menjadi 32- integer bit.
  2. Tukarkan integer kepada terapung dengan VCVTDQ2PS ymm0, ymm0.

Arahan AVX1:

    Muat empat bait seterusnya dengan VPMOVZXBD xmm1, [rsi 4].
  1. Masukkan beban kedua ke dalam 128 bit tinggi ymm0 dengan VINSERTF128 ymm0, ymm0, xmm1, 1.
  2. Tukar kepada terapung dengan VCVTDQ2PS ymm0, ymm0.

Petua Pengoptimuman:

    Elakkan menggunakan VPMOVZXBD ymm, [mem] dengan intrinsik, kerana ia boleh menyebabkan pengoptimuman terlepas.
  • Untuk AVX1, gunakan _mm_loadl_epi64 untuk melipat beban ke dalam arahan VPMOVZXBD untuk kod optimum.

Atas ialah kandungan terperinci Bagaimana untuk Memuatkan 8 Terapung ke dalam Pembolehubah __m256 Menggunakan Intrinsik AVX?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan