vector1.c
来自「Mac OS X 10.4.9 for x86 Source Code gcc」· C语言 代码 · 共 79 行
C
79 行
// PR c++/19263// { dg-do run }// { dg-options "-O2" }typedef signed char v8qi __attribute__ ((vector_size (8)));extern "C" void abort (void);static unsigned char S[16];struct A{ int i; v8qi j, k; int l;};voidfoo (unsigned char v){ A a = { 1, { v, v, v, v, v, v, v, v }, { v + 1, v + 1, v + 1, v + 1, v + 1, v + 1, v + 1, v + 1 }, 3 }; v8qi *s = (v8qi *) &S[0]; *s = a.j; s[1] = a.k;}voidbar (unsigned char v){ v8qi val8 = { v, v, v, v, v, v, v, v }; v8qi *s = (v8qi *) &S[0]; *s = val8;}int n = 5, cnt;intnum (void){ ++cnt; return n;}voidbaz (void){ static A a = { 0, { num (), num (), num (), num (), 6, 6, 6, 6 }, { 7, 7, 7, 7, 8, 8, 8, 8 }, 0 }; v8qi *s = (v8qi *) &S[0]; *s = a.j; s[1] = a.k;}intmain (){ int i; foo (1); for (i = 0; i < 8; ++i) if (S[i] != 1) abort (); for (; i < 16; ++i) if (S[i] != 2) abort (); bar (3); for (i = 0; i < 8; ++i) if (S[i] != 3) abort (); return 0; baz (); if (cnt != 4) abort (); for (i = 0; i < 16; ++i) if (S[i] != 5 + (i / 4)) abort (); return 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?