Hi<div><br></div><div>I started to play with vector instruction with clang3.3 on ubuntu 12.04 32bit</div><div>I made a little test case (see code below) which crash when i try to compare to vector or display some element ... Is that normal?</div>
<div><br></div><div>Thank you for your help.</div><div><br></div><div>-----------------------------------------------------------------------------------------------------------------</div><div><div><div>#include <stdio.h></div>
<div>#include <stdint.h></div><div>#include <iostream></div><div><br></div><div>typedef uint64_t __v2i __attribute__ ((__vector_size__ (16)));</div><div>typedef uint32_t __v4i __attribute__ ((__vector_size__ (16)));</div>
<div>typedef char __v16i __attribute__ ((__vector_size__ (16)));</div><div><br></div><div>int main(){</div><div><span class="Apple-tab-span" style="white-space:pre"> </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>uint32_t array[10][4];</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>for(uint32_t i = 0; i < 10; i++){</div><div><span class="Apple-tab-span" style="white-space:pre">         </span>array[i][0] = 10*i +1;</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>array[i][1] = 10*i +2;</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>array[i][2] = 10*i +3;</div><div><span class="Apple-tab-span" style="white-space:pre">               </span>array[i][3] = 10*i +4;</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>__v4i vectOne = (__v4i) {1, 1, 1, 1};</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>__v4i* vectArray = (__v4i*)&array;</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">      </span>for(uint32_t i = 0; i < 10; i++){</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>__v4i vectArrayLine = (__v4i) {array[i][0], array[i][1], array[i][2], array[i][3]};</div><div><span class="Apple-tab-span" style="white-space:pre">          </span>fprintf(stderr, "%d : 0x%x 0x%x 0x%x 0x%x\n", i, vectArrayLine[0], vectArrayLine[1], vectArrayLine[2], vectArrayLine[3]);<span class="Apple-tab-span" style="white-space:pre"> </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>uint32_t* v;</div><div><span class="Apple-tab-span" style="white-space:pre">         </span>v = (uint32_t*)&vectArray[i];</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>fprintf(stderr, "%d : 0x%x 0x%x 0x%x 0x%x\n", i, v[0], v[1], v[2], v[3]);</div><div><span class="Apple-tab-span" style="white-space:pre">          </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>fprintf(stderr, "%d : 0x%x\n", i, vectArray[i][0]);<span class="Apple-tab-span" style="white-space:pre">       </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>fprintf(stderr, "%d : 0x%x\n", i, vectArray[i][1]);<span class="Apple-tab-span" style="white-space:pre">       </span></div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span>fprintf(stderr, "%d : 0x%x\n", i, vectArray[i][2]);<span class="Apple-tab-span" style="white-space:pre">       </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>fprintf(stderr, "%d : 0x%x\n", i, vectArray[i][3]);</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>//fprintf(stderr, "%d : 0x%x 0x%x 0x%x 0x%x\n", i, vectArray[i][0], vectArray[i][1], vectArray[i][2], vectArray[i][3]);<span class="Apple-tab-span" style="white-space:pre">   </span>// this line crash ??</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span></div><div>                __v4i vcomp0 = (vectOne == vectArrayLine ); //ok</div><div><span class="Apple-tab-span" style="white-space:pre">              </span>//__v4i vcomp = (vectOne == vectArray[0]); // this line crash</div>
<div><span class="Apple-tab-span" style="white-space:pre">              </span></div><div><span class="Apple-tab-span" style="white-space:pre">             </span>//fprintf(stderr, "%d : 0x%x 0x%x 0x%x 0x%x\n", i, vcomp[0], vcomp[1], vcomp[2], vcomp[3]);</div>
<div><span class="Apple-tab-span" style="white-space:pre">      </span>}</div><div><span class="Apple-tab-span" style="white-space:pre">    </span></div><div><span class="Apple-tab-span" style="white-space:pre">     </span>return 0;</div>
<div>}</div></div><div>-----------------------------------------------------------------------------------------------------------------</div></div>