brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · 883933b Raw
55 lines · plain
1; RUN: llc -mtriple=aarch64-apple-darwin -O0 -fast-isel-abort=1 -verify-machineinstrs < %s2 3; Test that we don't fold the shift.4define i64 @fold_shift_test(i64 %a, i1 %c) {5  %1 = sub i64 %a, 86  %2 = ashr i64 %1, 37  br i1 %c, label %bb1, label %bb28bb1:9  %3 = icmp ult i64 0, %210  br i1 %3, label %bb2, label %bb311bb2:12  ret i64 113bb3:14  ret i64 215}16 17; Test that we don't fold the sign-extend.18define i64 @fold_sext_test1(i32 %a, i1 %c) {19  %1 = sub i32 %a, 820  %2 = sext i32 %1 to i6421  br i1 %c, label %bb1, label %bb222bb1:23  %3 = icmp ult i64 0, %224  br i1 %3, label %bb2, label %bb325bb2:26  ret i64 127bb3:28  ret i64 229}30 31; Test that we don't fold the sign-extend.32define i64 @fold_sext_test2(i32 %a, i1 %c) {33  %1 = sub i32 %a, 834  %2 = sext i32 %1 to i6435  br i1 %c, label %bb1, label %bb236bb1:37  %3 = shl i64 %2, 438  ret i64 %339bb2:40  ret i64 %241}42 43; Test that we clear the kill flag.44define i32 @fold_kill_test(i32 %a) {45  %1 = sub i32 %a, 846  %2 = shl i32 %1, 347  %3 = icmp ult i32 0, %248  br i1 %3, label %bb1, label %bb249bb1:50  ret i32 %251bb2:52  %4 = add i32 %2, 453  ret i32 %454}55