xref: /llvm-project/llvm/test/CodeGen/AArch64/GlobalISel/combine-fpowi-optsize.ll (revision 937d79bc9d089c06ba02db909e28c1076542bd8e)
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=aarch64-unknown-unknown | FileCheck %s
3; RUN: llc < %s -mtriple=aarch64-unknown-unknown -global-isel | FileCheck %s
4
5define double @pow_optsize(double %x) nounwind optsize {
6; CHECK-LABEL: pow_optsize:
7; CHECK:       // %bb.0: // %entry
8; CHECK-NEXT:    mov w0, #15 // =0xf
9; CHECK-NEXT:    b __powidf2
10entry:
11  %0 = call double @llvm.powi.f64.i32(double %x, i32 15)
12  ret double %0
13}
14
15define double @pow_optsize_expand(double %x) nounwind optsize {
16; CHECK-LABEL: pow_optsize_expand:
17; CHECK:       // %bb.0: // %entry
18; CHECK-NEXT:    fmul d0, d0, d0
19; CHECK-NEXT:    fmul d0, d0, d0
20; CHECK-NEXT:    fmul d0, d0, d0
21; CHECK-NEXT:    fmul d0, d0, d0
22; CHECK-NEXT:    ret
23entry:
24  %0 = call double @llvm.powi.f64.i32(double %x, i32 16)
25  ret double %0
26}
27