| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 |
| ; RUN: opt -passes=always-inline -S < %s | FileCheck %s |
| |
| ; Check that always-inline does not inline functions with incompatible target |
| ; features. |
| |
| target triple = "x86_64-grtev4-linux-gnu" |
| |
| define i64 @clck(i64 %a) { |
| ; CHECK-LABEL: define i64 @clck( |
| ; CHECK-SAME: i64 [[A:%.*]]) { |
| ; CHECK-NEXT: [[TMP1:%.*]] = call i64 @dkwaysa(i64 [[A]]) |
| ; CHECK-NEXT: ret i64 [[TMP1]] |
| ; |
| %1 = call i64 @dkwaysa(i64 %a) |
| ret i64 %1 |
| } |
| |
| define i64 @dkwaysa(i64 %a) #0 { |
| ; CHECK-LABEL: define i64 @dkwaysa( |
| ; CHECK-SAME: i64 [[A:%.*]]) #[[ATTR0:[0-9]+]] { |
| ; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.x86.bmi.bzhi.64(i64 1, i64 [[A]]) |
| ; CHECK-NEXT: ret i64 [[TMP1]] |
| ; |
| %2 = tail call i64 @llvm.x86.bmi.bzhi.64(i64 1, i64 %a) |
| ret i64 %2 |
| } |
| |
| attributes #0 = { alwaysinline "target-features"="+bmi2" } |