x86 _mm_sign_epi8(_m128i a,_m128i b) intrinsic NEON equivalent

I have the x86 intrinsic (_m128i _mm_sign_epi8(_m128i a,_m128i b)) it performs the following task:
for (i = 0; i < 16; i++) {
  if (b[i] < 0) {
      r[i] = -a[i];
  }
  else if (b[i] == 0) {
      r[i] = 0;
  }
  else {
     r[i] = a[i];
  }
}
I am wondering what is the best way to do this same instruction using NEON intrinsics.

More questions in this forum