Пример #1
0
void TurnJavaModeOff(void) {

	vector unsigned int javaOffMask = ( vector unsigned int ) ( 0x00010000 );
	vector unsigned int java;

	gOldJavaMode = ( vector unsigned int ) vec_mfvscr ( );

	java = vec_or ( gOldJavaMode, javaOffMask );
	vec_mtvscr ( java );

}
void
b()
{
  z = vec_add (x, y);

  /* Make sure the predicates accept correct argument types.  */

  int1 = vec_all_in (f, g);
  int1 = vec_all_ge (f, g);
  int1 = vec_all_eq (c, d);
  int1 = vec_all_ne (s, t);
  int1 = vec_any_eq (i, j);
  int1 = vec_any_ge (f, g);
  int1 = vec_all_ngt (f, g);
  int1 = vec_any_ge (c, d);
  int1 = vec_any_ge (s, t);
  int1 = vec_any_ge (i, j);
  int1 = vec_any_ge (c, d);
  int1 = vec_any_ge (s, t);
  int1 = vec_any_ge (i, j);

  vec_mtvscr (i);
  vec_dssall ();
  s = (vector signed short) vec_mfvscr ();
  vec_dss (3);

  vec_dst (pi, int1 + int2, 3);
  vec_dstst (pi, int1 + int2, 3);
  vec_dststt (pi, int1 + int2, 3);
  vec_dstt (pi, int1 + int2, 3);

  uc = (vector unsigned char) vec_lvsl (int1 + 69, (signed int *) pi);
  uc = (vector unsigned char) vec_lvsr (int1 + 69, (signed int *) pi);

  c = vec_lde (int1, (signed char *) pi);
  s = vec_lde (int1, (signed short *) pi);
  i = vec_lde (int1, (signed int *) pi);
  i = vec_ldl (int1, pi);
  i = vec_ld (int1, pi);

  vec_st (i, int2, pi);
  vec_ste (c, int2, (signed char *) pi);
  vec_ste (s, int2, (signed short *) pi);
  vec_ste (i, int2, (signed int *) pi);
  vec_stl (i, int2, pi);
}
Пример #3
0
void set_ftz(){

#if defined(__i386__) || defined(__x86_64__)
#ifndef _CRAYC
  _MM_SET_FLUSH_ZERO_MODE (_MM_FLUSH_ZERO_ON);
#endif

#elif defined(__PPC__) || defined(__PPC64__)

//    Altivec non-IEEE mode for subnormal (denormalized) values.
//  m*vscr requires vector types even for writing to registers (disturbing)
//  so the high order bits are index'd.
  
  vector unsigned short vscr = vec_mfvscr();
  vscr[1] |= 1;   // (1<<16) in reg
  vec_mtvscr(vscr);

#endif
}