OLD | NEW |
1 ; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s | 1 ; RUN: llc < %s -march=arm -mcpu=cortex-a8 | FileCheck %s |
2 | 2 |
3 define <8 x i8> @vmuli8(<8 x i8>* %A, <8 x i8>* %B) nounwind { | 3 define <8 x i8> @vmuli8(<8 x i8>* %A, <8 x i8>* %B) nounwind { |
4 ;CHECK: vmuli8: | 4 ;CHECK: vmuli8: |
5 ;CHECK: vmul.i8 | 5 ;CHECK: vmul.i8 |
6 %tmp1 = load <8 x i8>* %A | 6 %tmp1 = load <8 x i8>* %A |
7 %tmp2 = load <8 x i8>* %B | 7 %tmp2 = load <8 x i8>* %B |
8 %tmp3 = mul <8 x i8> %tmp1, %tmp2 | 8 %tmp3 = mul <8 x i8> %tmp1, %tmp2 |
9 ret <8 x i8> %tmp3 | 9 ret <8 x i8> %tmp3 |
10 } | 10 } |
(...skipping 581 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
592 %add177 = add nsw i32 undef, 16 | 592 %add177 = add nsw i32 undef, 16 |
593 br i1 undef, label %for.body33, label %for.cond.loopexit | 593 br i1 undef, label %for.body33, label %for.cond.loopexit |
594 | 594 |
595 for.end179: ; preds = %for.cond.loopexit,
%entry | 595 for.end179: ; preds = %for.cond.loopexit,
%entry |
596 ret void | 596 ret void |
597 } | 597 } |
598 | 598 |
599 declare <8 x i16> @llvm.arm.neon.vrshiftu.v8i16(<8 x i16>, <8 x i16>) nounwind r
eadnone | 599 declare <8 x i16> @llvm.arm.neon.vrshiftu.v8i16(<8 x i16>, <8 x i16>) nounwind r
eadnone |
600 declare <8 x i16> @llvm.arm.neon.vqsubu.v8i16(<8 x i16>, <8 x i16>) nounwind rea
dnone | 600 declare <8 x i16> @llvm.arm.neon.vqsubu.v8i16(<8 x i16>, <8 x i16>) nounwind rea
dnone |
601 declare <8 x i8> @llvm.arm.neon.vqmovnu.v8i8(<8 x i16>) nounwind readnone | 601 declare <8 x i8> @llvm.arm.neon.vqmovnu.v8i8(<8 x i16>) nounwind readnone |
602 | |
603 ; vmull lowering would create a zext(v4i8 load()) instead of a zextload(v4i8), | |
604 ; creating an illegal type during legalization and causing an assert. | |
605 ; PR15970 | |
606 define void @no_illegal_types_vmull_sext(<4 x i32> %a) { | |
607 entry: | |
608 %wide.load283.i = load <4 x i8>* undef, align 1 | |
609 %0 = sext <4 x i8> %wide.load283.i to <4 x i32> | |
610 %1 = sub nsw <4 x i32> %0, %a | |
611 %2 = mul nsw <4 x i32> %1, %1 | |
612 %predphi290.v.i = select <4 x i1> undef, <4 x i32> undef, <4 x i32> %2 | |
613 store <4 x i32> %predphi290.v.i, <4 x i32>* undef, align 4 | |
614 ret void | |
615 } | |
616 define void @no_illegal_types_vmull_zext(<4 x i32> %a) { | |
617 entry: | |
618 %wide.load283.i = load <4 x i8>* undef, align 1 | |
619 %0 = zext <4 x i8> %wide.load283.i to <4 x i32> | |
620 %1 = sub nsw <4 x i32> %0, %a | |
621 %2 = mul nsw <4 x i32> %1, %1 | |
622 %predphi290.v.i = select <4 x i1> undef, <4 x i32> undef, <4 x i32> %2 | |
623 store <4 x i32> %predphi290.v.i, <4 x i32>* undef, align 4 | |
624 ret void | |
625 } | |
OLD | NEW |