Test even and odd multiples of 32 width because some AVX2 routines have conditional logic based on that.
Showing the changes to test/processing/ProcessUT_VaaCalc.cpp (1 of 1 file). Show all
Unified · Split
| @@ -590,20 +590,22 @@ TEST (VAACalcFuncTest, func) { \ · 589 unmodified lines | |||
| 590 | int32_t pic_height_a; \ | 590 | int32_t pic_height_a; \ |
| 591 | int32_t pic_stride_a; \ | 591 | int32_t pic_stride_a; \ |
| 592 | int32_t psadframe_a; \ | 592 | int32_t psadframe_a; \ |
| 593 | pic_width_c = pic_width_a = 320-16; \ | 593 | for (int i=0; i<4; i++) { \ |
| 594 | pic_height_c = pic_height_a = 320; \ | 594 | pic_width_c = pic_width_a = 320-16*i; \ |
| 595 | pic_stride_c = pic_stride_a = 320; \ | 595 | pic_height_c = pic_height_a = 320; \ |
| 596 | psadframe_c = psadframe_a = 0; \ | 596 | pic_stride_c = pic_stride_a = 320; \ |
| 597 | for (int j=0; j<BUFFER_SIZE; j++) { \ | 597 | psadframe_c = psadframe_a = 0; \ |
| 598 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ | 598 | for (int j=0; j<BUFFER_SIZE; j++) { \ |
| 599 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ | 599 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ |
| 600 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 600 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ |
| 601 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | ||
| 602 | } \ | ||
| 603 | VAACalcSad_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c); \ | ||
| 604 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a); \ | ||
| 605 | ASSERT_EQ (psadframe_a, psadframe_c); \ | ||
| 606 | for (int j=0; j<(BUFFER_SIZE/64); j++) \ | ||
| 607 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ | ||
| 601 | } \ | 608 | } \ |
| 602 | VAACalcSad_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c); \ | ||
| 603 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a); \ | ||
| 604 | ASSERT_EQ (psadframe_a, psadframe_c); \ | ||
| 605 | for (int j=0; j<(BUFFER_SIZE/64); j++) \ | ||
| 606 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ | ||
| 607 | } | 609 | } |
| 608 | 610 | ||
| 609 | 611 | ||
| @@ -633,24 +635,26 @@ TEST (VAACalcFuncTest, func) { \ · 23 unmodified lines | |||
| 633 | int32_t pic_height_a; \ | 635 | int32_t pic_height_a; \ |
| 634 | int32_t pic_stride_a; \ | 636 | int32_t pic_stride_a; \ |
| 635 | int32_t psadframe_a; \ | 637 | int32_t psadframe_a; \ |
| 636 | pic_width_c = pic_width_a = 320-16; \ | 638 | for (int i=0; i<4; i++) { \ |
| 637 | pic_height_c = pic_height_a = 320; \ | 639 | pic_width_c = pic_width_a = 320-16*i; \ |
| 638 | pic_stride_c = pic_stride_a = 320; \ | 640 | pic_height_c = pic_height_a = 320; \ |
| 639 | psadframe_c = psadframe_a = 0; \ | 641 | pic_stride_c = pic_stride_a = 320; \ |
| 640 | for (int j=0; j<BUFFER_SIZE; j++) { \ | 642 | psadframe_c = psadframe_a = 0; \ |
| 641 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ | 643 | for (int j=0; j<BUFFER_SIZE; j++) { \ |
| 642 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ | 644 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ |
| 643 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 645 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ |
| 644 | psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 646 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 645 | pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 647 | psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 646 | } \ | 648 | pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 647 | VAACalcSadBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psd8x8_c, pmad8x8_c); \ | 649 | } \ |
| 648 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psd8x8_a, pmad8x8_a); \ | 650 | VAACalcSadBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psd8x8_c, pmad8x8_c); \ |
| 649 | ASSERT_EQ (psadframe_a, psadframe_c); \ | 651 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psd8x8_a, pmad8x8_a); \ |
| 650 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ | 652 | ASSERT_EQ (psadframe_a, psadframe_c); \ |
| 651 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ | 653 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ |
| 652 | ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \ | 654 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ |
| 653 | ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \ | 655 | ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \ |
| 656 | ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \ | ||
| 657 | } \ | ||
| 654 | } \ | 658 | } \ |
| 655 | } | 659 | } |
| 656 | 660 | ||
| @@ -682,28 +686,30 @@ TEST (VAACalcFuncTest, func) { \ · 25 unmodified lines | |||
| 682 | int32_t pic_height_a; \ | 686 | int32_t pic_height_a; \ |
| 683 | int32_t pic_stride_a; \ | 687 | int32_t pic_stride_a; \ |
| 684 | int32_t psadframe_a; \ | 688 | int32_t psadframe_a; \ |
| 685 | pic_width_c = pic_width_a = 320-16; \ | 689 | for (int i=0; i<4; i++) { \ |
| 686 | pic_height_c = pic_height_a = 320; \ | 690 | pic_width_c = pic_width_a = 320-16*i; \ |
| 687 | pic_stride_c = pic_stride_a = 320; \ | 691 | pic_height_c = pic_height_a = 320; \ |
| 688 | psadframe_c = psadframe_a = 0; \ | 692 | pic_stride_c = pic_stride_a = 320; \ |
| 689 | for (int j=0; j<BUFFER_SIZE; j++) { \ | 693 | psadframe_c = psadframe_a = 0; \ |
| 690 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ | 694 | for (int j=0; j<BUFFER_SIZE; j++) { \ |
| 691 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ | 695 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ |
| 692 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 696 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ |
| 693 | psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 697 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 694 | psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 698 | psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 695 | psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 699 | psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 696 | } \ | 700 | psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 697 | VAACalcSadSsd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c); \ | 701 | } \ |
| 698 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a); \ | 702 | VAACalcSadSsd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c); \ |
| 699 | ASSERT_EQ (psadframe_a, psadframe_c); \ | 703 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a); \ |
| 700 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ | 704 | ASSERT_EQ (psadframe_a, psadframe_c); \ |
| 701 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ | 705 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ |
| 702 | } \ | 706 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ |
| 703 | for (int j=0; j<(BUFFER_SIZE/256); j++) {\ | 707 | } \ |
| 704 | ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \ | 708 | for (int j=0; j<(BUFFER_SIZE/256); j++) {\ |
| 705 | ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \ | 709 | ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \ |
| 706 | ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \ | 710 | ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \ |
| 711 | ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \ | ||
| 712 | } \ | ||
| 707 | } \ | 713 | } \ |
| 708 | } | 714 | } |
| 709 | 715 | ||
| @@ -733,26 +739,28 @@ TEST (VAACalcFuncTest, func) { \ · 23 unmodified lines | |||
| 733 | int32_t pic_height_a; \ | 739 | int32_t pic_height_a; \ |
| 734 | int32_t pic_stride_a; \ | 740 | int32_t pic_stride_a; \ |
| 735 | int32_t psadframe_a; \ | 741 | int32_t psadframe_a; \ |
| 736 | pic_width_c = pic_width_a = 320-16; \ | 742 | for (int i=0; i<4; i++) { \ |
| 737 | pic_height_c = pic_height_a = 320; \ | 743 | pic_width_c = pic_width_a = 320-16*i; \ |
| 738 | pic_stride_c = pic_stride_a = 320; \ | 744 | pic_height_c = pic_height_a = 320; \ |
| 739 | psadframe_c = psadframe_a = 0; \ | 745 | pic_stride_c = pic_stride_a = 320; \ |
| 740 | for (int j=0; j<BUFFER_SIZE; j++) { \ | 746 | psadframe_c = psadframe_a = 0; \ |
| 741 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ | 747 | for (int j=0; j<BUFFER_SIZE; j++) { \ |
| 742 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ | 748 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ |
| 743 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 749 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ |
| 744 | psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 750 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 745 | psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 751 | psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 746 | } \ | 752 | psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 747 | VAACalcSadVar_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c); \ | 753 | } \ |
| 748 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a); \ | 754 | VAACalcSadVar_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c); \ |
| 749 | ASSERT_EQ (psadframe_a, psadframe_c); \ | 755 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a); \ |
| 750 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ | 756 | ASSERT_EQ (psadframe_a, psadframe_c); \ |
| 751 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ | 757 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ |
| 752 | } \ | 758 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ |
| 753 | for (int j=0; j<(BUFFER_SIZE/256); j++) {\ | 759 | } \ |
| 754 | ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \ | 760 | for (int j=0; j<(BUFFER_SIZE/256); j++) {\ |
| 755 | ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \ | 761 | ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \ |
| 762 | ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \ | ||
| 763 | } \ | ||
| 756 | } \ | 764 | } \ |
| 757 | } | 765 | } |
| 758 | 766 | ||
| @@ -788,32 +796,34 @@ TEST (VAACalcFuncTest, func) { \ · 29 unmodified lines | |||
| 788 | int32_t pic_height_a; \ | 796 | int32_t pic_height_a; \ |
| 789 | int32_t pic_stride_a; \ | 797 | int32_t pic_stride_a; \ |
| 790 | int32_t psadframe_a; \ | 798 | int32_t psadframe_a; \ |
| 791 | pic_width_c = pic_width_a = 320-16; \ | 799 | for (int i=0; i<4; i++) { \ |
| 792 | pic_height_c = pic_height_a = 320; \ | 800 | pic_width_c = pic_width_a = 320-16*i; \ |
| 793 | pic_stride_c = pic_stride_a = 320; \ | 801 | pic_height_c = pic_height_a = 320; \ |
| 794 | psadframe_c = psadframe_a = 0; \ | 802 | pic_stride_c = pic_stride_a = 320; \ |
| 795 | for (int j=0; j<BUFFER_SIZE; j++) { \ | 803 | psadframe_c = psadframe_a = 0; \ |
| 796 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ | 804 | for (int j=0; j<BUFFER_SIZE; j++) { \ |
| 797 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ | 805 | cur_data_c[j] = cur_data_a[j] = (rand()%256); \ |
| 798 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 806 | ref_data_c[j] = ref_data_a[j] = (rand()%256); \ |
| 799 | psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 807 | psad8x8_c[j%(BUFFER_SIZE/64)] = psad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 800 | pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ | 808 | psd8x8_c[j%(BUFFER_SIZE/64)] = psd8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 801 | psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 809 | pmad8x8_c[j%(BUFFER_SIZE/64)] = pmad8x8_a[j%(BUFFER_SIZE/64)] = (rand()%256); \ |
| 802 | psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 810 | psum16x16_c[j%(BUFFER_SIZE/256)] = psum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 803 | psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ | 811 | psqsum16x16_c[j%(BUFFER_SIZE/256)] = psqsum16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 804 | } \ | 812 | psqdiff16x16_c[j%(BUFFER_SIZE/256)] = psqdiff16x16_a[j%(BUFFER_SIZE/256)] = (rand()%256); \ |
| 805 | VAACalcSadSsdBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c, psd8x8_c, pmad8x8_c); \ | 813 | } \ |
| 806 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a, psd8x8_a, pmad8x8_a); \ | 814 | VAACalcSadSsdBgd_ref (cur_data_c, ref_data_c, pic_width_c, pic_height_c, pic_stride_c, &psadframe_c, psad8x8_c, psum16x16_c, psqsum16x16_c, psqdiff16x16_c, psd8x8_c, pmad8x8_c); \ |
| 807 | ASSERT_EQ (psadframe_a, psadframe_c); \ | 815 | func (cur_data_a, ref_data_a, pic_width_a, pic_height_a, pic_stride_a, &psadframe_a, psad8x8_a, psum16x16_a, psqsum16x16_a, psqdiff16x16_a, psd8x8_a, pmad8x8_a); \ |
| 808 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ | 816 | ASSERT_EQ (psadframe_a, psadframe_c); \ |
| 809 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ | 817 | for (int j=0; j<(BUFFER_SIZE/64); j++) {\ |
| 810 | ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \ | 818 | ASSERT_EQ (psad8x8_a[j], psad8x8_c[j]); \ |
| 811 | ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \ | 819 | ASSERT_EQ (psd8x8_a[j], psd8x8_c[j]); \ |
| 812 | } \ | 820 | ASSERT_EQ (pmad8x8_a[j], pmad8x8_c[j]); \ |
| 813 | for (int j=0; j<(BUFFER_SIZE/256); j++) {\ | 821 | } \ |
| 814 | ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \ | 822 | for (int j=0; j<(BUFFER_SIZE/256); j++) {\ |
| 815 | ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \ | 823 | ASSERT_EQ (psum16x16_a[j], psum16x16_c[j]); \ |
| 816 | ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \ | 824 | ASSERT_EQ (psqsum16x16_a[j], psqsum16x16_c[j]); \ |
| 825 | ASSERT_EQ (psqdiff16x16_a[j], psqdiff16x16_c[j]); \ | ||
| 826 | } \ | ||
| 817 | } \ | 827 | } \ |
| 818 | } | 828 | } |
| 819 | 829 | ||