1// RUN: llvm-mc -triple arm -mattr=+fp16fml,+neon -show-encoding < %s | FileCheck %s --check-prefix=CHECK 2// RUN: llvm-mc -triple thumb -mattr=+fp16fml,+neon -show-encoding < %s | FileCheck %s --check-prefix=CHECK-T32 3// RUN: llvm-mc -triple arm -mattr=-fullfp16,+fp16fml,+neon -show-encoding < %s | FileCheck %s --check-prefix=CHECK 4// RUN: llvm-mc -triple thumb -mattr=-fullfp16,+fp16fml,+neon -show-encoding < %s | FileCheck %s --check-prefix=CHECK-T32 5 6// RUN: not llvm-mc -triple arm -mattr=+v8.2a -show-encoding < %s 2> %t 7// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML-NOR-NEON < %t %s 8// RUN: not llvm-mc -triple thumb -mattr=+v8.2a -show-encoding < %s 2> %t 9// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML-NOR-NEON < %t %s 10 11// RUN: not llvm-mc -triple arm -mattr=+v8.2a,+neon -show-encoding < %s 2> %t 12// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 13// RUN: not llvm-mc -triple thumb -mattr=+v8.2a,+neon -show-encoding < %s 2> %t 14// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 15 16// RUN: not llvm-mc -triple arm -mattr=+v8.2a,+neon,+fp16fml,-fp16fml -show-encoding < %s 2> %t 17// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 18// RUN: not llvm-mc -triple thumb -mattr=+v8.2a,+neon,+fp16fml,-fp16fml -show-encoding < %s 2> %t 19// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 20 21// RUN: not llvm-mc -triple arm -mattr=+v8.2a,+neon,+fullfp16 -show-encoding < %s 2> %t 22// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 23// RUN: not llvm-mc -triple thumb -mattr=+v8.2a,+neon,+fullfp16 -show-encoding < %s 2> %t 24// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 25 26// RUN: not llvm-mc -triple arm -mattr=+v8.2a,+neon,+fp16fml,-fullfp16 -show-encoding < %s 2> %t 27// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 28// RUN: not llvm-mc -triple thumb -mattr=+v8.2a,+neon,+fp16fml,-fullfp16 -show-encoding < %s 2> %t 29// RUN: FileCheck --check-prefix=CHECK-NO-FP16FML < %t %s 30 31// RUN: not llvm-mc -triple arm -mattr=+v8.2a,+fp16fml -show-encoding < %s 2> %t 32// RUN: FileCheck --check-prefix=CHECK-NO-NEON < %t %s 33// RUN: not llvm-mc -triple thumb -mattr=+v8.2a,+fp16fml -show-encoding < %s 2> %t 34// RUN: FileCheck --check-prefix=CHECK-NO-NEON < %t %s 35 36VFMAL.F16 D0, S1, S2 37vfmsl.f16 d0, s1, s2 38vfmal.f16 q0, d1, d2 39VFMSL.F16 Q0, D1, D2 40 41VFMAL.F16 D0, S1, S2[1] 42vfmsl.f16 d0, s1, s2[1] 43vfmal.f16 q0, d1, d2[3] 44VFMSL.F16 Q0, D1, D2[3] 45 46//CHECK: vfmal.f16 d0, s1, s2 @ encoding: [0x91,0x08,0x20,0xfc] 47//CHECK: vfmsl.f16 d0, s1, s2 @ encoding: [0x91,0x08,0xa0,0xfc] 48//CHECK: vfmal.f16 q0, d1, d2 @ encoding: [0x52,0x08,0x21,0xfc] 49//CHECK: vfmsl.f16 q0, d1, d2 @ encoding: [0x52,0x08,0xa1,0xfc] 50 51//CHECK: vfmal.f16 d0, s1, s2[1] @ encoding: [0x99,0x08,0x00,0xfe] 52//CHECK: vfmsl.f16 d0, s1, s2[1] @ encoding: [0x99,0x08,0x10,0xfe] 53//CHECK: vfmal.f16 q0, d1, d2[3] @ encoding: [0x7a,0x08,0x01,0xfe] 54//CHECK: vfmsl.f16 q0, d1, d2[3] @ encoding: [0x7a,0x08,0x11,0xfe] 55 56//CHECK-T32: vfmal.f16 d0, s1, s2 @ encoding: [0x20,0xfc,0x91,0x08] 57//CHECK-T32: vfmsl.f16 d0, s1, s2 @ encoding: [0xa0,0xfc,0x91,0x08] 58//CHECK-T32: vfmal.f16 q0, d1, d2 @ encoding: [0x21,0xfc,0x52,0x08] 59//CHECK-T32: vfmsl.f16 q0, d1, d2 @ encoding: [0xa1,0xfc,0x52,0x08] 60 61//CHECK-T32: vfmal.f16 d0, s1, s2[1] @ encoding: [0x00,0xfe,0x99,0x08] 62//CHECK-T32: vfmsl.f16 d0, s1, s2[1] @ encoding: [0x10,0xfe,0x99,0x08] 63//CHECK-T32: vfmal.f16 q0, d1, d2[3] @ encoding: [0x01,0xfe,0x7a,0x08] 64//CHECK-T32: vfmsl.f16 q0, d1, d2[3] @ encoding: [0x11,0xfe,0x7a,0x08] 65 66//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 67//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 68//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 69//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 70//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 71//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 72//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 73//CHECK-NO-FP16FML: instruction requires: full half-float fml{{$}} 74 75//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 76//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 77//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 78//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 79//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 80//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 81//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 82//CHECK-NO-FP16FML-NOR-NEON: instruction requires: full half-float fml NEON{{$}} 83 84//CHECK-NO-NEON: instruction requires: NEON{{$}} 85//CHECK-NO-NEON: instruction requires: NEON{{$}} 86//CHECK-NO-NEON: instruction requires: NEON{{$}} 87//CHECK-NO-NEON: instruction requires: NEON{{$}} 88//CHECK-NO-NEON: instruction requires: NEON{{$}} 89//CHECK-NO-NEON: instruction requires: NEON{{$}} 90//CHECK-NO-NEON: instruction requires: NEON{{$}} 91//CHECK-NO-NEON: instruction requires: NEON{{$}} 92 93