|  | ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py | 
|  | ; RUN: llc < %s -mtriple=mips64el-unknown-linux-gnu -target-abi n64 | FileCheck %s --check-prefix=MIPSN64 | 
|  | ; RUN: llc < %s -mtriple=mips64el-unknown-linux-gnu -target-abi n32 | FileCheck %s --check-prefix=MIPSN32 | 
|  |  | 
|  | ; Test that powi has its integer argument sign extended on mips64. | 
|  |  | 
|  | declare double @llvm.powi.f64.i32(double, i32) | 
|  |  | 
|  | define double @powi(double %value, i32 %power) { | 
|  | ; MIPSN64-LABEL: powi: | 
|  | ; MIPSN64:       # %bb.0: | 
|  | ; MIPSN64-NEXT:    daddiu $sp, $sp, -16 | 
|  | ; MIPSN64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; MIPSN64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill | 
|  | ; MIPSN64-NEXT:    .cfi_offset 31, -8 | 
|  | ; MIPSN64-NEXT:    jal __powidf2 | 
|  | ; MIPSN64-NEXT:    sll $5, $5, 0 | 
|  | ; MIPSN64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload | 
|  | ; MIPSN64-NEXT:    jr $ra | 
|  | ; MIPSN64-NEXT:    daddiu $sp, $sp, 16 | 
|  | ; | 
|  | ; MIPSN32-LABEL: powi: | 
|  | ; MIPSN32:       # %bb.0: | 
|  | ; MIPSN32-NEXT:    addiu $sp, $sp, -16 | 
|  | ; MIPSN32-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; MIPSN32-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill | 
|  | ; MIPSN32-NEXT:    .cfi_offset 31, -8 | 
|  | ; MIPSN32-NEXT:    jal __powidf2 | 
|  | ; MIPSN32-NEXT:    sll $5, $5, 0 | 
|  | ; MIPSN32-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload | 
|  | ; MIPSN32-NEXT:    jr $ra | 
|  | ; MIPSN32-NEXT:    addiu $sp, $sp, 16 | 
|  | %1 = tail call double @llvm.powi.f64.i32(double %value, i32 %power) | 
|  | ret double %1 | 
|  | } | 
|  |  | 
|  | declare float @llvm.powi.f32.i32(float, i32) | 
|  |  | 
|  | define float @powfi(float %value, i32 %power) { | 
|  | ; MIPSN64-LABEL: powfi: | 
|  | ; MIPSN64:       # %bb.0: | 
|  | ; MIPSN64-NEXT:    daddiu $sp, $sp, -16 | 
|  | ; MIPSN64-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; MIPSN64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill | 
|  | ; MIPSN64-NEXT:    .cfi_offset 31, -8 | 
|  | ; MIPSN64-NEXT:    jal __powisf2 | 
|  | ; MIPSN64-NEXT:    sll $5, $5, 0 | 
|  | ; MIPSN64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload | 
|  | ; MIPSN64-NEXT:    jr $ra | 
|  | ; MIPSN64-NEXT:    daddiu $sp, $sp, 16 | 
|  | ; | 
|  | ; MIPSN32-LABEL: powfi: | 
|  | ; MIPSN32:       # %bb.0: | 
|  | ; MIPSN32-NEXT:    addiu $sp, $sp, -16 | 
|  | ; MIPSN32-NEXT:    .cfi_def_cfa_offset 16 | 
|  | ; MIPSN32-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill | 
|  | ; MIPSN32-NEXT:    .cfi_offset 31, -8 | 
|  | ; MIPSN32-NEXT:    jal __powisf2 | 
|  | ; MIPSN32-NEXT:    sll $5, $5, 0 | 
|  | ; MIPSN32-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload | 
|  | ; MIPSN32-NEXT:    jr $ra | 
|  | ; MIPSN32-NEXT:    addiu $sp, $sp, 16 | 
|  | %1 = tail call float @llvm.powi.f32.i32(float %value, i32 %power) | 
|  | ret float %1 | 
|  | } |