brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 64286d2 Raw
84 lines · plain
1; RUN: llc -mtriple=hexagon -O3 -hexagon-eif=0 < %s | FileCheck %s2; Without TFR cleanup, the last block contained3; {4;   r3 = xor(r1, r2)5;   r1 = #06; }7; {8;   r7 = r19;   r0 = zxtb(r3)10; }11; After TFR cleanup, the copy "r7 = r1" should be simplified to "r7 = #0".12; There shouldn't be any register copies in that block anymore.13;14; CHECK: LBB0_5:15; CHECK-NOT: r{{[0-9]+}} = r{{[0-9]+}}16 17target triple = "hexagon"18 19; Function Attrs: nounwind readnone20define i64 @f0(i64 %a0, i32 %a1, i32 %a2) #0 {21b0:22  %v0 = trunc i64 %a0 to i3223  %v1 = lshr i64 %a0, 3224  %v2 = trunc i64 %v1 to i3225  %v3 = lshr i64 %a0, 4026  %v4 = lshr i64 %a0, 4827  %v5 = trunc i64 %v4 to i1628  %v6 = icmp sgt i32 %a2, %a129  %v7 = lshr i32 %v0, 1030  br i1 %v6, label %b1, label %b231 32b1:                                               ; preds = %b033  %v8 = add nsw i32 %v7, 419097134  %v9 = and i32 %v8, 419430335  %v10 = shl nuw nsw i64 %v3, 2436  %v11 = trunc i64 %v10 to i3237  %v12 = ashr exact i32 %v11, 2438  %v13 = or i32 %v12, 10239  br label %b340 41b2:                                               ; preds = %b042  %v14 = add nsw i32 %v7, 418976043  %v15 = trunc i64 %v3 to i3244  %v16 = or i32 %v15, 11945  br label %b346 47b3:                                               ; preds = %b2, %b148  %v17 = phi i32 [ %v13, %b1 ], [ %v16, %b2 ]49  %v18 = phi i32 [ %v9, %b1 ], [ %v14, %b2 ]50  %v19 = shl i32 %v18, 1051  %v20 = icmp sgt i32 %a1, %a252  br i1 %v20, label %b4, label %b553 54b4:                                               ; preds = %b355  %v21 = and i32 %v2, 14056  %v22 = or i32 %v21, 11557  %v23 = and i16 %v5, 1234558  br label %b659 60b5:                                               ; preds = %b361  %v24 = xor i32 %v2, 2362  %v25 = or i16 %v5, 1234563  br label %b664 65b6:                                               ; preds = %b5, %b466  %v26 = phi i16 [ %v23, %b4 ], [ %v25, %b5 ]67  %v27 = phi i32 [ %v22, %b4 ], [ %v24, %b5 ]68  %v28 = zext i16 %v26 to i6469  %v29 = shl nuw i64 %v28, 4870  %v30 = and i32 %v27, 25571  %v31 = zext i32 %v30 to i6472  %v32 = shl nuw nsw i64 %v31, 4073  %v33 = and i32 %v17, 25574  %v34 = zext i32 %v33 to i6475  %v35 = shl nuw nsw i64 %v34, 3276  %v36 = zext i32 %v19 to i6477  %v37 = or i64 %v36, %v3578  %v38 = or i64 %v37, %v2979  %v39 = or i64 %v38, %v3280  ret i64 %v3981}82 83attributes #0 = { nounwind readnone "target-cpu"="hexagonv55" }84