<div dir="ltr"><div><div><div><div><div>Hi AArch64 experts -<br><br></div>I'm working on a DAGCombiner patch, and it causes a change in an existing regression test.<br></div><br>We're generating this:<br>   ext    v0.16b, v1.16b, v1.16b, #8<br></div><div><br></div>Rather than this:<br>   mov    d0, v1.d[1]<br> <br></div>Are those logically equivalent? Is one form preferred over the other?<br><br></div>This is the IR test case in /test/CodeGen/AArch64/neon-scalar-copy.ll:<br><br>define <1 x i64> @test_vector_copy_dup_dv2D(<1 x i64> %a, <2 x i64> %c) {<br>  ; CHECK-LABEL: test_vector_copy_dup_dv2D<br>  ; CHECK: {{dup|mov}} {{d[0-9]+}}, {{v[0-9]+}}.d[1]<br>  %vget_lane = extractelement <2 x i64> %c, i32 1<br>  %vset_lane = insertelement <1 x i64> undef, i64 %vget_lane, i32 0<br>  ret <1 x i64> %vset_lane<br>}<br><br></div>