| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 |
| ; REQUIRES: x86-registered-target, mips-registered-target |
| ; RUN: opt -mtriple=x86_64 -passes=pre-isel-intrinsic-lowering -S < %s | FileCheck --check-prefix=X86 %s |
| ; RUN: opt -mtriple=mips64 -passes=pre-isel-intrinsic-lowering -S < %s | FileCheck --check-prefix=MIPS %s |
| |
| define void @f1(i64 %a, i64 %b) !prof !0 { |
| ; X86-LABEL: define void @f1( |
| ; X86-SAME: i64 [[A:%.*]], i64 [[B:%.*]]) !prof [[PROF0:![0-9]+]] { |
| ; X86-NEXT: [[CMP:%.*]] = icmp ult i64 [[A]], [[B]] |
| ; X86-NEXT: call void @llvm.cond.loop(i1 [[CMP]]) |
| ; X86-NEXT: ret void |
| ; |
| ; MIPS-LABEL: define void @f1( |
| ; MIPS-SAME: i64 [[A:%.*]], i64 [[B:%.*]]) !prof [[PROF0:![0-9]+]] { |
| ; MIPS-NEXT: [[CMP:%.*]] = icmp ult i64 [[A]], [[B]] |
| ; MIPS-NEXT: br i1 [[CMP]], label %[[BB1:.*]], label %[[BB2:.*]], !prof [[PROF1:![0-9]+]] |
| ; MIPS: [[BB1]]: |
| ; MIPS-NEXT: br label %[[BB1]] |
| ; MIPS: [[BB2]]: |
| ; MIPS-NEXT: ret void |
| ; |
| %cmp = icmp ult i64 %a, %b |
| call void @llvm.cond.loop(i1 %cmp) |
| ret void |
| } |
| |
| !0 = !{!"function_entry_count", i64 1000} |
| ;. |
| ; X86: [[PROF0]] = !{!"function_entry_count", i64 1000} |
| ;. |
| ; MIPS: [[PROF0]] = !{!"function_entry_count", i64 1000} |
| ; MIPS: [[PROF1]] = !{!"unknown", !"pre-isel-intrinsic-lowering"} |
| ;. |