66 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc < %s -mtriple=mips64el-unknown-linux-gnu -target-abi n64 | FileCheck %s --check-prefix=MIPSN643; RUN: llc < %s -mtriple=mips64el-unknown-linux-gnu -target-abi n32 | FileCheck %s --check-prefix=MIPSN324 5; Test that powi has its integer argument sign extended on mips64.6 7declare double @llvm.powi.f64.i32(double, i32)8 9define double @powi(double %value, i32 %power) {10; MIPSN64-LABEL: powi:11; MIPSN64: # %bb.0:12; MIPSN64-NEXT: daddiu $sp, $sp, -1613; MIPSN64-NEXT: .cfi_def_cfa_offset 1614; MIPSN64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill15; MIPSN64-NEXT: .cfi_offset 31, -816; MIPSN64-NEXT: jal __powidf217; MIPSN64-NEXT: sll $5, $5, 018; MIPSN64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload19; MIPSN64-NEXT: jr $ra20; MIPSN64-NEXT: daddiu $sp, $sp, 1621;22; MIPSN32-LABEL: powi:23; MIPSN32: # %bb.0:24; MIPSN32-NEXT: addiu $sp, $sp, -1625; MIPSN32-NEXT: .cfi_def_cfa_offset 1626; MIPSN32-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill27; MIPSN32-NEXT: .cfi_offset 31, -828; MIPSN32-NEXT: jal __powidf229; MIPSN32-NEXT: sll $5, $5, 030; MIPSN32-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload31; MIPSN32-NEXT: jr $ra32; MIPSN32-NEXT: addiu $sp, $sp, 1633 %1 = tail call double @llvm.powi.f64.i32(double %value, i32 %power)34 ret double %135}36 37declare float @llvm.powi.f32.i32(float, i32)38 39define float @powfi(float %value, i32 %power) {40; MIPSN64-LABEL: powfi:41; MIPSN64: # %bb.0:42; MIPSN64-NEXT: daddiu $sp, $sp, -1643; MIPSN64-NEXT: .cfi_def_cfa_offset 1644; MIPSN64-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill45; MIPSN64-NEXT: .cfi_offset 31, -846; MIPSN64-NEXT: jal __powisf247; MIPSN64-NEXT: sll $5, $5, 048; MIPSN64-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload49; MIPSN64-NEXT: jr $ra50; MIPSN64-NEXT: daddiu $sp, $sp, 1651;52; MIPSN32-LABEL: powfi:53; MIPSN32: # %bb.0:54; MIPSN32-NEXT: addiu $sp, $sp, -1655; MIPSN32-NEXT: .cfi_def_cfa_offset 1656; MIPSN32-NEXT: sd $ra, 8($sp) # 8-byte Folded Spill57; MIPSN32-NEXT: .cfi_offset 31, -858; MIPSN32-NEXT: jal __powisf259; MIPSN32-NEXT: sll $5, $5, 060; MIPSN32-NEXT: ld $ra, 8($sp) # 8-byte Folded Reload61; MIPSN32-NEXT: jr $ra62; MIPSN32-NEXT: addiu $sp, $sp, 1663 %1 = tail call float @llvm.powi.f32.i32(float %value, i32 %power)64 ret float %165}66