blob: e4524c69f020697d19b163405b3fe0967bd0ce4c [file] [edit]
; 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" }