On 14 December 2015 at 11:12, Eric Christopher <echri...@gmail.com> wrote:
> There really is a pretty good separation of concerns and for a lot if not
> most of the tests here all the difference is checking is the arguments,
> keeping track of an alloca and making sure that goes is pretty simple and
> not really hard for a test.

And the rest! This us the output for a trivial function: vqrdmulh_s16:

define <4 x i16> @foo(<4 x i16> %l, <4 x i16> %r) #0 {
entry:
  %__p0.addr.i = alloca <4 x i16>, align 8
  %__p1.addr.i = alloca <4 x i16>, align 8
  %__ret.i = alloca <4 x i16>, align 8
  %l.addr = alloca <4 x i16>, align 8
  %r.addr = alloca <4 x i16>, align 8
  store <4 x i16> %l, <4 x i16>* %l.addr, align 8
  store <4 x i16> %r, <4 x i16>* %r.addr, align 8
  %0 = load <4 x i16>, <4 x i16>* %l.addr, align 8
  %1 = load <4 x i16>, <4 x i16>* %r.addr, align 8
  store <4 x i16> %0, <4 x i16>* %__p0.addr.i, align 8
  store <4 x i16> %1, <4 x i16>* %__p1.addr.i, align 8
  %2 = load <4 x i16>, <4 x i16>* %__p0.addr.i, align 8
  %3 = bitcast <4 x i16> %2 to <8 x i8>
  %4 = load <4 x i16>, <4 x i16>* %__p1.addr.i, align 8
  %5 = bitcast <4 x i16> %4 to <8 x i8>
  %vqrdmulh_v.i = bitcast <8 x i8> %3 to <4 x i16>
  %vqrdmulh_v1.i = bitcast <8 x i8> %5 to <4 x i16>
  %vqrdmulh_v2.i = call <4 x i16> @llvm.arm.neon.vqrdmulh.v4i16(<4 x
i16> %vqrdmulh_v.i, <4 x i16> %vqrdmulh_v1.i) #2
  %vqrdmulh_v3.i = bitcast <4 x i16> %vqrdmulh_v2.i to <8 x i8>
  %6 = bitcast <8 x i8> %vqrdmulh_v3.i to <4 x i16>
  store <4 x i16> %6, <4 x i16>* %__ret.i, align 8
  %7 = load <4 x i16>, <4 x i16>* %__ret.i, align 8
  ret <4 x i16> %7
}

Is that right? Hope so, but I'm buggered if I know. And when anyone
looks at a test based on that they've got to thread 3 datapaths
through about 6 stages each without getting confused to work it out.
Possible, but for the tiny beneficial fuzzies we get from not running
opt, not worth it in my opinion.

Tim.
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to