brintos

brintos / llvm-project-archived public Read only

0
0
Text · 13.2 KiB · 08ecd89 Raw
437 lines · plain
1; RUN: llc -verify-machineinstrs < %s | FileCheck %s2target datalayout = "E-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v128:128:128-n32:64"3target triple = "powerpc64-unknown-linux-gnu"4 5; CHECK: test_pos1_ir_sle6; CHECK: bdnz7; a < b8define void @test_pos1_ir_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {9entry:10  %cmp3 = icmp sle i32 28395, %b11  br i1 %cmp3, label %for.body.lr.ph, label %for.end12 13for.body.lr.ph:                                   ; preds = %entry14  br label %for.body15 16for.body:                                         ; preds = %for.body.lr.ph, %for.body17  %i.04 = phi i32 [ 28395, %for.body.lr.ph ], [ %inc, %for.body ]18  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.0419  %0 = load i8, ptr %arrayidx, align 120  %conv = zext i8 %0 to i3221  %add = add nsw i32 %conv, 122  %conv1 = trunc i32 %add to i823  store i8 %conv1, ptr %arrayidx, align 124  %inc = add nsw i32 %i.04, 125  %cmp = icmp sle i32 %inc, %b26  br i1 %cmp, label %for.body, label %for.end27 28for.end:                                          ; preds = %for.body, %entry29  ret void30}31 32 33 34; CHECK: test_pos2_ir_sle35; CHECK: bdnz36; a < b37define void @test_pos2_ir_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {38entry:39  %cmp3 = icmp sle i32 9073, %b40  br i1 %cmp3, label %for.body.lr.ph, label %for.end41 42for.body.lr.ph:                                   ; preds = %entry43  br label %for.body44 45for.body:                                         ; preds = %for.body.lr.ph, %for.body46  %i.04 = phi i32 [ 9073, %for.body.lr.ph ], [ %inc, %for.body ]47  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.0448  %0 = load i8, ptr %arrayidx, align 149  %conv = zext i8 %0 to i3250  %add = add nsw i32 %conv, 151  %conv1 = trunc i32 %add to i852  store i8 %conv1, ptr %arrayidx, align 153  %inc = add nsw i32 %i.04, 254  %cmp = icmp sle i32 %inc, %b55  br i1 %cmp, label %for.body, label %for.end56 57for.end:                                          ; preds = %for.body, %entry58  ret void59}60 61 62 63; CHECK: test_pos4_ir_sle64; CHECK: bdnz65; a < b66define void @test_pos4_ir_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {67entry:68  %cmp3 = icmp sle i32 21956, %b69  br i1 %cmp3, label %for.body.lr.ph, label %for.end70 71for.body.lr.ph:                                   ; preds = %entry72  br label %for.body73 74for.body:                                         ; preds = %for.body.lr.ph, %for.body75  %i.04 = phi i32 [ 21956, %for.body.lr.ph ], [ %inc, %for.body ]76  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.0477  %0 = load i8, ptr %arrayidx, align 178  %conv = zext i8 %0 to i3279  %add = add nsw i32 %conv, 180  %conv1 = trunc i32 %add to i881  store i8 %conv1, ptr %arrayidx, align 182  %inc = add nsw i32 %i.04, 483  %cmp = icmp sle i32 %inc, %b84  br i1 %cmp, label %for.body, label %for.end85 86for.end:                                          ; preds = %for.body, %entry87  ret void88}89 90 91 92; CHECK: test_pos8_ir_sle93; CHECK: bdnz94; a < b95define void @test_pos8_ir_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {96entry:97  %cmp3 = icmp sle i32 16782, %b98  br i1 %cmp3, label %for.body.lr.ph, label %for.end99 100for.body.lr.ph:                                   ; preds = %entry101  br label %for.body102 103for.body:                                         ; preds = %for.body.lr.ph, %for.body104  %i.04 = phi i32 [ 16782, %for.body.lr.ph ], [ %inc, %for.body ]105  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04106  %0 = load i8, ptr %arrayidx, align 1107  %conv = zext i8 %0 to i32108  %add = add nsw i32 %conv, 1109  %conv1 = trunc i32 %add to i8110  store i8 %conv1, ptr %arrayidx, align 1111  %inc = add nsw i32 %i.04, 8112  %cmp = icmp sle i32 %inc, %b113  br i1 %cmp, label %for.body, label %for.end114 115for.end:                                          ; preds = %for.body, %entry116  ret void117}118 119 120 121; CHECK: test_pos16_ir_sle122; CHECK: bdnz123; a < b124define void @test_pos16_ir_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {125entry:126  %cmp3 = icmp sle i32 19097, %b127  br i1 %cmp3, label %for.body.lr.ph, label %for.end128 129for.body.lr.ph:                                   ; preds = %entry130  br label %for.body131 132for.body:                                         ; preds = %for.body.lr.ph, %for.body133  %i.04 = phi i32 [ 19097, %for.body.lr.ph ], [ %inc, %for.body ]134  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04135  %0 = load i8, ptr %arrayidx, align 1136  %conv = zext i8 %0 to i32137  %add = add nsw i32 %conv, 1138  %conv1 = trunc i32 %add to i8139  store i8 %conv1, ptr %arrayidx, align 1140  %inc = add nsw i32 %i.04, 16141  %cmp = icmp sle i32 %inc, %b142  br i1 %cmp, label %for.body, label %for.end143 144for.end:                                          ; preds = %for.body, %entry145  ret void146}147 148 149 150; CHECK: test_pos1_ri_sle151; CHECK: bdnz152; a < b153define void @test_pos1_ri_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {154entry:155  %cmp3 = icmp sle i32 %a, 14040156  br i1 %cmp3, label %for.body.lr.ph, label %for.end157 158for.body.lr.ph:                                   ; preds = %entry159  br label %for.body160 161for.body:                                         ; preds = %for.body.lr.ph, %for.body162  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]163  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04164  %0 = load i8, ptr %arrayidx, align 1165  %conv = zext i8 %0 to i32166  %add = add nsw i32 %conv, 1167  %conv1 = trunc i32 %add to i8168  store i8 %conv1, ptr %arrayidx, align 1169  %inc = add nsw i32 %i.04, 1170  %cmp = icmp sle i32 %inc, 14040171  br i1 %cmp, label %for.body, label %for.end172 173for.end:                                          ; preds = %for.body, %entry174  ret void175}176 177 178 179; CHECK: test_pos2_ri_sle180; CHECK: bdnz181; a < b182define void @test_pos2_ri_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {183entry:184  %cmp3 = icmp sle i32 %a, 13710185  br i1 %cmp3, label %for.body.lr.ph, label %for.end186 187for.body.lr.ph:                                   ; preds = %entry188  br label %for.body189 190for.body:                                         ; preds = %for.body.lr.ph, %for.body191  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]192  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04193  %0 = load i8, ptr %arrayidx, align 1194  %conv = zext i8 %0 to i32195  %add = add nsw i32 %conv, 1196  %conv1 = trunc i32 %add to i8197  store i8 %conv1, ptr %arrayidx, align 1198  %inc = add nsw i32 %i.04, 2199  %cmp = icmp sle i32 %inc, 13710200  br i1 %cmp, label %for.body, label %for.end201 202for.end:                                          ; preds = %for.body, %entry203  ret void204}205 206 207 208; CHECK: test_pos4_ri_sle209; CHECK: bdnz210; a < b211define void @test_pos4_ri_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {212entry:213  %cmp3 = icmp sle i32 %a, 9920214  br i1 %cmp3, label %for.body.lr.ph, label %for.end215 216for.body.lr.ph:                                   ; preds = %entry217  br label %for.body218 219for.body:                                         ; preds = %for.body.lr.ph, %for.body220  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]221  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04222  %0 = load i8, ptr %arrayidx, align 1223  %conv = zext i8 %0 to i32224  %add = add nsw i32 %conv, 1225  %conv1 = trunc i32 %add to i8226  store i8 %conv1, ptr %arrayidx, align 1227  %inc = add nsw i32 %i.04, 4228  %cmp = icmp sle i32 %inc, 9920229  br i1 %cmp, label %for.body, label %for.end230 231for.end:                                          ; preds = %for.body, %entry232  ret void233}234 235 236 237; CHECK: test_pos8_ri_sle238; CHECK: bdnz239; a < b240define void @test_pos8_ri_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {241entry:242  %cmp3 = icmp sle i32 %a, 18924243  br i1 %cmp3, label %for.body.lr.ph, label %for.end244 245for.body.lr.ph:                                   ; preds = %entry246  br label %for.body247 248for.body:                                         ; preds = %for.body.lr.ph, %for.body249  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]250  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04251  %0 = load i8, ptr %arrayidx, align 1252  %conv = zext i8 %0 to i32253  %add = add nsw i32 %conv, 1254  %conv1 = trunc i32 %add to i8255  store i8 %conv1, ptr %arrayidx, align 1256  %inc = add nsw i32 %i.04, 8257  %cmp = icmp sle i32 %inc, 18924258  br i1 %cmp, label %for.body, label %for.end259 260for.end:                                          ; preds = %for.body, %entry261  ret void262}263 264 265 266; CHECK: test_pos16_ri_sle267; CHECK: bdnz268; a < b269define void @test_pos16_ri_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {270entry:271  %cmp3 = icmp sle i32 %a, 11812272  br i1 %cmp3, label %for.body.lr.ph, label %for.end273 274for.body.lr.ph:                                   ; preds = %entry275  br label %for.body276 277for.body:                                         ; preds = %for.body.lr.ph, %for.body278  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]279  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04280  %0 = load i8, ptr %arrayidx, align 1281  %conv = zext i8 %0 to i32282  %add = add nsw i32 %conv, 1283  %conv1 = trunc i32 %add to i8284  store i8 %conv1, ptr %arrayidx, align 1285  %inc = add nsw i32 %i.04, 16286  %cmp = icmp sle i32 %inc, 11812287  br i1 %cmp, label %for.body, label %for.end288 289for.end:                                          ; preds = %for.body, %entry290  ret void291}292 293 294 295; CHECK: test_pos1_rr_sle296; CHECK: bdnz297; a < b298define void @test_pos1_rr_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {299entry:300  %cmp3 = icmp sle i32 %a, %b301  br i1 %cmp3, label %for.body.lr.ph, label %for.end302 303for.body.lr.ph:                                   ; preds = %entry304  br label %for.body305 306for.body:                                         ; preds = %for.body.lr.ph, %for.body307  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]308  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04309  %0 = load i8, ptr %arrayidx, align 1310  %conv = zext i8 %0 to i32311  %add = add nsw i32 %conv, 1312  %conv1 = trunc i32 %add to i8313  store i8 %conv1, ptr %arrayidx, align 1314  %inc = add nsw i32 %i.04, 1315  %cmp = icmp sle i32 %inc, %b316  br i1 %cmp, label %for.body, label %for.end317 318for.end:                                          ; preds = %for.body, %entry319  ret void320}321 322 323 324; CHECK: test_pos2_rr_sle325; CHECK: bdnz326; a < b327define void @test_pos2_rr_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {328entry:329  %cmp3 = icmp sle i32 %a, %b330  br i1 %cmp3, label %for.body.lr.ph, label %for.end331 332for.body.lr.ph:                                   ; preds = %entry333  br label %for.body334 335for.body:                                         ; preds = %for.body.lr.ph, %for.body336  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]337  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04338  %0 = load i8, ptr %arrayidx, align 1339  %conv = zext i8 %0 to i32340  %add = add nsw i32 %conv, 1341  %conv1 = trunc i32 %add to i8342  store i8 %conv1, ptr %arrayidx, align 1343  %inc = add nsw i32 %i.04, 2344  %cmp = icmp sle i32 %inc, %b345  br i1 %cmp, label %for.body, label %for.end346 347for.end:                                          ; preds = %for.body, %entry348  ret void349}350 351 352 353; CHECK: test_pos4_rr_sle354; CHECK: bdnz355; a < b356define void @test_pos4_rr_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {357entry:358  %cmp3 = icmp sle i32 %a, %b359  br i1 %cmp3, label %for.body.lr.ph, label %for.end360 361for.body.lr.ph:                                   ; preds = %entry362  br label %for.body363 364for.body:                                         ; preds = %for.body.lr.ph, %for.body365  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]366  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04367  %0 = load i8, ptr %arrayidx, align 1368  %conv = zext i8 %0 to i32369  %add = add nsw i32 %conv, 1370  %conv1 = trunc i32 %add to i8371  store i8 %conv1, ptr %arrayidx, align 1372  %inc = add nsw i32 %i.04, 4373  %cmp = icmp sle i32 %inc, %b374  br i1 %cmp, label %for.body, label %for.end375 376for.end:                                          ; preds = %for.body, %entry377  ret void378}379 380 381 382; CHECK: test_pos8_rr_sle383; CHECK: bdnz384; a < b385define void @test_pos8_rr_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {386entry:387  %cmp3 = icmp sle i32 %a, %b388  br i1 %cmp3, label %for.body.lr.ph, label %for.end389 390for.body.lr.ph:                                   ; preds = %entry391  br label %for.body392 393for.body:                                         ; preds = %for.body.lr.ph, %for.body394  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]395  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04396  %0 = load i8, ptr %arrayidx, align 1397  %conv = zext i8 %0 to i32398  %add = add nsw i32 %conv, 1399  %conv1 = trunc i32 %add to i8400  store i8 %conv1, ptr %arrayidx, align 1401  %inc = add nsw i32 %i.04, 8402  %cmp = icmp sle i32 %inc, %b403  br i1 %cmp, label %for.body, label %for.end404 405for.end:                                          ; preds = %for.body, %entry406  ret void407}408 409 410 411; CHECK: test_pos16_rr_sle412; CHECK: bdnz413; a < b414define void @test_pos16_rr_sle(ptr nocapture %p, i32 %a, i32 %b) nounwind {415entry:416  %cmp3 = icmp sle i32 %a, %b417  br i1 %cmp3, label %for.body.lr.ph, label %for.end418 419for.body.lr.ph:                                   ; preds = %entry420  br label %for.body421 422for.body:                                         ; preds = %for.body.lr.ph, %for.body423  %i.04 = phi i32 [ %a, %for.body.lr.ph ], [ %inc, %for.body ]424  %arrayidx = getelementptr inbounds i8, ptr %p, i32 %i.04425  %0 = load i8, ptr %arrayidx, align 1426  %conv = zext i8 %0 to i32427  %add = add nsw i32 %conv, 1428  %conv1 = trunc i32 %add to i8429  store i8 %conv1, ptr %arrayidx, align 1430  %inc = add nsw i32 %i.04, 16431  %cmp = icmp sle i32 %inc, %b432  br i1 %cmp, label %for.body, label %for.end433 434for.end:                                          ; preds = %for.body, %entry435  ret void436}437