1; Show that we know how to translate vmul vector instructions. 2 3; REQUIRES: allow_dump 4 5; Compile using standalone assembler. 6; RUN: %p2i --filetype=asm -i %s --target=arm32 --args -O2 \ 7; RUN: -reg-use q10,q11 \ 8; RUN: | FileCheck %s --check-prefix=ASM 9 10; Show bytes in assembled standalone code. 11; RUN: %p2i --filetype=asm -i %s --target=arm32 --assemble --disassemble \ 12; RUN: --args -O2 \ 13; RUN: -reg-use q10,q11 \ 14; RUN: | FileCheck %s --check-prefix=DIS 15 16; Compile using integrated assembler. 17; RUN: %p2i --filetype=iasm -i %s --target=arm32 --args -O2 \ 18; RUN: -reg-use q10,q11 \ 19; RUN: | FileCheck %s --check-prefix=IASM 20 21; Show bytes in assembled integrated code. 22; RUN: %p2i --filetype=iasm -i %s --target=arm32 --assemble --disassemble \ 23; RUN: --args -O2 \ 24; RUN: -reg-use q10,q11 \ 25; RUN: | FileCheck %s --check-prefix=DIS 26 27define internal <4 x float> @testVmulFloat4(<4 x float> %v1, <4 x float> %v2) { 28; ASM-LABEL: testVmulFloat4: 29; DIS-LABEL: 00000000 <testVmulFloat4>: 30; IASM-LABEL: testVmulFloat4: 31 32entry: 33 %res = fmul <4 x float> %v1, %v2 34 35; ASM: vmul.f32 q10, q10, q11 36; DIS: 8: f3444df6 37; IASM-NOT: vmul.f32 38 39 ret <4 x float> %res 40} 41 42define internal <4 x i32> @testVmul4i32(<4 x i32> %v1, <4 x i32> %v2) { 43; ASM-LABEL: testVmul4i32: 44; DIS-LABEL: 00000020 <testVmul4i32>: 45; IASM-LABEL: testVmul4i32: 46 47entry: 48 %res = mul <4 x i32> %v1, %v2 49 50; ASM: vmul.i32 q10, q10, q11 51; DIS: 28: f26449f6 52; IASM-NOT: vmul.i32 53 54 ret <4 x i32> %res 55} 56 57define internal <8 x i16> @testVmul8i16(<8 x i16> %v1, <8 x i16> %v2) { 58; ASM-LABEL: testVmul8i16: 59; DIS-LABEL: 00000040 <testVmul8i16>: 60; IASM-LABEL: testVmul8i16: 61 62entry: 63 %res = mul <8 x i16> %v1, %v2 64 65; ASM: vmul.i16 q10, q10, q11 66; DIS: 48: f25449f6 67; IASM-NOT: vmul.i16 68 69 ret <8 x i16> %res 70} 71 72define internal <16 x i8> @testVmul16i8(<16 x i8> %v1, <16 x i8> %v2) { 73; ASM-LABEL: testVmul16i8: 74; DIS-LABEL: 00000060 <testVmul16i8>: 75; IASM-LABEL: testVmul16i8: 76 77entry: 78 %res = mul <16 x i8> %v1, %v2 79 80; ASM: vmul.i8 q10, q10, q11 81; DIS: 68: f24449f6 82; IASM-NOT: vmul.i8 83 84 ret <16 x i8> %res 85} 86