@@ -730,111 +730,6 @@ entry:
730730 ret void
731731}
732732
733- define void @store_factor8 (ptr %ptr , <4 x i32 > %a0 , <4 x i32 > %a1 , <4 x i32 > %a2 , <4 x i32 > %a3 ,
734- <4 x i32 > %a4 , <4 x i32 > %a5 , <4 x i32 > %a6 , <4 x i32 > %a7 ) {
735- ; CHECK-LABEL: store_factor8:
736- ; CHECK: .Lfunc_begin17:
737- ; CHECK-NEXT: .cfi_startproc
738- ; CHECK-NEXT: // %bb.0:
739- ; CHECK: zip1 [[V1:.*s]], [[I1:.*s]], [[I5:.*s]]
740- ; CHECK-NEXT: zip2 [[V5:.*s]], [[I1]], [[I5]]
741- ; CHECK-NEXT: zip1 [[V2:.*s]], [[I2:.*s]], [[I6:.*s]]
742- ; CHECK-NEXT: zip2 [[V6:.*s]], [[I2]], [[I6]]
743- ; CHECK-NEXT: zip1 [[V3:.*s]], [[I3:.*s]], [[I7:.*s]]
744- ; CHECK-NEXT: zip2 [[V7:.*s]], [[I3]], [[I7]]
745- ; CHECK-NEXT: zip1 [[V4:.*s]], [[I4:.*s]], [[I8:.*s]]
746- ; CHECK-NEXT: zip2 [[V8:.*s]], [[I4]], [[I8]]
747- ; CHECK-NEXT: st4 { [[V1]], [[V2]], [[V3]], [[V4]] }, [x0], #64
748- ; CHECK-NEXT: st4 { [[V5]], [[V6]], [[V7]], [[V8]] }, [x0]
749- ; CHECK-NEXT: ret
750-
751- %v0 = shufflevector <4 x i32 > %a0 , <4 x i32 > %a1 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
752- %v1 = shufflevector <4 x i32 > %a2 , <4 x i32 > %a3 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
753- %v2 = shufflevector <4 x i32 > %a4 , <4 x i32 > %a5 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
754- %v3 = shufflevector <4 x i32 > %a6 , <4 x i32 > %a7 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
755-
756- %s0 = shufflevector <8 x i32 > %v0 , <8 x i32 > %v1 , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
757- %s1 = shufflevector <8 x i32 > %v2 , <8 x i32 > %v3 , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
758-
759- %interleaved.vec = shufflevector <16 x i32 > %s0 , <16 x i32 > %s1 , <32 x i32 > <i32 0 , i32 4 , i32 8 , i32 12 , i32 16 , i32 20 , i32 24 , i32 28 , i32 1 , i32 5 , i32 9 , i32 13 , i32 17 , i32 21 , i32 25 , i32 29 , i32 2 , i32 6 , i32 10 , i32 14 , i32 18 , i32 22 , i32 26 , i32 30 , i32 3 , i32 7 , i32 11 , i32 15 , i32 19 , i32 23 , i32 27 , i32 31 >
760- store <32 x i32 > %interleaved.vec , ptr %ptr , align 4
761- ret void
762- }
763-
764- define void @store_factor16 (ptr %ptr , <4 x i32 > %a0 , <4 x i32 > %a1 , <4 x i32 > %a2 , <4 x i32 > %a3 ,
765- <4 x i32 > %a4 , <4 x i32 > %a5 , <4 x i32 > %a6 , <4 x i32 > %a7 ,
766- <4 x i32 > %a8 , <4 x i32 > %a9 , <4 x i32 > %a10 , <4 x i32 > %a11 ,
767- <4 x i32 > %a12 , <4 x i32 > %a13 , <4 x i32 > %a14 , <4 x i32 > %a15 ) {
768- ; CHECK-LABEL: store_factor16:
769- ; CHECK: .Lfunc_begin18:
770- ; CHECK-NEXT: .cfi_startproc
771- ; CHECK-NEXT: // %bb.0:
772- ; CHECK: zip1 [[V05:.*s]], [[I05:.*s]], [[I13:.*s]]
773- ; CHECK-NEXT: zip1 [[V01:.*s]], [[I01:.*s]], [[I09:.*s]]
774- ; CHECK-NEXT: zip1 [[V02:.*s]], [[I02:.*s]], [[I10:.*s]]
775- ; CHECK-NEXT: zip1 [[V06:.*s]], [[I06:.*s]], [[I14:.*s]]
776- ; CHECK-NEXT: zip1 [[V07:.*s]], [[I07:.*s]], [[I15:.*s]]
777- ; CHECK-NEXT: zip2 [[V09:.*s]], [[I01]], [[I09]]
778- ; CHECK-NEXT: zip2 [[V13:.*s]], [[I05]], [[I13]]
779- ; CHECK-NEXT: zip1 [[V03:.*s]], [[I03:.*s]], [[I11:.*s]]
780- ; CHECK-NEXT: zip1 [[V04:.*s]], [[I04:.*s]], [[I12:.*s]]
781- ; CHECK-NEXT: zip1 [[V08:.*s]], [[I08:.*s]], [[I16:.*s]]
782- ; CHECK-NEXT: zip2 [[V10:.*s]], [[I02]], [[I10]]
783- ; CHECK-NEXT: zip2 [[V14:.*s]], [[I06]], [[I14]]
784- ; CHECK-NEXT: zip2 [[V11:.*s]], [[I03]], [[I11]]
785- ; CHECK-NEXT: zip1 [[V17:.*s]], [[V01]], [[V05]]
786- ; CHECK-NEXT: zip2 [[V15:.*s]], [[I07]], [[I15]]
787- ; CHECK-NEXT: zip2 [[V21:.*s]], [[V01]], [[V05]]
788- ; CHECK-NEXT: zip1 [[V18:.*s]], [[V02]], [[V06]]
789- ; CHECK-NEXT: zip2 [[V12:.*s]], [[I04]], [[I12]]
790- ; CHECK-NEXT: zip2 [[V16:.*s]], [[I08]], [[I16]]
791- ; CHECK-NEXT: zip1 [[V19:.*s]], [[V03]], [[V07]]
792- ; CHECK-NEXT: zip2 [[V22:.*s]], [[V02]], [[V06]]
793- ; CHECK-NEXT: zip1 [[V25:.*s]], [[V09]], [[V13]]
794- ; CHECK-NEXT: zip1 [[V20:.*s]], [[V04]], [[V08]]
795- ; CHECK-NEXT: zip2 [[V23:.*s]], [[V03]], [[V07]]
796- ; CHECK-NEXT: zip1 [[V26:.*s]], [[V10]], [[V14]]
797- ; CHECK-NEXT: zip2 [[V29:.*s]], [[V09]], [[V13]]
798- ; CHECK-NEXT: zip2 [[V24:.*s]], [[V04]], [[V08]]
799- ; CHECK-NEXT: zip1 [[V27:.*s]], [[V11]], [[V15]]
800- ; CHECK-NEXT: zip2 [[V30:.*s]], [[V10]], [[V14]]
801- ; CHECK-NEXT: zip1 [[V28:.*s]], [[V12]], [[V16]]
802- ; CHECK-NEXT: zip2 [[V31:.*s]], [[V11]], [[V15]]
803- ; CHECK-NEXT: zip2 [[V32:.*s]], [[V12]], [[V16]]
804- ; CHECK-NEXT: st4 { [[V17]], [[V18]], [[V19]], [[V20]] }, [x8], #64
805- ; CHECK-NEXT: ldp d9, d8, [sp, #48] // 16-byte Folded Reload
806- ; CHECK-NEXT: ldp d11, d10, [sp, #32] // 16-byte Folded Reload
807- ; CHECK-NEXT: st4 { [[V21]], [[V22]], [[V23]], [[V24]] }, [x8]
808- ; CHECK-NEXT: add x8, x0, #128
809- ; CHECK-NEXT: ldp d13, d12, [sp, #16] // 16-byte Folded Reload
810- ; CHECK-NEXT: st4 { [[V25]], [[V26]], [[V27]], [[V28]] }, [x8]
811- ; CHECK-NEXT: add x8, x0, #192
812- ; CHECK-NEXT: st4 { [[V29]], [[V30]], [[V31]], [[V32]] }, [x8]
813- ; CHECK-NEXT: ldp d15, d14, [sp], #64 // 16-byte Folded Reload
814- ; CHECK-NEXT: ret
815-
816- %v0 = shufflevector <4 x i32 > %a0 , <4 x i32 > %a1 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
817- %v1 = shufflevector <4 x i32 > %a2 , <4 x i32 > %a3 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
818- %v2 = shufflevector <4 x i32 > %a4 , <4 x i32 > %a5 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
819- %v3 = shufflevector <4 x i32 > %a6 , <4 x i32 > %a7 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
820- %v4 = shufflevector <4 x i32 > %a8 , <4 x i32 > %a9 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
821- %v5 = shufflevector <4 x i32 > %a10 , <4 x i32 > %a11 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
822- %v6 = shufflevector <4 x i32 > %a12 , <4 x i32 > %a13 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
823- %v7 = shufflevector <4 x i32 > %a14 , <4 x i32 > %a15 , <8 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 >
824-
825- %s0 = shufflevector <8 x i32 > %v0 , <8 x i32 > %v1 , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
826- %s1 = shufflevector <8 x i32 > %v2 , <8 x i32 > %v3 , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
827- %s2 = shufflevector <8 x i32 > %v4 , <8 x i32 > %v5 , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
828- %s3 = shufflevector <8 x i32 > %v6 , <8 x i32 > %v7 , <16 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 >
829-
830- %d0 = shufflevector <16 x i32 > %s0 , <16 x i32 > %s1 , <32 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 , i32 16 , i32 17 , i32 18 , i32 19 , i32 20 , i32 21 , i32 22 , i32 23 , i32 24 , i32 25 , i32 26 , i32 27 , i32 28 , i32 29 , i32 30 , i32 31 >
831- %d1 = shufflevector <16 x i32 > %s2 , <16 x i32 > %s3 , <32 x i32 > <i32 0 , i32 1 , i32 2 , i32 3 , i32 4 , i32 5 , i32 6 , i32 7 , i32 8 , i32 9 , i32 10 , i32 11 , i32 12 , i32 13 , i32 14 , i32 15 , i32 16 , i32 17 , i32 18 , i32 19 , i32 20 , i32 21 , i32 22 , i32 23 , i32 24 , i32 25 , i32 26 , i32 27 , i32 28 , i32 29 , i32 30 , i32 31 >
832-
833- %interleaved.vec = shufflevector <32 x i32 > %d0 , <32 x i32 > %d1 , <64 x i32 > <i32 0 , i32 4 , i32 8 , i32 12 , i32 16 , i32 20 , i32 24 , i32 28 , i32 32 , i32 36 , i32 40 , i32 44 , i32 48 , i32 52 , i32 56 , i32 60 , i32 1 , i32 5 , i32 9 , i32 13 , i32 17 , i32 21 , i32 25 , i32 29 , i32 33 , i32 37 , i32 41 , i32 45 , i32 49 , i32 53 , i32 57 , i32 61 , i32 2 , i32 6 , i32 10 , i32 14 , i32 18 , i32 22 , i32 26 , i32 30 , i32 34 , i32 38 , i32 42 , i32 46 , i32 50 , i32 54 , i32 58 , i32 62 , i32 3 , i32 7 , i32 11 , i32 15 , i32 19 , i32 23 , i32 27 , i32 31 , i32 35 , i32 39 , i32 43 , i32 47 , i32 51 , i32 55 , i32 59 , i32 63 >
834- store <64 x i32 > %interleaved.vec , ptr %ptr , align 4
835- ret void
836- }
837-
838733declare void @llvm.dbg.value (metadata , metadata , metadata )
839734
840735!llvm.dbg.cu = !{!0 }
0 commit comments