diff options
| author | 2017-10-09 08:56:21 -0600 | |
|---|---|---|
| committer | 2017-10-09 08:56:21 -0600 | |
| commit | 620f8550ddf8554ea1ae24afd15c8536617aa0fa (patch) | |
| tree | 6d354599cbdac9a50ecfe32cdcb86691d7ead5c4 /src/emu/validity.cpp | |
| parent | eb628f0296100cb21b971dce991d3916fab1ba01 (diff) | |
rgbsse: Optimize some sse routines. (nw) (#2700)
* rgbsse: Optimize some sse routines. (nw)
* rgbsse: Create a generic getter instead of having individual color operation. (nw)
* rgbsse: Allow up to 12 bits for scaling factors. (nw)
Diffstat (limited to 'src/emu/validity.cpp')
| -rw-r--r-- | src/emu/validity.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/emu/validity.cpp b/src/emu/validity.cpp index b7b6f0d6f90..b3861097b85 100644 --- a/src/emu/validity.cpp +++ b/src/emu/validity.cpp @@ -770,6 +770,38 @@ void validity_checker::validate_rgb() rgb.mul_imm_rgba(actual_a, actual_r, actual_g, actual_b); check_expected("rgbaint_t::mul_imm_rgba"); + // test select alpha element multiplication + expected_a *= actual_a = random_i32(); + expected_r *= actual_a; + expected_g *= actual_a; + expected_b *= actual_a; + rgb.mul(rgbaint_t(actual_a, actual_r, actual_g, actual_b).select_alpha32()); + check_expected("rgbaint_t::mul(select_alpha32)"); + + // test select red element multiplication + expected_a *= actual_r = random_i32(); + expected_r *= actual_r; + expected_g *= actual_r; + expected_b *= actual_r; + rgb.mul(rgbaint_t(actual_a, actual_r, actual_g, actual_b).select_red32()); + check_expected("rgbaint_t::mul(select_red32)"); + + // test select green element multiplication + expected_a *= actual_g = random_i32(); + expected_r *= actual_g; + expected_g *= actual_g; + expected_b *= actual_g; + rgb.mul(rgbaint_t(actual_a, actual_r, actual_g, actual_b).select_green32()); + check_expected("rgbaint_t::mul(select_green32)"); + + // test select blue element multiplication + expected_a *= actual_b = random_i32(); + expected_r *= actual_b; + expected_g *= actual_b; + expected_b *= actual_b; + rgb.mul(rgbaint_t(actual_a, actual_r, actual_g, actual_b).select_blue32()); + check_expected("rgbaint_t::mul(select_blue32)"); + // test RGB and not expected_a &= ~(actual_a = random_i32()); expected_r &= ~(actual_r = random_i32()); |
