[PATCH] Implement aarch64 neon instruction class AdvSIMD (by element) - LLVM

Jiangning Liu liujiangning1 at gmail.com
Sun Sep 29 20:34:52 PDT 2013


Tim,

Actually I already added a new test 
http://llvm-reviews.chandlerc.com/D1753#dd97ddbf to check fmla will not 
be generated when -fp-contract=fast is not in command line, although I'm 
using CHECK rather than CHECK-NOT.

; RUN: llc < %s -verify-machineinstrs -mtriple=aarch64-none-linux-gnu 
-mattr=+neon | FileCheck %s

define <2 x float> @test_vfma_lane_f32(<2 x float> %a, <2 x float> %b, 
<2 x float> %v) {
; CHECK: test_vfma_lane_f32:
; CHECK: fmul {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.s[{{[0-9]+}}]
; CHECK: fadd {{v[0-9]+}}.2s, {{v[0-9]+}}.2s, {{v[0-9]+}}.2s
entry:
   %shuffle = shufflevector <2 x float> %v, <2 x float> undef, <2 x i32> 
<i32 1, i32 1>
   %mul = fmul <2 x float> %shuffle, %b
   %add = fadd <2 x float> %mul, %a
   ret <2 x float> %add
}

Thanks,
-Jiangning

On 09/30/2013 01:52 AM, Tim Northover wrote:
> Hi Jiangning,
>
> Sorry I didn't get a chance to reply on Friday, and thanks for
> reworking the patch.
>
>>    For register definition 'Re', I didn't make change.
> Fair enough.
>
> I think it looks pretty much OK now, though I'd be happier if there
> was a test that we *weren't* generating fmla instructions all the time
> (perhaps with a comment about it being intentional). It's a very
> tempting "optimisation" to make.
>
> I think you should commit, with or without that though. I'll take a
> look over the revision after-wards.
>
> Cheers.
>
> Tim.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130930/14dd8401/attachment.html>


More information about the llvm-commits mailing list