• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=mips64el-unknown-linux-gnu -target-abi n64 | FileCheck %s --check-prefix=MIPSN64
3; RUN: llc < %s -mtriple=mips64el-unknown-linux-gnu -target-abi n32 | FileCheck %s --check-prefix=MIPSN32
4
5; Test that powi has its integer argument sign extended on mips64.
6
7declare double @llvm.powi.f64(double, i32)
8
9define double @powi(double %value, i32 %power) {
10; MIPSN64-LABEL: powi:
11; MIPSN64:       # %bb.0:
12; MIPSN64-NEXT:    daddiu $sp, $sp, -16
13; MIPSN64-NEXT:    .cfi_def_cfa_offset 16
14; MIPSN64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
15; MIPSN64-NEXT:    .cfi_offset 31, -8
16; MIPSN64-NEXT:    jal __powidf2
17; MIPSN64-NEXT:    sll $5, $5, 0
18; MIPSN64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
19; MIPSN64-NEXT:    jr $ra
20; MIPSN64-NEXT:    daddiu $sp, $sp, 16
21;
22; MIPSN32-LABEL: powi:
23; MIPSN32:       # %bb.0:
24; MIPSN32-NEXT:    addiu $sp, $sp, -16
25; MIPSN32-NEXT:    .cfi_def_cfa_offset 16
26; MIPSN32-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
27; MIPSN32-NEXT:    .cfi_offset 31, -8
28; MIPSN32-NEXT:    jal __powidf2
29; MIPSN32-NEXT:    sll $5, $5, 0
30; MIPSN32-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
31; MIPSN32-NEXT:    jr $ra
32; MIPSN32-NEXT:    addiu $sp, $sp, 16
33        %1 = tail call double @llvm.powi.f64(double %value, i32 %power)
34        ret double %1
35}
36
37declare float @llvm.powi.f32(float, i32)
38
39define float @powfi(float %value, i32 %power) {
40; MIPSN64-LABEL: powfi:
41; MIPSN64:       # %bb.0:
42; MIPSN64-NEXT:    daddiu $sp, $sp, -16
43; MIPSN64-NEXT:    .cfi_def_cfa_offset 16
44; MIPSN64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
45; MIPSN64-NEXT:    .cfi_offset 31, -8
46; MIPSN64-NEXT:    jal __powisf2
47; MIPSN64-NEXT:    sll $5, $5, 0
48; MIPSN64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
49; MIPSN64-NEXT:    jr $ra
50; MIPSN64-NEXT:    daddiu $sp, $sp, 16
51;
52; MIPSN32-LABEL: powfi:
53; MIPSN32:       # %bb.0:
54; MIPSN32-NEXT:    addiu $sp, $sp, -16
55; MIPSN32-NEXT:    .cfi_def_cfa_offset 16
56; MIPSN32-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill
57; MIPSN32-NEXT:    .cfi_offset 31, -8
58; MIPSN32-NEXT:    jal __powisf2
59; MIPSN32-NEXT:    sll $5, $5, 0
60; MIPSN32-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload
61; MIPSN32-NEXT:    jr $ra
62; MIPSN32-NEXT:    addiu $sp, $sp, 16
63        %1 = tail call float @llvm.powi.f32(float %value, i32 %power)
64        ret float %1
65}
66