brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 98ab3f7 Raw
170 lines · plain
1; RUN: llc -mtriple=hexagon -O2 -disable-hexagon-misched < %s | FileCheck %s2 3target triple = "hexagon-unknown--elf"4 5; CHECK-LABEL: f1:6; CHECK-DAG:      r16 = ##.Lg0+327677; CHECK-DAG:      r17 = ##g1+327678 9; CHECK-LABEL: LBB0_2:10; CHECK:        {11; CHECK-DAG:      call f012; CHECK-DAG:      r0 = add(r16,#-32767)13; CHECK-DAG:      r1 = add(r17,#-32767)14; CHECK:        }15 16; CHECK-LABEL: LBB0_3:17; CHECK:        {18; CHECK-DAG:      call f019; CHECK-DAG:      r0 = add(r16,#-32767)20; CHECK-DAG:      r1 = add(r17,#-32757)21; CHECK:        }22 23; CHECK-LABEL: LBB0_4:24; CHECK:        {25; CHECK-DAG:      call f026; CHECK-DAG:      r0 = add(r16,#-32767)27; CHECK-DAG:      r1 = add(r17,#-32747)28; CHECK:        }29 30; CHECK-LABEL: LBB0_5:31; CHECK:        {32; CHECK-DAG:      call f033; CHECK-DAG:      r0 = add(r16,#-32767)34; CHECK-DAG:      r1 = add(r17,#-32737)35; CHECK:        }36 37; CHECK-LABEL: LBB0_6:38; CHECK:        {39; CHECK-DAG:      call f040; CHECK-DAG:      r0 = add(r16,#-32767)41; CHECK-DAG:      r1 = add(r17,#-32727)42; CHECK:        }43 44; CHECK-LABEL: LBB0_7:45; CHECK:        {46; CHECK-DAG:      call f047; CHECK-DAG:      r0 = add(r16,#-32767)48; CHECK-DAG:      r1 = add(r17,#-32717)49; CHECK:        }50 51; CHECK-LABEL: LBB0_8:52; CHECK:        {53; CHECK-DAG:      call f054; CHECK-DAG:      r0 = add(r16,#-32767)55; CHECK-DAG:      r1 = add(r17,#-32707)56; CHECK:        }57 58; CHECK-LABEL: LBB0_9:59; CHECK:        {60; CHECK-DAG:      call f061; CHECK-DAG:      r0 = add(r16,#-32767)62; CHECK-DAG:      r1 = add(r17,#-32697)63; CHECK:        }64 65; CHECK-LABEL: LBB0_10:66; CHECK:        {67; CHECK-DAG:      call f068; CHECK-DAG:      r0 = add(r16,#-32767)69; CHECK-DAG:      r1 = add(r17,#-32687)70; CHECK:        }71 72; CHECK-LABEL: LBB0_11:73; CHECK:        {74; CHECK-DAG:      call f075; CHECK-DAG:      r0 = add(r16,#-32767)76; CHECK-DAG:      r1 = add(r17,#-32677)77; CHECK:        }78 79@g0 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 180@g1 = internal constant [10 x [10 x i8]] [[10 x i8] c"[0000]\00\00\00\00", [10 x i8] c"[0001]\00\00\00\00", [10 x i8] c"[0002]\00\00\00\00", [10 x i8] c"[0003]\00\00\00\00", [10 x i8] c"[0004]\00\00\00\00", [10 x i8] c"[0005]\00\00\00\00", [10 x i8] c"[0006]\00\00\00\00", [10 x i8] c"[0007]\00\00\00\00", [10 x i8] c"[0008]\00\00\00\00", [10 x i8] c"[0009]\00\00\00\00"], align 1681 82declare i32 @f0(ptr, ptr)83 84; Function Attrs: nounwind85define i32 @f1(i32 %a0, ptr %a1) #0 {86b0:87  %v01 = alloca i32, align 488  %v12 = alloca i32, align 489  %v23 = alloca ptr, align 490  %v34 = alloca i32, align 491  store i32 0, ptr %v0192  store i32 %a0, ptr %v12, align 493  store ptr %a1, ptr %v23, align 494  %v45 = load ptr, ptr %v23, align 495  %v56 = getelementptr inbounds ptr, ptr %v45, i32 196  %v67 = load ptr, ptr %v56, align 497  %v78 = call i32 @f2(ptr %v67)98  store i32 %v78, ptr %v34, align 499  %v89 = load i32, ptr %v34, align 4100  switch i32 %v89, label %b11 [101    i32 0, label %b1102    i32 1, label %b2103    i32 2, label %b3104    i32 3, label %b4105    i32 4, label %b5106    i32 5, label %b6107    i32 6, label %b7108    i32 7, label %b8109    i32 8, label %b9110    i32 9, label %b10111  ]112 113b1:                                               ; preds = %b0114  %v11 = call i32 @f0(ptr @g0, ptr @g1)115  br label %b2116 117b2:                                               ; preds = %b1, %b0118  %v1211 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 1119  %v14 = call i32 @f0(ptr @g0, ptr %v1211)120  br label %b3121 122b3:                                               ; preds = %b2, %b0123  %v15 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 2124  %v17 = call i32 @f0(ptr @g0, ptr %v15)125  br label %b4126 127b4:                                               ; preds = %b3, %b0128  %v18 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 3129  %v20 = call i32 @f0(ptr @g0, ptr %v18)130  br label %b5131 132b5:                                               ; preds = %b4, %b0133  %v21 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 4134  %v2312 = call i32 @f0(ptr @g0, ptr %v21)135  br label %b6136 137b6:                                               ; preds = %b5, %b0138  %v24 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 5139  %v26 = call i32 @f0(ptr @g0, ptr %v24)140  br label %b7141 142b7:                                               ; preds = %b6, %b0143  %v27 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 6144  %v29 = call i32 @f0(ptr @g0, ptr %v27)145  br label %b8146 147b8:                                               ; preds = %b7, %b0148  %v30 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 7149  %v32 = call i32 @f0(ptr @g0, ptr %v30)150  br label %b9151 152b9:                                               ; preds = %b8, %b0153  %v33 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 8154  %v35 = call i32 @f0(ptr @g0, ptr %v33)155  br label %b10156 157b10:                                              ; preds = %b9, %b0158  %v36 = getelementptr inbounds [10 x [10 x i8]], ptr @g1, i32 0, i32 9159  %v38 = call i32 @f0(ptr @g0, ptr %v36)160  br label %b11161 162b11:                                              ; preds = %b10, %b0163  ret i32 0164}165 166; Function Attrs: nounwind167declare i32 @f2(ptr) #0168 169attributes #0 = { nounwind }170