File v8-simd-flax-vector-conversions.patch of Package nodejs-electron

--- src/v8/src/objects/simd.cc.orig	2025-08-15 17:36:40.113358284 +0200
+++ src/v8/src/objects/simd.cc	2025-08-17 16:29:26.826424105 +0200
@@ -953,7 +953,7 @@ bool Uint8ArrayFromHexWithNeon(const bas
       uint8x16_t second_part_first_batch =
           vld1q_u8(reinterpret_cast<const uint8_t*>(&input_vector[i + 8]));
       first_batch =
-          vmovn_high_u16(vmovn_u16(first_batch), second_part_first_batch);
+          vmovn_high_u16(vmovn_u16(vreinterpretq_u16_u8(first_batch)), vreinterpretq_u16_u8(second_part_first_batch));
     }
 
     // Load second batch of 16 hex characters into a Neon register
@@ -966,20 +966,20 @@ bool Uint8ArrayFromHexWithNeon(const bas
       uint8x16_t second_part_second_batch =
           vld1q_u8(reinterpret_cast<const uint8_t*>(&input_vector[i + 24]));
       second_batch =
-          vmovn_high_u16(vmovn_u16(second_batch), second_part_second_batch);
+          vmovn_high_u16(vmovn_u16(vreinterpretq_u16_u8(second_batch)), vreinterpretq_u16_u8(second_part_second_batch));
     }
 
     // low nibbles are values with even indexes in fist_batch.
     // (0x36, 0x00, 0x66, 0x00, 0x46, 0x00, 0x32, 0x00, 0x31, 0x00, 0x32, 0x00,
     // 0x31, 0x00, 0x32, 0x00)
-    uint8x16_t first_batch_lo_nibbles =
-        vreinterpretq_u8_u16(vshrq_n_u16(vreinterpretq_u16_u8(first_batch), 8));
+    uint16x8_t first_batch_lo_nibbles =
+        vshrq_n_u16(vreinterpretq_u16_u8(first_batch), 8);
 
     // low nibbles are values with even indexes in second_batch.
     // (0x36, 0x00, 0x66, 0x00, 0x66, 0x00, 0x32, 0x00, 0x31, 0x00, 0x32, 0x00,
     // 0x31, 0x00, 0x66, 0x00)
-    uint8x16_t second_batch_lo_nibbles = vreinterpretq_u8_u16(
-        vshrq_n_u16(vreinterpretq_u16_u8(second_batch), 8));
+    uint16x8_t second_batch_lo_nibbles =
+        vshrq_n_u16(vreinterpretq_u16_u8(second_batch), 8);
 
     // Append low nibbles of first batch and second batch and remove 0x00s.
     // (0x36, 0x66, 0x46, 0x32, 0x31, 0x32, 0x31, 0x32, 0x36, 0x66, 0x66, 0x32,
@@ -992,7 +992,7 @@ bool Uint8ArrayFromHexWithNeon(const bas
     // significant byte. (0x36, 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x37, 0x36,
     // 0x36, 0x36, 0x36, 0x36, 0x37, 0x36, 0x66)
     uint8x16_t hi_nibbles =
-        vmovn_high_u16(vmovn_u16(first_batch), second_batch);
+        vmovn_high_u16(vmovn_u16(vreinterpretq_u16_u8(first_batch)), vreinterpretq_u16_u8(second_batch));
 
     // mapping low nibbles to uint8_t values.
     // (0x06, 0x0f, 0x0f, 0x02, 0x01, 0x02, 0x01, 0x02, 0x06, 0x0f, 0x0f, 0x02,
@@ -1023,7 +1023,7 @@ bool Uint8ArrayFromHexWithNeon(const bas
     // (0x60, 0x60, 0x60, 0x60, 0x60, 0x70, 0x60, 0x70, 0x60, 0x60, 0x60, 0x60,
     // 0x60, 0x70, 0x60, 0xf0)
     uint8x16_t uint8_shifted_high_nibbles =
-        vshlq_n_u64(vreinterpretq_u64_u8(uint8_high_nibbles), 4);
+        vreinterpretq_u8_u64(vshlq_n_u64(vreinterpretq_u64_u8(uint8_high_nibbles), 4));
 
     // final result of combining pairs of uint8_t values of low and high
     // nibbles.
openSUSE Build Service is sponsored by