Expand Up
@@ -42,11 +42,16 @@ entry:
; Function Attrs: norecurse nounwind readonly uwtable willreturn
define dso_local <16 x i8 > @ld_unalign16_vector (i8* nocapture readonly %ptr ) {
; CHECK-LABEL: ld_unalign16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: li r4, 1
; CHECK-NEXT: lxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: ld_unalign16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: plxv v2, 1(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_unalign16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: li r4, 1
; CHECK-P9-NEXT: lxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: ld_unalign16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand All
@@ -68,11 +73,16 @@ entry:
; Function Attrs: norecurse nounwind readonly uwtable willreturn
define dso_local <16 x i8 > @ld_align16_vector (i8* nocapture readonly %ptr ) {
; CHECK-LABEL: ld_align16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: li r4, 8
; CHECK-NEXT: lxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: ld_align16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: plxv v2, 8(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_align16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: li r4, 8
; CHECK-P9-NEXT: lxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: ld_align16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand All
@@ -96,8 +106,7 @@ entry:
define dso_local <16 x i8 > @ld_unalign32_vector (i8* nocapture readonly %ptr ) {
; CHECK-P10-LABEL: ld_unalign32_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: pli r4, 99999
; CHECK-P10-NEXT: lxvx v2, r3, r4
; CHECK-P10-NEXT: plxv v2, 99999(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_unalign32_vector:
Expand Down
Expand Up
@@ -131,8 +140,7 @@ entry:
define dso_local <16 x i8 > @ld_align32_vector (i8* nocapture readonly %ptr ) {
; CHECK-P10-LABEL: ld_align32_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: pli r4, 99999000
; CHECK-P10-NEXT: lxvx v2, r3, r4
; CHECK-P10-NEXT: plxv v2, 99999000(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_align32_vector:
Expand Down
Expand Up
@@ -350,12 +358,18 @@ entry:
; Function Attrs: norecurse nounwind readonly uwtable willreturn
define dso_local <16 x i8 > @ld_disjoint_unalign16_vector (i64 %ptr ) {
; CHECK-LABEL: ld_disjoint_unalign16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: rldicr r3, r3, 0, 51
; CHECK-NEXT: li r4, 6
; CHECK-NEXT: lxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: ld_disjoint_unalign16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: rldicr r3, r3, 0, 51
; CHECK-P10-NEXT: plxv v2, 6(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_disjoint_unalign16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: rldicr r3, r3, 0, 51
; CHECK-P9-NEXT: li r4, 6
; CHECK-P9-NEXT: lxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: ld_disjoint_unalign16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand All
@@ -380,12 +394,18 @@ entry:
; Function Attrs: norecurse nounwind readonly uwtable willreturn
define dso_local <16 x i8 > @ld_disjoint_align16_vector (i64 %ptr ) {
; CHECK-LABEL: ld_disjoint_align16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: rldicr r3, r3, 0, 51
; CHECK-NEXT: li r4, 24
; CHECK-NEXT: lxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: ld_disjoint_align16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: rldicr r3, r3, 0, 51
; CHECK-P10-NEXT: plxv v2, 24(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_disjoint_align16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: rldicr r3, r3, 0, 51
; CHECK-P9-NEXT: li r4, 24
; CHECK-P9-NEXT: lxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: ld_disjoint_align16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand Down
Expand Up
@@ -442,8 +462,7 @@ define dso_local <16 x i8> @ld_disjoint_unalign32_vector(i64 %ptr) {
; CHECK-P10-LABEL: ld_disjoint_unalign32_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: rldicr r3, r3, 0, 43
; CHECK-P10-NEXT: pli r4, 99999
; CHECK-P10-NEXT: lxvx v2, r3, r4
; CHECK-P10-NEXT: plxv v2, 99999(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_disjoint_unalign32_vector:
Expand Down
Expand Up
@@ -483,8 +502,7 @@ define dso_local <16 x i8> @ld_disjoint_align32_vector(i64 %ptr) {
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: lis r4, -15264
; CHECK-P10-NEXT: and r3, r3, r4
; CHECK-P10-NEXT: pli r4, 999990000
; CHECK-P10-NEXT: lxvx v2, r3, r4
; CHECK-P10-NEXT: plxv v2, 999990000(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: ld_disjoint_align32_vector:
Expand Down
Expand Up
@@ -875,11 +893,16 @@ entry:
; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @st_unalign16_vector (i8* nocapture %ptr , <16 x i8 > %str ) {
; CHECK-LABEL: st_unalign16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: li r4, 1
; CHECK-NEXT: stxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: st_unalign16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: pstxv v2, 1(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_unalign16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: li r4, 1
; CHECK-P9-NEXT: stxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: st_unalign16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand All
@@ -901,11 +924,16 @@ entry:
; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @st_align16_vector (i8* nocapture %ptr , <16 x i8 > %str ) {
; CHECK-LABEL: st_align16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: li r4, 8
; CHECK-NEXT: stxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: st_align16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: pstxv v2, 8(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_align16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: li r4, 8
; CHECK-P9-NEXT: stxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: st_align16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand All
@@ -929,8 +957,7 @@ entry:
define dso_local void @st_unalign32_vector (i8* nocapture %ptr , <16 x i8 > %str ) {
; CHECK-P10-LABEL: st_unalign32_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: pli r4, 99999
; CHECK-P10-NEXT: stxvx v2, r3, r4
; CHECK-P10-NEXT: pstxv v2, 99999(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_unalign32_vector:
Expand Down
Expand Up
@@ -964,8 +991,7 @@ entry:
define dso_local void @st_align32_vector (i8* nocapture %ptr , <16 x i8 > %str ) {
; CHECK-P10-LABEL: st_align32_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: pli r4, 99999000
; CHECK-P10-NEXT: stxvx v2, r3, r4
; CHECK-P10-NEXT: pstxv v2, 99999000(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_align32_vector:
Expand Down
Expand Up
@@ -1183,12 +1209,18 @@ entry:
; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @st_disjoint_unalign16_vector (i64 %ptr , <16 x i8 > %str ) {
; CHECK-LABEL: st_disjoint_unalign16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: rldicr r3, r3, 0, 51
; CHECK-NEXT: li r4, 6
; CHECK-NEXT: stxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: st_disjoint_unalign16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: rldicr r3, r3, 0, 51
; CHECK-P10-NEXT: pstxv v2, 6(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_disjoint_unalign16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: rldicr r3, r3, 0, 51
; CHECK-P9-NEXT: li r4, 6
; CHECK-P9-NEXT: stxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: st_disjoint_unalign16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand All
@@ -1213,12 +1245,18 @@ entry:
; Function Attrs: nofree norecurse nounwind uwtable willreturn writeonly
define dso_local void @st_disjoint_align16_vector (i64 %ptr , <16 x i8 > %str ) {
; CHECK-LABEL: st_disjoint_align16_vector:
; CHECK: # %bb.0: # %entry
; CHECK-NEXT: rldicr r3, r3, 0, 51
; CHECK-NEXT: li r4, 24
; CHECK-NEXT: stxvx v2, r3, r4
; CHECK-NEXT: blr
; CHECK-P10-LABEL: st_disjoint_align16_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: rldicr r3, r3, 0, 51
; CHECK-P10-NEXT: pstxv v2, 24(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_disjoint_align16_vector:
; CHECK-P9: # %bb.0: # %entry
; CHECK-P9-NEXT: rldicr r3, r3, 0, 51
; CHECK-P9-NEXT: li r4, 24
; CHECK-P9-NEXT: stxvx v2, r3, r4
; CHECK-P9-NEXT: blr
;
; CHECK-P8-LE-LABEL: st_disjoint_align16_vector:
; CHECK-P8-LE: # %bb.0: # %entry
Expand Down
Expand Up
@@ -1275,8 +1313,7 @@ define dso_local void @st_disjoint_unalign32_vector(i64 %ptr, <16 x i8> %str) {
; CHECK-P10-LABEL: st_disjoint_unalign32_vector:
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: rldicr r3, r3, 0, 43
; CHECK-P10-NEXT: pli r4, 99999
; CHECK-P10-NEXT: stxvx v2, r3, r4
; CHECK-P10-NEXT: pstxv v2, 99999(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_disjoint_unalign32_vector:
Expand Down
Expand Up
@@ -1316,8 +1353,7 @@ define dso_local void @st_disjoint_align32_vector(i64 %ptr, <16 x i8> %str) {
; CHECK-P10: # %bb.0: # %entry
; CHECK-P10-NEXT: lis r4, -15264
; CHECK-P10-NEXT: and r3, r3, r4
; CHECK-P10-NEXT: pli r4, 999990000
; CHECK-P10-NEXT: stxvx v2, r3, r4
; CHECK-P10-NEXT: pstxv v2, 999990000(r3), 0
; CHECK-P10-NEXT: blr
;
; CHECK-P9-LABEL: st_disjoint_align32_vector:
Expand Down