541{
543
545 int bo1;
546#ifndef NO_EQUALIZER
548#endif
549 if(!channel)
550 {
554 }
555 else
556 {
559 }
560
562 {
566 }
567 else
568 {
572 }
573
574
575 {
578
580 vector unsigned char vperm1,vperm2,vperm3,vperm4, vperm5;
581 vector float vsum,vsum2,vsum3,vsum4,vscale,vzero;
582 vector float vsample1,vsample2,vsample3;
583 vzero = vec_xor(vzero, vzero);
584#ifdef __APPLE__
586 vperm4 = (
vector unsigned char)(0,1,2,3,20,21,22,23,4,5,6,7,28,29,30,31);
587 vperm5 = (
vector unsigned char)(8,9,10,11,20,21,22,23,12,13,14,15,28,29,30,31);
588#else
589 vscale = (
vector float){1.0f/32768.0f,1.0f/32768.0f,1.0f/32768.0f,1.0f/32768.0f};
590 vperm4 = (
vector unsigned char){0,1,2,3,20,21,22,23,4,5,6,7,28,29,30,31};
591 vperm5 = (
vector unsigned char){8,9,10,11,20,21,22,23,12,13,14,15,28,29,30,31};
592#endif
593
594 vperm1 = vec_lvsl(0,
window);
598 {
600
601 vsum = vec_sub(v5,v6);
602 v9 = vec_sub(v7,v8);
603 vsum = vec_add(vsum,v9);
604 vsum = vec_madd(vsum, vscale, vzero);
605
609 v1 = vec_perm(vsample1, vsample2, vperm2);
610 v2 = vec_perm(vsample2, vsample3, vperm2);
611 v1 = vec_perm(vsum,
v1, vperm4);
612 v2 = vec_perm(vsum,
v2, vperm5);
613 v3 = vec_perm(vsample3, vsample2, vperm2);
614 v4 = vec_perm(vsample2, vsample1, vperm2);
615 v5 = vec_perm(
v2,
v3, vperm3);
616 v6 = vec_perm(
v1,
v2, vperm3);
617 v7 = vec_perm(v4,
v1, vperm3);
622 }
623
625 {
627
628 vsum = vec_add(v5,v6);
629 v9 = vec_add(v7,v8);
630 vsum = vec_add(vsum,v9);
631 vsum = vec_madd(vsum, vscale, vzero);
632
636 v1 = vec_perm(vsample1, vsample2, vperm2);
637 v2 = vec_perm(vsample2, vsample3, vperm2);
638 v1 = vec_perm(vsum,
v1, vperm4);
639 v2 = vec_perm(vsum,
v2, vperm5);
640 v3 = vec_perm(vsample3, vsample2, vperm2);
641 v4 = vec_perm(vsample2, vsample1, vperm2);
642 v5 = vec_perm(
v2,
v3, vperm3);
643 v6 = vec_perm(
v1,
v2, vperm3);
644 v7 = vec_perm(v4,
v1, vperm3);
649 }
650 }
651 if(
final) fr->
buffer.fill += 256;
652
653 return 0;
654}