184 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64--linux-gnu < %s -mcpu=sapphirerapids | FileCheck %s3 4define void @test(ptr %src, ptr %dst, ptr %c, i64 %arrayidx14.15p) {5; CHECK-LABEL: define void @test(6; CHECK-SAME: ptr [[SRC:%.*]], ptr [[DST:%.*]], ptr [[C:%.*]], i64 [[ARRAYIDX14_15P:%.*]]) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT: [[ENTRY:.*]]:8; CHECK-NEXT: [[ARRAYIDX12_5:%.*]] = getelementptr i8, ptr [[C]], i64 1929; CHECK-NEXT: [[ARRAYIDX14_5:%.*]] = getelementptr i8, ptr [[C]], i64 32010; CHECK-NEXT: [[ARRAYIDX_6:%.*]] = getelementptr i8, ptr [[C]], i64 7211; CHECK-NEXT: [[ARRAYIDX12_6:%.*]] = getelementptr i8, ptr [[C]], i64 20012; CHECK-NEXT: [[ARRAYIDX14_6:%.*]] = getelementptr i8, ptr [[C]], i64 32813; CHECK-NEXT: [[ARRAYIDX_7:%.*]] = getelementptr i8, ptr [[C]], i64 8014; CHECK-NEXT: [[ARRAYIDX12_7:%.*]] = getelementptr i8, ptr [[C]], i64 20815; CHECK-NEXT: [[ARRAYIDX14_7:%.*]] = getelementptr i8, ptr [[C]], i64 33616; CHECK-NEXT: [[ARRAYIDX12_8:%.*]] = getelementptr i8, ptr [[C]], i64 21617; CHECK-NEXT: [[ARRAYIDX14_8:%.*]] = getelementptr i8, ptr [[C]], i64 34418; CHECK-NEXT: [[ARRAYIDX_9:%.*]] = getelementptr i8, ptr [[C]], i64 9619; CHECK-NEXT: [[ARRAYIDX12_9:%.*]] = getelementptr i8, ptr [[C]], i64 22420; CHECK-NEXT: [[ARRAYIDX14_9:%.*]] = getelementptr i8, ptr [[C]], i64 35221; CHECK-NEXT: [[ARRAYIDX_10:%.*]] = getelementptr i8, ptr [[C]], i64 10422; CHECK-NEXT: [[ARRAYIDX12_10:%.*]] = getelementptr i8, ptr [[C]], i64 23223; CHECK-NEXT: [[ARRAYIDX14_10:%.*]] = getelementptr i8, ptr [[C]], i64 36024; CHECK-NEXT: [[ARRAYIDX_11:%.*]] = getelementptr i8, ptr [[C]], i64 11225; CHECK-NEXT: [[ARRAYIDX12_11:%.*]] = getelementptr i8, ptr [[C]], i64 24026; CHECK-NEXT: [[ARRAYIDX14_11:%.*]] = getelementptr i8, ptr [[C]], i64 36827; CHECK-NEXT: [[ARRAYIDX_12:%.*]] = getelementptr i8, ptr [[C]], i64 12028; CHECK-NEXT: [[ARRAYIDX12_12:%.*]] = getelementptr i8, ptr [[C]], i64 24829; CHECK-NEXT: [[ARRAYIDX14_12:%.*]] = getelementptr i8, ptr [[C]], i64 37630; CHECK-NEXT: [[ARRAYIDX14_13:%.*]] = getelementptr i8, ptr [[C]], i64 38431; CHECK-NEXT: [[ARRAYIDX12_5P:%.*]] = load i64, ptr [[ARRAYIDX12_5]], align 832; CHECK-NEXT: [[ARRAYIDX14_5P:%.*]] = load i64, ptr [[ARRAYIDX14_5]], align 833; CHECK-NEXT: [[ARRAYIDX_6P:%.*]] = load i64, ptr [[ARRAYIDX_6]], align 834; CHECK-NEXT: [[ARRAYIDX12_6P:%.*]] = load i64, ptr [[ARRAYIDX12_6]], align 835; CHECK-NEXT: [[ARRAYIDX14_6P:%.*]] = load i64, ptr [[ARRAYIDX14_6]], align 836; CHECK-NEXT: [[ARRAYIDX_7P:%.*]] = load i64, ptr [[ARRAYIDX_7]], align 837; CHECK-NEXT: [[ARRAYIDX12_7P:%.*]] = load i64, ptr [[ARRAYIDX12_7]], align 838; CHECK-NEXT: [[ARRAYIDX14_7P:%.*]] = load i64, ptr [[ARRAYIDX14_7]], align 839; CHECK-NEXT: [[ARRAYIDX_8P:%.*]] = load i64, ptr [[C]], align 840; CHECK-NEXT: [[ARRAYIDX12_8P:%.*]] = load i64, ptr [[ARRAYIDX12_8]], align 841; CHECK-NEXT: [[ARRAYIDX14_8P:%.*]] = load i64, ptr [[ARRAYIDX14_8]], align 842; CHECK-NEXT: [[ARRAYIDX_9P:%.*]] = load i64, ptr [[ARRAYIDX_9]], align 843; CHECK-NEXT: [[ARRAYIDX12_9P:%.*]] = load i64, ptr [[ARRAYIDX12_9]], align 844; CHECK-NEXT: [[ARRAYIDX14_9P:%.*]] = load i64, ptr [[ARRAYIDX14_9]], align 845; CHECK-NEXT: [[ARRAYIDX_10P:%.*]] = load i64, ptr [[ARRAYIDX_10]], align 846; CHECK-NEXT: [[ARRAYIDX12_10P:%.*]] = load i64, ptr [[ARRAYIDX12_10]], align 847; CHECK-NEXT: [[ARRAYIDX14_10P:%.*]] = load i64, ptr [[ARRAYIDX14_10]], align 848; CHECK-NEXT: [[ARRAYIDX_11P:%.*]] = load i64, ptr [[ARRAYIDX_11]], align 849; CHECK-NEXT: [[ARRAYIDX12_11P:%.*]] = load i64, ptr [[ARRAYIDX12_11]], align 850; CHECK-NEXT: [[ARRAYIDX14_11P:%.*]] = load i64, ptr [[ARRAYIDX14_11]], align 851; CHECK-NEXT: [[ARRAYIDX_12P:%.*]] = load i64, ptr [[ARRAYIDX_12]], align 852; CHECK-NEXT: [[ARRAYIDX12_12P:%.*]] = load i64, ptr [[ARRAYIDX12_12]], align 853; CHECK-NEXT: [[ARRAYIDX14_12P:%.*]] = load i64, ptr [[ARRAYIDX14_12]], align 854; CHECK-NEXT: [[ARRAYIDX_13P:%.*]] = load i64, ptr [[SRC]], align 855; CHECK-NEXT: [[ARRAYIDX14_13P:%.*]] = load i64, ptr [[ARRAYIDX14_13]], align 856; CHECK-NEXT: br label %[[LAND_LHS_TRUE137:.*]]57; CHECK: [[LAND_LHS_TRUE137]]:58; CHECK-NEXT: [[TMP0:%.*]] = phi i64 [ 0, %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_15P]], %[[ENTRY]] ]59; CHECK-NEXT: [[TMP1:%.*]] = phi i64 [ 0, %[[LAND_LHS_TRUE137]] ], [ 1, %[[ENTRY]] ]60; CHECK-NEXT: [[TMP2:%.*]] = phi i64 [ 1, %[[LAND_LHS_TRUE137]] ], [ 0, %[[ENTRY]] ]61; CHECK-NEXT: [[TMP3:%.*]] = phi i64 [ [[TMP0]], %[[LAND_LHS_TRUE137]] ], [ 0, %[[ENTRY]] ]62; CHECK-NEXT: [[TMP4:%.*]] = phi i64 [ [[TMP1]], %[[LAND_LHS_TRUE137]] ], [ 0, %[[ENTRY]] ]63; CHECK-NEXT: [[TMP5:%.*]] = phi i64 [ [[TMP2]], %[[LAND_LHS_TRUE137]] ], [ 0, %[[ENTRY]] ]64; CHECK-NEXT: [[TMP6:%.*]] = phi i64 [ [[TMP3]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_13P]], %[[ENTRY]] ]65; CHECK-NEXT: [[TMP7:%.*]] = phi i64 [ [[TMP4]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_13P]], %[[ENTRY]] ]66; CHECK-NEXT: [[TMP8:%.*]] = phi i64 [ [[TMP5]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_13P]], %[[ENTRY]] ]67; CHECK-NEXT: [[TMP9:%.*]] = phi i64 [ [[TMP6]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_12P]], %[[ENTRY]] ]68; CHECK-NEXT: [[TMP10:%.*]] = phi i64 [ [[TMP7]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_12P]], %[[ENTRY]] ]69; CHECK-NEXT: [[TMP11:%.*]] = phi i64 [ [[TMP8]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_12P]], %[[ENTRY]] ]70; CHECK-NEXT: [[TMP12:%.*]] = phi i64 [ [[TMP9]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_11P]], %[[ENTRY]] ]71; CHECK-NEXT: [[TMP13:%.*]] = phi i64 [ [[TMP10]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_11P]], %[[ENTRY]] ]72; CHECK-NEXT: [[TMP14:%.*]] = phi i64 [ [[TMP11]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_11P]], %[[ENTRY]] ]73; CHECK-NEXT: [[TMP15:%.*]] = phi i64 [ [[TMP12]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_10P]], %[[ENTRY]] ]74; CHECK-NEXT: [[TMP16:%.*]] = phi i64 [ [[TMP13]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_10P]], %[[ENTRY]] ]75; CHECK-NEXT: [[TMP17:%.*]] = phi i64 [ [[TMP14]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_10P]], %[[ENTRY]] ]76; CHECK-NEXT: [[TMP18:%.*]] = phi i64 [ [[TMP15]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_9P]], %[[ENTRY]] ]77; CHECK-NEXT: [[TMP19:%.*]] = phi i64 [ [[TMP16]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_9P]], %[[ENTRY]] ]78; CHECK-NEXT: [[TMP20:%.*]] = phi i64 [ [[TMP17]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_9P]], %[[ENTRY]] ]79; CHECK-NEXT: [[TMP21:%.*]] = phi i64 [ [[TMP18]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_8P]], %[[ENTRY]] ]80; CHECK-NEXT: [[TMP22:%.*]] = phi i64 [ [[TMP19]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_8P]], %[[ENTRY]] ]81; CHECK-NEXT: [[TMP23:%.*]] = phi i64 [ [[TMP20]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_8P]], %[[ENTRY]] ]82; CHECK-NEXT: [[TMP24:%.*]] = phi i64 [ [[TMP21]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_7P]], %[[ENTRY]] ]83; CHECK-NEXT: [[TMP25:%.*]] = phi i64 [ [[TMP22]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_7P]], %[[ENTRY]] ]84; CHECK-NEXT: [[TMP26:%.*]] = phi i64 [ [[TMP23]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_7P]], %[[ENTRY]] ]85; CHECK-NEXT: [[TMP27:%.*]] = phi i64 [ [[TMP24]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_6P]], %[[ENTRY]] ]86; CHECK-NEXT: [[TMP28:%.*]] = phi i64 [ [[TMP25]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_6P]], %[[ENTRY]] ]87; CHECK-NEXT: [[TMP29:%.*]] = phi i64 [ [[TMP26]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX_6P]], %[[ENTRY]] ]88; CHECK-NEXT: [[TMP30:%.*]] = phi i64 [ [[TMP27]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX14_5P]], %[[ENTRY]] ]89; CHECK-NEXT: [[TMP31:%.*]] = phi i64 [ [[TMP28]], %[[LAND_LHS_TRUE137]] ], [ [[ARRAYIDX12_5P]], %[[ENTRY]] ]90; CHECK-NEXT: store i64 [[TMP31]], ptr [[DST]], align 891; CHECK-NEXT: store i64 [[TMP30]], ptr [[SRC]], align 892; CHECK-NEXT: store i64 [[TMP29]], ptr [[DST]], align 893; CHECK-NEXT: br label %[[LAND_LHS_TRUE137]]94;95entry:96 %arrayidx12.5 = getelementptr i8, ptr %c, i64 19297 %arrayidx14.5 = getelementptr i8, ptr %c, i64 32098 %arrayidx.6 = getelementptr i8, ptr %c, i64 7299 %arrayidx12.6 = getelementptr i8, ptr %c, i64 200100 %arrayidx14.6 = getelementptr i8, ptr %c, i64 328101 %arrayidx.7 = getelementptr i8, ptr %c, i64 80102 %arrayidx12.7 = getelementptr i8, ptr %c, i64 208103 %arrayidx14.7 = getelementptr i8, ptr %c, i64 336104 %arrayidx12.8 = getelementptr i8, ptr %c, i64 216105 %arrayidx14.8 = getelementptr i8, ptr %c, i64 344106 %arrayidx.9 = getelementptr i8, ptr %c, i64 96107 %arrayidx12.9 = getelementptr i8, ptr %c, i64 224108 %arrayidx14.9 = getelementptr i8, ptr %c, i64 352109 %arrayidx.10 = getelementptr i8, ptr %c, i64 104110 %arrayidx12.10 = getelementptr i8, ptr %c, i64 232111 %arrayidx14.10 = getelementptr i8, ptr %c, i64 360112 %arrayidx.11 = getelementptr i8, ptr %c, i64 112113 %arrayidx12.11 = getelementptr i8, ptr %c, i64 240114 %arrayidx14.11 = getelementptr i8, ptr %c, i64 368115 %arrayidx.12 = getelementptr i8, ptr %c, i64 120116 %arrayidx12.12 = getelementptr i8, ptr %c, i64 248117 %arrayidx14.12 = getelementptr i8, ptr %c, i64 376118 %arrayidx14.13 = getelementptr i8, ptr %c, i64 384119 %arrayidx12.5p = load i64, ptr %arrayidx12.5, align 8120 %arrayidx14.5p = load i64, ptr %arrayidx14.5, align 8121 %arrayidx.6p = load i64, ptr %arrayidx.6, align 8122 %arrayidx12.6p = load i64, ptr %arrayidx12.6, align 8123 %arrayidx14.6p = load i64, ptr %arrayidx14.6, align 8124 %arrayidx.7p = load i64, ptr %arrayidx.7, align 8125 %arrayidx12.7p = load i64, ptr %arrayidx12.7, align 8126 %arrayidx14.7p = load i64, ptr %arrayidx14.7, align 8127 %arrayidx.8p = load i64, ptr %c, align 8128 %arrayidx12.8p = load i64, ptr %arrayidx12.8, align 8129 %arrayidx14.8p = load i64, ptr %arrayidx14.8, align 8130 %arrayidx.9p = load i64, ptr %arrayidx.9, align 8131 %arrayidx12.9p = load i64, ptr %arrayidx12.9, align 8132 %arrayidx14.9p = load i64, ptr %arrayidx14.9, align 8133 %arrayidx.10p = load i64, ptr %arrayidx.10, align 8134 %arrayidx12.10p = load i64, ptr %arrayidx12.10, align 8135 %arrayidx14.10p = load i64, ptr %arrayidx14.10, align 8136 %arrayidx.11p = load i64, ptr %arrayidx.11, align 8137 %arrayidx12.11p = load i64, ptr %arrayidx12.11, align 8138 %arrayidx14.11p = load i64, ptr %arrayidx14.11, align 8139 %arrayidx.12p = load i64, ptr %arrayidx.12, align 8140 %arrayidx12.12p = load i64, ptr %arrayidx12.12, align 8141 %arrayidx14.12p = load i64, ptr %arrayidx14.12, align 8142 %arrayidx.13p = load i64, ptr %src, align 8143 %arrayidx14.13p = load i64, ptr %arrayidx14.13, align 8144 br label %land.lhs.true137145 146land.lhs.true137:147 %0 = phi i64 [ 0, %land.lhs.true137 ], [ %arrayidx14.15p, %entry ]148 %1 = phi i64 [ 0, %land.lhs.true137 ], [ 1, %entry ]149 %2 = phi i64 [ 1, %land.lhs.true137 ], [ 0, %entry ]150 %3 = phi i64 [ %0, %land.lhs.true137 ], [ 0, %entry ]151 %4 = phi i64 [ %1, %land.lhs.true137 ], [ 0, %entry ]152 %5 = phi i64 [ %2, %land.lhs.true137 ], [ 0, %entry ]153 %6 = phi i64 [ %3, %land.lhs.true137 ], [ %arrayidx14.13p, %entry ]154 %7 = phi i64 [ %4, %land.lhs.true137 ], [ %arrayidx.13p, %entry ]155 %8 = phi i64 [ %5, %land.lhs.true137 ], [ %arrayidx.13p, %entry ]156 %9 = phi i64 [ %6, %land.lhs.true137 ], [ %arrayidx14.12p, %entry ]157 %10 = phi i64 [ %7, %land.lhs.true137 ], [ %arrayidx12.12p, %entry ]158 %11 = phi i64 [ %8, %land.lhs.true137 ], [ %arrayidx.12p, %entry ]159 %12 = phi i64 [ %9, %land.lhs.true137 ], [ %arrayidx14.11p, %entry ]160 %13 = phi i64 [ %10, %land.lhs.true137 ], [ %arrayidx12.11p, %entry ]161 %14 = phi i64 [ %11, %land.lhs.true137 ], [ %arrayidx.11p, %entry ]162 %15 = phi i64 [ %12, %land.lhs.true137 ], [ %arrayidx14.10p, %entry ]163 %16 = phi i64 [ %13, %land.lhs.true137 ], [ %arrayidx12.10p, %entry ]164 %17 = phi i64 [ %14, %land.lhs.true137 ], [ %arrayidx.10p, %entry ]165 %18 = phi i64 [ %15, %land.lhs.true137 ], [ %arrayidx14.9p, %entry ]166 %19 = phi i64 [ %16, %land.lhs.true137 ], [ %arrayidx12.9p, %entry ]167 %20 = phi i64 [ %17, %land.lhs.true137 ], [ %arrayidx.9p, %entry ]168 %21 = phi i64 [ %18, %land.lhs.true137 ], [ %arrayidx14.8p, %entry ]169 %22 = phi i64 [ %19, %land.lhs.true137 ], [ %arrayidx12.8p, %entry ]170 %23 = phi i64 [ %20, %land.lhs.true137 ], [ %arrayidx.8p, %entry ]171 %24 = phi i64 [ %21, %land.lhs.true137 ], [ %arrayidx14.7p, %entry ]172 %25 = phi i64 [ %22, %land.lhs.true137 ], [ %arrayidx12.7p, %entry ]173 %26 = phi i64 [ %23, %land.lhs.true137 ], [ %arrayidx.7p, %entry ]174 %27 = phi i64 [ %24, %land.lhs.true137 ], [ %arrayidx14.6p, %entry ]175 %28 = phi i64 [ %25, %land.lhs.true137 ], [ %arrayidx12.6p, %entry ]176 %29 = phi i64 [ %26, %land.lhs.true137 ], [ %arrayidx.6p, %entry ]177 %30 = phi i64 [ %27, %land.lhs.true137 ], [ %arrayidx14.5p, %entry ]178 %31 = phi i64 [ %28, %land.lhs.true137 ], [ %arrayidx12.5p, %entry ]179 store i64 %31, ptr %dst, align 8180 store i64 %30, ptr %src, align 8181 store i64 %29, ptr %dst, align 8182 br label %land.lhs.true137183}184