[LLVMdev] AArch64 codegen question

Sanjay Patel spatel at rotateright.com
Wed Dec 10 19:47:48 PST 2014


Hi AArch64 experts -

I'm working on a DAGCombiner patch, and it causes a change in an existing
regression test.

We're generating this:
   ext    v0.16b, v1.16b, v1.16b, #8

Rather than this:
   mov    d0, v1.d[1]

Are those logically equivalent? Is one form preferred over the other?

This is the IR test case in /test/CodeGen/AArch64/neon-scalar-copy.ll:

define <1 x i64> @test_vector_copy_dup_dv2D(<1 x i64> %a, <2 x i64> %c) {
  ; CHECK-LABEL: test_vector_copy_dup_dv2D
  ; CHECK: {{dup|mov}} {{d[0-9]+}}, {{v[0-9]+}}.d[1]
  %vget_lane = extractelement <2 x i64> %c, i32 1
  %vset_lane = insertelement <1 x i64> undef, i64 %vget_lane, i32 0
  ret <1 x i64> %vset_lane
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141210/908f0b59/attachment.html>


More information about the llvm-dev mailing list