blob: 6cf689a982dd0887c1b53595b7d4571ddf2fa548 [file] [log] [blame] [edit]
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=instcombine -S | FileCheck %s
define double @fneg_cosh(double noundef %x) {
; CHECK-LABEL: @fneg_cosh(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[RET:%.*]] = tail call nnan double @llvm.cosh.f64(double [[X:%.*]])
; CHECK-NEXT: ret double [[RET]]
;
entry:
%fneg = fneg double %x
%ret = tail call nnan double @llvm.cosh.f64(double %fneg)
ret double %ret
}
declare double @llvm.cosh.f64(double)
define double @fneg_tanh(double noundef %x) {
; CHECK-LABEL: @fneg_tanh(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = call nnan double @llvm.tanh.f64(double [[X:%.*]])
; CHECK-NEXT: ret double [[TMP0]]
;
entry:
%fneg = fneg double %x
%tanhneg = tail call nnan double @llvm.tanh.f64(double %fneg)
%fneg1 = fneg double %tanhneg
ret double %fneg1
}
declare double @llvm.tanh.f64(double)
define double @fneg_sinh(double noundef %x) {
; CHECK-LABEL: @fneg_sinh(
; CHECK-NEXT: entry:
; CHECK-NEXT: [[TMP0:%.*]] = call nnan double @llvm.sinh.f64(double [[X:%.*]])
; CHECK-NEXT: ret double [[TMP0]]
;
entry:
%fneg = fneg double %x
%sinhneg = tail call nnan double @llvm.sinh.f64(double %fneg)
%fneg1 = fneg double %sinhneg
ret double %fneg1
}
declare double @llvm.sinh.f64(double)