Blob Blame History Raw
From 051a6f6f3fe71602d4c13aa8f3cda40cd3c7484d Mon Sep 17 00:00:00 2001
From: Jose Dapena Paz <jdapena@igalia.com>
Date: Tue, 07 Jul 2020 16:10:14 +0000
Subject: [PATCH] fixup: SIMD for main loop of a-rate DelayNode

Similar to previous fix to oscillator node. In GCC, an implicit cast to
m128i of the result of mm_cmplt_ps is not valid. In this case, as the
next usage of the return value is already an m128, we just change the
type of the return value to m128 too.

Bug: 819294
Change-Id: I9ae9103a837920a5bfe432d7c81930bb4a5fce78
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2283211
Reviewed-by: Raymond Toy <rtoy@chromium.org>
Commit-Queue: José Dapena Paz <jdapena@igalia.com>
Cr-Commit-Position: refs/heads/master@{#785770}
---

diff --git a/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc b/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc
index 6d26a4d..7b244a6 100644
--- a/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc
+++ b/third_party/blink/renderer/platform/audio/audio_delay_dsp_kernel.cc
@@ -142,7 +142,7 @@
   // Wrap the read position if it exceed the buffer length.
 
   // If buffer length < read_position, set cmp to 0xffffffff.  Otherwise zero.
-  __m128i cmp = _mm_cmplt_ps(v_buffer_length, v_position);
+  __m128 cmp = _mm_cmplt_ps(v_buffer_length, v_position);
 
   // Bitwise and buffer_length with cmp to get buffer_length or 0 depending on
   // whether read_position >= buffer length or not.  Then subtract from the