Untitled

homm        
0 Likes   0 Comments  golang

    ldr     q0, [x19]                   // Sx4 = vld1q_u8(&Srgba[0])
    ldr     q1, [x20]                   // Dx4 = vld1q_u8(&Drgba[0])
    movi    v17.2d, #0xffffffffffffffff
    mov     x9, xzr                     // i = 0
.LBB0_3:
    tbl     v5.16b, { v0.16b }, v16.16b // vqtbl1q_u8(Sx4, v16)
    mvn     v5.16b, v5.16b              // Sax4 = vsubq_u8(vdupq_n_u8(255), v5)
    add     x10, x9, #16                // x10 = i + 16
    umull   v3.8h, v0.8b, v17.8b        // Rx2lo = vmull_u8(Sx4, 0xff);
    umull2  v4.8h, v0.16b, v17.16b      // Rx2hi = vmull_high_u8(Sx4, 0xff)
    ldr     q0, [x19, x10]              // Sx4 = vld1q_u8(&Srgba[i + 16])
    umlal   v3.8h, v1.8b, v5.8b         // vmlal_u8(Rx2lo, Dx4, Sax4)
    umlal2  v4.8h, v1.16b, v5.16b       // vmlal_high_u8(Rx2hi, Dx4, Sax4)
    ldr     q1, [x20, x10]              // Dx4 = vld1q_u8(&Drgba[i + 16])
    ursra   v3.8h, v3.8h, #8            // vrsraq_n_u16(Rx2lo, Rx2lo, 8)
    ursra   v4.8h, v4.8h, #8            // vrsraq_n_u16(Rx2hi, Rx2hi, 8)
    uqrshrn v2.8b, v3.8h, #8            // Rx4 = vqrshrn_n_u16(Rx2lo, 8)
    uqrshrn2 v2.16b, v4.8h, #8          // vqrshrn_high_n_u16(Rx4, Rx2hi, 8)
    cmp     x10, #3972                  
    str     q2, [x21, x9]               // vst1q_u8(&Rrgba[i], Rx4)
    mov     x9, x10
    b.lo    .LBB0_3
created with codestagram