brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.7 KiB · 26ce0fc Raw
233 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=aarch64-unknown-linux-gnu < %s | FileCheck %s3 4define void @test() {5; CHECK-LABEL: define void @test() {6; CHECK-NEXT:  [[ENTRY:.*:]]7; CHECK-NEXT:    br label %[[BB61:.*]]8; CHECK:       [[BB61]]:9; CHECK-NEXT:    br label %[[BB64:.*]]10; CHECK:       [[BB62:.*]]:11; CHECK-NEXT:    br i1 poison, label %[[BB63:.*]], label %[[BB64]]12; CHECK:       [[BB63]]:13; CHECK-NEXT:    br label %[[BB64]]14; CHECK:       [[BB64]]:15; CHECK-NEXT:    [[TMP0:%.*]] = phi <16 x float> [ poison, %[[BB61]] ], [ poison, %[[BB63]] ], [ poison, %[[BB62]] ]16; CHECK-NEXT:    [[I66:%.*]] = load float, ptr poison, align 1617; CHECK-NEXT:    [[I67:%.*]] = load float, ptr poison, align 418; CHECK-NEXT:    [[I68:%.*]] = load float, ptr poison, align 819; CHECK-NEXT:    [[I69:%.*]] = load float, ptr poison, align 420; CHECK-NEXT:    [[I70:%.*]] = load float, ptr poison, align 421; CHECK-NEXT:    [[I71:%.*]] = load float, ptr poison, align 1622; CHECK-NEXT:    [[I72:%.*]] = load float, ptr poison, align 423; CHECK-NEXT:    [[I73:%.*]] = load float, ptr poison, align 824; CHECK-NEXT:    [[I74:%.*]] = load float, ptr poison, align 425; CHECK-NEXT:    [[I75:%.*]] = load float, ptr poison, align 1626; CHECK-NEXT:    [[I76:%.*]] = load float, ptr poison, align 427; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <16 x float> poison, float [[I76]], i32 028; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <16 x float> [[TMP1]], float [[I75]], i32 129; CHECK-NEXT:    [[TMP3:%.*]] = insertelement <16 x float> [[TMP2]], float [[I74]], i32 230; CHECK-NEXT:    [[TMP4:%.*]] = insertelement <16 x float> [[TMP3]], float [[I73]], i32 331; CHECK-NEXT:    [[TMP5:%.*]] = insertelement <16 x float> [[TMP4]], float [[I71]], i32 432; CHECK-NEXT:    [[TMP6:%.*]] = insertelement <16 x float> [[TMP5]], float [[I70]], i32 533; CHECK-NEXT:    [[TMP7:%.*]] = insertelement <16 x float> [[TMP6]], float [[I68]], i32 634; CHECK-NEXT:    [[TMP8:%.*]] = insertelement <16 x float> [[TMP7]], float [[I66]], i32 735; CHECK-NEXT:    [[TMP9:%.*]] = insertelement <16 x float> [[TMP8]], float [[I72]], i32 1336; CHECK-NEXT:    [[TMP10:%.*]] = insertelement <16 x float> [[TMP9]], float [[I67]], i32 1437; CHECK-NEXT:    [[TMP11:%.*]] = insertelement <16 x float> [[TMP10]], float [[I69]], i32 1538; CHECK-NEXT:    br i1 poison, label %[[BB167:.*]], label %[[BB77:.*]]39; CHECK:       [[BB77]]:40; CHECK-NEXT:    [[TMP12:%.*]] = shufflevector <16 x float> [[TMP11]], <16 x float> poison, <8 x i32> <i32 poison, i32 poison, i32 poison, i32 poison, i32 14, i32 15, i32 poison, i32 poison>41; CHECK-NEXT:    [[TMP13:%.*]] = insertelement <8 x float> poison, float [[I70]], i32 042; CHECK-NEXT:    [[TMP14:%.*]] = shufflevector <8 x float> [[TMP12]], <8 x float> [[TMP13]], <8 x i32> <i32 8, i32 poison, i32 poison, i32 poison, i32 4, i32 5, i32 poison, i32 poison>43; CHECK-NEXT:    [[TMP15:%.*]] = insertelement <8 x float> poison, float [[I70]], i32 144; CHECK-NEXT:    [[TMP16:%.*]] = insertelement <8 x float> [[TMP15]], float [[I68]], i32 245; CHECK-NEXT:    [[TMP17:%.*]] = insertelement <8 x float> [[TMP16]], float [[I66]], i32 346; CHECK-NEXT:    [[TMP18:%.*]] = insertelement <8 x float> [[TMP17]], float [[I67]], i32 647; CHECK-NEXT:    [[TMP19:%.*]] = insertelement <8 x float> [[TMP18]], float [[I69]], i32 748; CHECK-NEXT:    [[TMP20:%.*]] = shufflevector <16 x float> [[TMP0]], <16 x float> poison, <16 x i32> <i32 poison, i32 poison, i32 3, i32 2, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison>49; CHECK-NEXT:    [[TMP21:%.*]] = shufflevector <16 x float> [[TMP20]], <16 x float> [[TMP0]], <16 x i32> <i32 poison, i32 poison, i32 2, i32 3, i32 18, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 poison, i32 19, i32 poison, i32 poison>50; CHECK-NEXT:    br label %[[BB78:.*]]51; CHECK:       [[BB78]]:52; CHECK-NEXT:    [[TMP22:%.*]] = phi <8 x float> [ [[TMP14]], %[[BB77]] ], [ [[TMP31:%.*]], %[[BB78]] ]53; CHECK-NEXT:    [[TMP23:%.*]] = phi <8 x float> [ [[TMP19]], %[[BB77]] ], [ [[TMP32:%.*]], %[[BB78]] ]54; CHECK-NEXT:    [[TMP24:%.*]] = shufflevector <8 x float> [[TMP23]], <8 x float> poison, <16 x i32> <i32 0, i32 3, i32 1, i32 2, i32 3, i32 0, i32 2, i32 3, i32 2, i32 6, i32 2, i32 3, i32 0, i32 7, i32 6, i32 6>55; CHECK-NEXT:    [[TMP25:%.*]] = shufflevector <8 x float> [[TMP22]], <8 x float> poison, <16 x i32> <i32 0, i32 1, i32 2, i32 3, i32 1, i32 0, i32 3, i32 1, i32 3, i32 5, i32 3, i32 1, i32 0, i32 4, i32 5, i32 5>56; CHECK-NEXT:    [[TMP26:%.*]] = fmul fast <16 x float> [[TMP24]], [[TMP21]]57; CHECK-NEXT:    [[TMP27:%.*]] = fmul fast <16 x float> [[TMP25]], [[TMP0]]58; CHECK-NEXT:    [[TMP28:%.*]] = fadd fast <16 x float> [[TMP27]], [[TMP26]]59; CHECK-NEXT:    [[TMP29:%.*]] = fadd fast <16 x float> [[TMP28]], poison60; CHECK-NEXT:    [[TMP30:%.*]] = fadd fast <16 x float> [[TMP29]], poison61; CHECK-NEXT:    [[TMP31]] = shufflevector <16 x float> [[TMP30]], <16 x float> poison, <8 x i32> <i32 5, i32 11, i32 12, i32 10, i32 14, i32 15, i32 poison, i32 poison>62; CHECK-NEXT:    [[TMP32]] = shufflevector <16 x float> [[TMP30]], <16 x float> poison, <8 x i32> <i32 12, i32 5, i32 6, i32 7, i32 poison, i32 poison, i32 14, i32 15>63; CHECK-NEXT:    br i1 poison, label %[[BB78]], label %[[BB167]]64; CHECK:       [[BB167]]:65; CHECK-NEXT:    [[TMP35:%.*]] = phi <16 x float> [ [[TMP11]], %[[BB64]] ], [ [[TMP30]], %[[BB78]] ]66; CHECK-NEXT:    [[TMP33:%.*]] = extractelement <16 x float> [[TMP35]], i32 1467; CHECK-NEXT:    store float [[TMP33]], ptr poison, align 168; CHECK-NEXT:    [[TMP34:%.*]] = extractelement <16 x float> [[TMP35]], i32 1369; CHECK-NEXT:    store float [[TMP34]], ptr poison, align 170; CHECK-NEXT:    [[TMP36:%.*]] = extractelement <16 x float> [[TMP35]], i32 1571; CHECK-NEXT:    br i1 poison, label %[[BB186:.*]], label %[[BB184:.*]]72; CHECK:       [[BB184]]:73; CHECK-NEXT:    br label %[[BB185:.*]]74; CHECK:       [[BB185]]:75; CHECK-NEXT:    br i1 poison, label %[[BB185]], label %[[BB186]]76; CHECK:       [[BB186]]:77; CHECK-NEXT:    [[I187:%.*]] = phi nsz float [ [[TMP36]], %[[BB167]] ], [ poison, %[[BB185]] ]78; CHECK-NEXT:    ret void79;80entry:81  br label %bb6182 83bb61:84  br label %bb6485 86bb62:87  br i1 poison, label %bb63, label %bb6488 89bb63:90  br label %bb6491 92bb64:93  %i = phi nsz float [ poison, %bb61 ], [ poison, %bb63 ], [ poison, %bb62 ]94  %i65 = phi nsz float [ poison, %bb61 ], [ poison, %bb63 ], [ poison, %bb62 ]95  %i66 = load float, ptr poison, align 1696  %i67 = load float, ptr poison, align 497  %i68 = load float, ptr poison, align 898  %i69 = load float, ptr poison, align 499  %i70 = load float, ptr poison, align 4100  %i71 = load float, ptr poison, align 16101  %i72 = load float, ptr poison, align 4102  %i73 = load float, ptr poison, align 8103  %i74 = load float, ptr poison, align 4104  %i75 = load float, ptr poison, align 16105  %i76 = load float, ptr poison, align 4106  br i1 poison, label %bb167, label %bb77107 108bb77:109  br label %bb78110 111bb78:112  %i79 = phi nsz float [ %i66, %bb77 ], [ %i103, %bb78 ]113  %i80 = phi nsz float [ %i67, %bb77 ], [ %i104, %bb78 ]114  %i81 = phi nsz float [ %i68, %bb77 ], [ %i105, %bb78 ]115  %i82 = phi nsz float [ poison, %bb77 ], [ %i106, %bb78 ]116  %i83 = phi nsz float [ poison, %bb77 ], [ %i123, %bb78 ]117  %i84 = phi nsz float [ %i69, %bb77 ], [ %i124, %bb78 ]118  %i85 = phi nsz float [ poison, %bb77 ], [ %i125, %bb78 ]119  %i86 = phi nsz float [ %i70, %bb77 ], [ %i126, %bb78 ]120  %i87 = fmul fast float %i79, poison121  %i88 = fmul fast float %i80, poison122  %i89 = fmul fast float %i81, poison123  %i90 = fmul fast float %i82, poison124  %i91 = fmul fast float %i83, poison125  %i92 = fadd fast float %i91, %i87126  %i93 = fmul fast float %i84, poison127  %i94 = fadd fast float %i93, %i88128  %i95 = fmul fast float %i85, poison129  %i96 = fadd fast float %i95, %i89130  %i97 = fmul fast float %i86, poison131  %i98 = fadd fast float %i97, %i90132  %i99 = fadd fast float %i92, poison133  %i100 = fadd fast float %i94, poison134  %i101 = fadd fast float %i96, poison135  %i102 = fadd fast float %i98, poison136  %i103 = fadd fast float %i99, poison137  %i104 = fadd fast float %i100, poison138  %i105 = fadd fast float %i101, poison139  %i106 = fadd fast float %i102, poison140  %i107 = fmul fast float %i79, poison141  %i108 = fmul fast float %i80, poison142  %i109 = fmul fast float %i81, poison143  %i110 = fmul fast float %i82, poison144  %i111 = fmul fast float %i83, poison145  %i112 = fadd fast float %i111, %i107146  %i113 = fmul fast float %i84, poison147  %i114 = fadd fast float %i113, %i108148  %i115 = fmul fast float %i85, poison149  %i116 = fadd fast float %i115, %i109150  %i117 = fmul fast float %i86, poison151  %i118 = fadd fast float %i117, %i110152  %i119 = fadd fast float %i112, poison153  %i120 = fadd fast float %i114, poison154  %i121 = fadd fast float %i116, poison155  %i122 = fadd fast float %i118, poison156  %i123 = fadd fast float %i119, poison157  %i124 = fadd fast float %i120, poison158  %i125 = fadd fast float %i121, poison159  %i126 = fadd fast float %i122, poison160  %i127 = fmul fast float %i79, %i161  %i128 = fmul fast float %i80, %i162  %i129 = fmul fast float %i81, %i163  %i130 = fmul fast float %i82, %i164  %i131 = fmul fast float %i83, %i65165  %i132 = fadd fast float %i131, %i127166  %i133 = fmul fast float %i84, %i65167  %i134 = fadd fast float %i133, %i128168  %i135 = fmul fast float %i85, %i65169  %i136 = fadd fast float %i135, %i129170  %i137 = fmul fast float %i86, %i65171  %i138 = fadd fast float %i137, %i130172  %i139 = fadd fast float %i132, poison173  %i140 = fadd fast float %i134, poison174  %i141 = fadd fast float %i136, poison175  %i142 = fadd fast float %i138, poison176  %i143 = fadd fast float %i139, poison177  %i144 = fadd fast float %i140, poison178  %i145 = fadd fast float %i141, poison179  %i146 = fadd fast float %i142, poison180  %i147 = fmul fast float %i79, poison181  %i148 = fmul fast float %i80, poison182  %i149 = fmul fast float %i81, poison183  %i150 = fmul fast float %i82, poison184  %i151 = fmul fast float %i83, poison185  %i152 = fadd fast float %i151, %i147186  %i153 = fmul fast float %i84, poison187  %i154 = fadd fast float %i153, %i148188  %i155 = fmul fast float %i85, poison189  %i156 = fadd fast float %i155, %i149190  %i157 = fmul fast float %i86, poison191  %i158 = fadd fast float %i157, %i150192  %i159 = fadd fast float %i152, poison193  %i160 = fadd fast float %i154, poison194  %i161 = fadd fast float %i156, poison195  %i162 = fadd fast float %i158, poison196  %i163 = fadd fast float %i159, poison197  %i164 = fadd fast float %i160, poison198  %i165 = fadd fast float %i161, poison199  %i166 = fadd fast float %i162, poison200  br i1 poison, label %bb78, label %bb167201 202bb167:203  %i168 = phi nsz float [ %i76, %bb64 ], [ %i166, %bb78 ]204  %i169 = phi nsz float [ poison, %bb64 ], [ %i165, %bb78 ]205  %i170 = phi nsz float [ poison, %bb64 ], [ %i164, %bb78 ]206  %i171 = phi nsz float [ %i75, %bb64 ], [ %i163, %bb78 ]207  %i172 = phi nsz float [ %i74, %bb64 ], [ %i146, %bb78 ]208  %i173 = phi nsz float [ %i73, %bb64 ], [ %i145, %bb78 ]209  %i174 = phi nsz float [ %i72, %bb64 ], [ %i144, %bb78 ]210  %i175 = phi nsz float [ %i71, %bb64 ], [ %i143, %bb78 ]211  %i176 = phi nsz float [ %i70, %bb64 ], [ %i126, %bb78 ]212  %i177 = phi nsz float [ poison, %bb64 ], [ %i125, %bb78 ]213  %i178 = phi nsz float [ %i69, %bb64 ], [ %i124, %bb78 ]214  %i179 = phi nsz float [ poison, %bb64 ], [ %i123, %bb78 ]215  %i180 = phi nsz float [ poison, %bb64 ], [ %i106, %bb78 ]216  %i181 = phi nsz float [ %i68, %bb64 ], [ %i105, %bb78 ]217  %i182 = phi nsz float [ %i67, %bb64 ], [ %i104, %bb78 ]218  %i183 = phi nsz float [ %i66, %bb64 ], [ %i103, %bb78 ]219  store float %i182, ptr poison, align 1220  store float %i174, ptr poison, align 1221  br i1 poison, label %bb186, label %bb184222 223bb184:224  br label %bb185225 226bb185:227  br i1 poison, label %bb185, label %bb186228 229bb186:230  %i187 = phi nsz float [ %i178, %bb167 ], [ poison, %bb185 ]231  ret void232}233