📄 sse4_1-pextrw.c
字号:
/* { dg-do run } *//* { dg-require-effective-target sse4 } *//* { dg-options "-O2 -msse4.1" } */#include "sse4_1-check.h"#include <smmintrin.h>#define msk0 0#define msk1 1#define msk2 2#define msk3 3#define msk4 4#define msk5 5#define msk6 6#define msk7 7static voidsse4_1_test (void){ union { __m128i x; int i[4]; short s[8]; } val1; int res[8], masks[8]; int i; val1.i[0] = 0x04030201; val1.i[1] = 0x08070605; val1.i[2] = 0x0C0B0A09; val1.i[3] = 0x100F0E0D; res[0] = _mm_extract_epi16 (val1.x, msk0); res[1] = _mm_extract_epi16 (val1.x, msk1); res[2] = _mm_extract_epi16 (val1.x, msk2); res[3] = _mm_extract_epi16 (val1.x, msk3); res[4] = _mm_extract_epi16 (val1.x, msk4); res[5] = _mm_extract_epi16 (val1.x, msk5); res[6] = _mm_extract_epi16 (val1.x, msk6); res[7] = _mm_extract_epi16 (val1.x, msk7); masks[0] = msk0; masks[1] = msk1; masks[2] = msk2; masks[3] = msk3; masks[4] = msk4; masks[5] = msk5; masks[6] = msk6; masks[7] = msk7; for (i = 0; i < 8; i++) if (res[i] != val1.s [masks[i]]) abort ();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -