altivec-splat.c
来自「用于进行gcc测试」· C语言 代码 · 共 50 行
C
50 行
/* { dg-do compile { target powerpc*-*-* } } *//* { dg-require-effective-target powerpc_altivec_ok } *//* { dg-options "-maltivec -mabi=altivec -O2" } *//* Testcase by Richard Guenther and Steven Bosscher. Check that "easy" AltiVec constants are correctly synthesized if they need to be reloaded. */typedef __attribute__ ((vector_size (16))) unsigned char v16qi;typedef __attribute__ ((vector_size (16))) unsigned short v8hi;typedef __attribute__ ((vector_size (16))) unsigned int v4si;#define REGLIST \ "77", "78", "79", "80", "81", "82", "83", "84", "85", "86", \ "87", "88", "89", "90", "91", "92", "93", "94", "95", "96", \ "97", "98", "99", "100", "101", "102", "103", "104", "105", "106", \ "107", "108"#define TEST(a, result, b) \ void a##_##b (int h) \ { \ volatile a tmp; \ while (h-- > 0) \ { \ asm ("" : : : REGLIST); \ tmp = (a) (result) __builtin_altivec_##b (5); \ } \ } \ \ void a##_##b##_neg (int h) \ { \ volatile a tmp; \ while (h-- > 0) \ { \ asm ("" : : : REGLIST); \ tmp = (a) (result) __builtin_altivec_##b (-5); \ } \ }TEST(v16qi, v16qi, vspltisb)TEST(v16qi, v8hi, vspltish)TEST(v16qi, v4si, vspltisw)TEST(v8hi, v16qi, vspltisb)TEST(v8hi, v8hi, vspltish)TEST(v8hi, v4si, vspltisw)TEST(v4si, v16qi, vspltisb)TEST(v4si, v8hi, vspltish)TEST(v4si, v4si, vspltisw)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?