; RUN: llc < %s -mtriple aarch64-none-linux-gnu -mattr=+sve -stop-after=finalize-isel | FileCheck %s --check-prefix=CHECK target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128" target triple = "aarch64-none-linux-gnu" ; Function Attrs: nounwind readnone ; CHECK: [[ARG1:%[0-9]+]]:zpr = COPY $z1 ; CHECK: [[ARG2:%[0-9]+]]:zpr = COPY $z0 ; CHECK: [[ARG3:%[0-9]+]]:zpr = COPY [[ARG2]] ; CHECK: [[ARG4:%[0-9]+]]:zpr_3b = COPY [[ARG1]] ; CHECK: INLINEASM {{.*}} [[ARG4]] define @test_svadd_i8( %Zn, %Zm) { %1 = tail call asm "add $0.b, $1.b, $2.b", "=w,w,y"( %Zn, %Zm) ret %1 } ; Function Attrs: nounwind readnone ; CHECK: [[ARG1:%[0-9]+]]:zpr = COPY $z1 ; CHECK: [[ARG2:%[0-9]+]]:zpr = COPY $z0 ; CHECK: [[ARG3:%[0-9]+]]:zpr = COPY [[ARG2]] ; CHECK: [[ARG4:%[0-9]+]]:zpr_4b = COPY [[ARG1]] ; CHECK: INLINEASM {{.*}} [[ARG4]] define @test_svsub_i64( %Zn, %Zm) { %1 = tail call asm "sub $0.d, $1.d, $2.d", "=w,w,x"( %Zn, %Zm) ret %1 } ; Function Attrs: nounwind readnone ; CHECK: [[ARG1:%[0-9]+]]:zpr = COPY $z1 ; CHECK: [[ARG2:%[0-9]+]]:zpr = COPY $z0 ; CHECK: [[ARG3:%[0-9]+]]:zpr = COPY [[ARG2]] ; CHECK: [[ARG4:%[0-9]+]]:zpr_3b = COPY [[ARG1]] ; CHECK: INLINEASM {{.*}} [[ARG4]] define @test_svfmul_f16( %Zn, %Zm) { %1 = tail call asm "fmul $0.h, $1.h, $2.h", "=w,w,y"( %Zn, %Zm) ret %1 } ; Function Attrs: nounwind readnone ; CHECK: [[ARG1:%[0-9]+]]:zpr = COPY $z1 ; CHECK: [[ARG2:%[0-9]+]]:zpr = COPY $z0 ; CHECK: [[ARG3:%[0-9]+]]:zpr = COPY [[ARG2]] ; CHECK: [[ARG4:%[0-9]+]]:zpr_4b = COPY [[ARG1]] ; CHECK: INLINEASM {{.*}} [[ARG4]] define @test_svfmul_f( %Zn, %Zm) { %1 = tail call asm "fmul $0.s, $1.s, $2.s", "=w,w,x"( %Zn, %Zm) ret %1 } ; Function Attrs: nounwind readnone ; CHECK: [[ARG1:%[0-9]+]]:zpr = COPY $z1 ; CHECK: [[ARG2:%[0-9]+]]:zpr = COPY $z0 ; CHECK: [[ARG3:%[0-9]+]]:ppr = COPY $p0 ; CHECK: [[ARG4:%[0-9]+]]:ppr_3b = COPY [[ARG3]] ; CHECK: INLINEASM {{.*}} [[ARG4]] define @test_svfadd_f16( %Pg, %Zn, %Zm) { %1 = tail call asm "fadd $0.h, $1/m, $2.h, $3.h", "=w,@3Upl,w,w"( %Pg, %Zn, %Zm) ret %1 } ; Function Attrs: nounwind readnone ; CHECK: [[ARG1:%[0-9]+]]:zpr = COPY $z0 ; CHECK: [[ARG2:%[0-9]+]]:ppr = COPY $p0 ; CHECK: [[ARG3:%[0-9]+]]:ppr = COPY [[ARG2]] ; CHECK: [[ARG4:%[0-9]+]]:zpr = COPY [[ARG1]] ; CHECK: INLINEASM {{.*}} [[ARG3]] define @test_incp( %Pg, %Zn) { %1 = tail call asm "incp $0.s, $1", "=w,@3Upa,0"( %Pg, %Zn) ret %1 }