<div dir="ltr"><div class="gmail_default" style="font-family:arial,helvetica,sans-serif;font-size:small;display:inline">Hi </div>Ana,<br><br>Sorry, I don't quite understand what you said. Do you have a small test to articulate what you mentioned?<br>
<br>For sign_extend_inreg(v2i32, v2i16), my test case below should show my patch work,<br><br>define <2 x i16> @test_sext_inreg_v2i16i32(<2 x i16> %v1, <2 x i16> %v2) nounwind readnone {<br>; CHECK-LABEL: test_sext_inreg_v2i16i32<br>
; CHECK: shl     v0.2s, v0.2s, #16<br>; CHECK: sshr    v0.2s, v0.2s, #16<br>; CHECK: shl     v1.2s, v1.2s, #16<br>; CHECK: sshr    v1.2s, v1.2s, #16<br>  %1 = sext <2 x i16> %v1 to <2 x i32><br>  %2 = sext <2 x i16> %v2 to <2 x i32><br>
  %3 = shufflevector <2 x i32> %1, <2 x i32> %2, <2 x i32> <i32 0, i32 2><br>  %4 = trunc <2 x i32> %3 to <2 x i16><br>  ret <2 x i16> %4<br>}<br><br>For sign_extend_inreg(v4i16, v8i8), is this a valid? I thought it should be sign_extend_inreg(v8i16, v8i8). If this is the case, my test below should also show my patch work,<br>
<br>define <8 x i8> @test_sext_inreg_v8i8i16(<8 x i8> %v1, <8 x i8> %v2) nounwind readnone {<br>; CHECK-LABEL: test_sext_inreg_v8i8i16<br>; CHECK: sshll   v0.8h, v0.8b, #0<br>; CHECK: sshll   v1.8h, v1.8b, #0<br>
  %1 = sext <8 x i8> %v1 to <8 x i16><br>  %2 = sext <8 x i8> %v2 to <8 x i16><br>  %3 = shufflevector <8 x i16> %1, <8 x i16> %2, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14><br>
  %4 = trunc <8 x i16> %3 to <8 x i8><br>  ret <8 x i8> %4<br>}<br><br>Thanks,<br>-Jiangning<br><br><div class="gmail_extra">
</div></div>