xref: /llvm-project/llvm/test/Transforms/InstCombine/pow-to-sqrt.ll (revision de36d39e24249feabe18f845b1868a16b798110a)
1*de36d39eSMiguel Saldivar; RUN: opt < %s -passes=instcombine -S | FileCheck %s
2*de36d39eSMiguel Saldivar; This is a check to assure the attributes of `pow` do
3*de36d39eSMiguel Saldivar; not get passed to sqrt.
4*de36d39eSMiguel Saldivar
5*de36d39eSMiguel Saldivardefine void @pow_to_sqrt(double %x) {
6*de36d39eSMiguel Saldivar; CHECK-LABEL: @pow_to_sqrt(
7*de36d39eSMiguel Saldivar; CHECK-NEXT: [[SQRT:%.*]] = call afn double @sqrt(double [[X:%.*]])
8*de36d39eSMiguel Saldivar; CHECK-NEXT: ret void
9*de36d39eSMiguel Saldivar;
10*de36d39eSMiguel Saldivar  %call = call afn double @pow(double %x, double 1.5)
11*de36d39eSMiguel Saldivar  ret void
12*de36d39eSMiguel Saldivar}
13*de36d39eSMiguel Saldivar
14*de36d39eSMiguel Saldivardeclare double @pow(double noundef, double noundef)
15