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 27 define 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 32 entry: 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 42 define 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 47 entry: 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 57 define 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 62 entry: 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 72 define 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 77 entry: 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