; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
; RUN: llc < %s                                   -mtriple=x86_64-- -verify-machineinstrs | FileCheck %s --check-prefixes X64,SDAG-X64
; RUN: llc < %s -global-isel -global-isel-abort=1 -mtriple=x86_64-- -verify-machineinstrs | FileCheck %s --check-prefixes X64,GISEL-X64
; RUN: llc < %s                                   -mattr=+avx512f -mtriple=x86_64-- -verify-machineinstrs | FileCheck %s --check-prefixes AVX512,SDAG-AVX512
; RUN: llc < %s -global-isel -global-isel-abort=1 -mattr=+avx512f -mtriple=x86_64-- -verify-machineinstrs | FileCheck %s --check-prefixes AVX512,GISEL-AVX512

define double @test_ui64_to_double(i64 %x) {
; SDAG-X64-LABEL: test_ui64_to_double:
; SDAG-X64:       # %bb.0: # %entry
; SDAG-X64-NEXT:    movq %rdi, %xmm1
; SDAG-X64-NEXT:    punpckldq {{.*#+}} xmm1 = xmm1[0],mem[0],xmm1[1],mem[1]
; SDAG-X64-NEXT:    subpd {{\.?LCPI[0-9]+_[0-9]+}}(%rip), %xmm1
; SDAG-X64-NEXT:    movapd %xmm1, %xmm0
; SDAG-X64-NEXT:    unpckhpd {{.*#+}} xmm0 = xmm0[1],xmm1[1]
; SDAG-X64-NEXT:    addsd %xmm1, %xmm0
; SDAG-X64-NEXT:    retq
;
; GISEL-X64-LABEL: test_ui64_to_double:
; GISEL-X64:       # %bb.0: # %entry
; GISEL-X64-NEXT:    movabsq $4841369599423283200, %rax # imm = 0x4330000000000000
; GISEL-X64-NEXT:    movabsq $4985484787499139072, %rcx # imm = 0x4530000000000000
; GISEL-X64-NEXT:    movsd {{.*#+}} xmm0 = [1.9342813118337666E+25,0.0E+0]
; GISEL-X64-NEXT:    movl $4294967295, %edx # imm = 0xFFFFFFFF
; GISEL-X64-NEXT:    andq %rdi, %rdx
; GISEL-X64-NEXT:    orq %rax, %rdx
; GISEL-X64-NEXT:    shrq $32, %rdi
; GISEL-X64-NEXT:    orq %rdi, %rcx
; GISEL-X64-NEXT:    movq %rcx, %xmm1
; GISEL-X64-NEXT:    subsd %xmm0, %xmm1
; GISEL-X64-NEXT:    movq %rdx, %xmm0
; GISEL-X64-NEXT:    addsd %xmm1, %xmm0
; GISEL-X64-NEXT:    retq
;
; AVX512-LABEL: test_ui64_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtusi2sd %rdi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = uitofp i64 %x to double
  ret double %conv
}

define double @test_ui32_to_double(i32 %x) {
; X64-LABEL: test_ui32_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    cvtsi2sd %rax, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_ui32_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtusi2sd %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = uitofp i32 %x to double
  ret double %conv
}

define double @test_ui16_to_double(i16 zeroext %x) {
; X64-LABEL: test_ui16_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2sd %edi, %xmm0
; X64-NEXT:    retq
;
; SDAG-AVX512-LABEL: test_ui16_to_double:
; SDAG-AVX512:       # %bb.0: # %entry
; SDAG-AVX512-NEXT:    vcvtsi2sd %edi, %xmm15, %xmm0
; SDAG-AVX512-NEXT:    retq
;
; GISEL-AVX512-LABEL: test_ui16_to_double:
; GISEL-AVX512:       # %bb.0: # %entry
; GISEL-AVX512-NEXT:    vcvtusi2sd %edi, %xmm15, %xmm0
; GISEL-AVX512-NEXT:    retq
entry:
  %conv = uitofp i16 %x to double
  ret double %conv
}

define double @test_ui8_to_double(i8 zeroext %x) {
; X64-LABEL: test_ui8_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2sd %edi, %xmm0
; X64-NEXT:    retq
;
; SDAG-AVX512-LABEL: test_ui8_to_double:
; SDAG-AVX512:       # %bb.0: # %entry
; SDAG-AVX512-NEXT:    vcvtsi2sd %edi, %xmm15, %xmm0
; SDAG-AVX512-NEXT:    retq
;
; GISEL-AVX512-LABEL: test_ui8_to_double:
; GISEL-AVX512:       # %bb.0: # %entry
; GISEL-AVX512-NEXT:    vcvtusi2sd %edi, %xmm15, %xmm0
; GISEL-AVX512-NEXT:    retq
entry:
  %conv = uitofp i8 %x to double
  ret double %conv
}

define float @test_ui64_to_float(i64 %x) {
; SDAG-X64-LABEL: test_ui64_to_float:
; SDAG-X64:       # %bb.0: # %entry
; SDAG-X64-NEXT:    testq %rdi, %rdi
; SDAG-X64-NEXT:    js .LBB4_1
; SDAG-X64-NEXT:  # %bb.2: # %entry
; SDAG-X64-NEXT:    cvtsi2ss %rdi, %xmm0
; SDAG-X64-NEXT:    retq
; SDAG-X64-NEXT:  .LBB4_1:
; SDAG-X64-NEXT:    movq %rdi, %rax
; SDAG-X64-NEXT:    shrq %rax
; SDAG-X64-NEXT:    andl $1, %edi
; SDAG-X64-NEXT:    orq %rax, %rdi
; SDAG-X64-NEXT:    cvtsi2ss %rdi, %xmm0
; SDAG-X64-NEXT:    addss %xmm0, %xmm0
; SDAG-X64-NEXT:    retq
;
; GISEL-X64-LABEL: test_ui64_to_float:
; GISEL-X64:       # %bb.0: # %entry
; GISEL-X64-NEXT:    cvtsi2ss %rdi, %xmm0
; GISEL-X64-NEXT:    movq %rdi, %rax
; GISEL-X64-NEXT:    shrq %rax
; GISEL-X64-NEXT:    movq %rdi, %rcx
; GISEL-X64-NEXT:    andq $1, %rcx
; GISEL-X64-NEXT:    orq %rax, %rcx
; GISEL-X64-NEXT:    cvtsi2ss %rcx, %xmm1
; GISEL-X64-NEXT:    addss %xmm1, %xmm1
; GISEL-X64-NEXT:    xorl %eax, %eax
; GISEL-X64-NEXT:    cmpq $0, %rdi
; GISEL-X64-NEXT:    setl %al
; GISEL-X64-NEXT:    andl $1, %eax
; GISEL-X64-NEXT:    movd %xmm1, %eax
; GISEL-X64-NEXT:    movd %xmm0, %ecx
; GISEL-X64-NEXT:    cmovnel %eax, %ecx
; GISEL-X64-NEXT:    movd %ecx, %xmm0
; GISEL-X64-NEXT:    retq
;
; AVX512-LABEL: test_ui64_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtusi2ss %rdi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = uitofp i64 %x to float
  ret float %conv
}

define float @test_ui32_to_float(i32 %x) {
; X64-LABEL: test_ui32_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    movl %edi, %eax
; X64-NEXT:    cvtsi2ss %rax, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_ui32_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtusi2ss %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = uitofp i32 %x to float
  ret float %conv
}

define float @test_ui16_to_float(i16 zeroext %x) {
; X64-LABEL: test_ui16_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2ss %edi, %xmm0
; X64-NEXT:    retq
;
; SDAG-AVX512-LABEL: test_ui16_to_float:
; SDAG-AVX512:       # %bb.0: # %entry
; SDAG-AVX512-NEXT:    vcvtsi2ss %edi, %xmm15, %xmm0
; SDAG-AVX512-NEXT:    retq
;
; GISEL-AVX512-LABEL: test_ui16_to_float:
; GISEL-AVX512:       # %bb.0: # %entry
; GISEL-AVX512-NEXT:    vcvtusi2ss %edi, %xmm15, %xmm0
; GISEL-AVX512-NEXT:    retq
entry:
  %conv = uitofp i16 %x to float
  ret float %conv
}

define float @test_ui8_to_float(i8 zeroext %x) {
; X64-LABEL: test_ui8_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2ss %edi, %xmm0
; X64-NEXT:    retq
;
; SDAG-AVX512-LABEL: test_ui8_to_float:
; SDAG-AVX512:       # %bb.0: # %entry
; SDAG-AVX512-NEXT:    vcvtsi2ss %edi, %xmm15, %xmm0
; SDAG-AVX512-NEXT:    retq
;
; GISEL-AVX512-LABEL: test_ui8_to_float:
; GISEL-AVX512:       # %bb.0: # %entry
; GISEL-AVX512-NEXT:    vcvtusi2ss %edi, %xmm15, %xmm0
; GISEL-AVX512-NEXT:    retq
entry:
  %conv = uitofp i8 %x to float
  ret float %conv
}

define double @test_si64_to_double(i64 %x) {
; X64-LABEL: test_si64_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2sd %rdi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si64_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2sd %rdi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i64 %x to double
  ret double %conv
}

define double @test_si32_to_double(i32 %x) {
; X64-LABEL: test_si32_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2sd %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si32_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2sd %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i32 %x to double
  ret double %conv
}

define double @test_si16_to_double(i16 signext %x) {
; X64-LABEL: test_si16_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2sd %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si16_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2sd %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i16 %x to double
  ret double %conv
}

define double @test_si8_to_double(i8 signext %x) {
; X64-LABEL: test_si8_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2sd %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si8_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2sd %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i8 %x to double
  ret double %conv
}

define double @test_si31_to_double(i31 %x) {
; X64-LABEL: test_si31_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    addl %edi, %edi
; X64-NEXT:    sarl %edi
; X64-NEXT:    cvtsi2sd %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si31_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    addl %edi, %edi
; AVX512-NEXT:    sarl %edi
; AVX512-NEXT:    vcvtsi2sd %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i31 %x to double
  ret double %conv
}

define double @test_si33_to_double(i33 %x) {
; X64-LABEL: test_si33_to_double:
; X64:       # %bb.0: # %entry
; X64-NEXT:    shlq $31, %rdi
; X64-NEXT:    sarq $31, %rdi
; X64-NEXT:    cvtsi2sd %rdi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si33_to_double:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    shlq $31, %rdi
; AVX512-NEXT:    sarq $31, %rdi
; AVX512-NEXT:    vcvtsi2sd %rdi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i33 %x to double
  ret double %conv
}

define float @test_si64_to_float(i64 %x) {
; X64-LABEL: test_si64_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2ss %rdi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si64_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2ss %rdi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i64 %x to float
  ret float %conv
}

define float @test_si32_to_float(i32 %x) {
; X64-LABEL: test_si32_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2ss %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si32_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2ss %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i32 %x to float
  ret float %conv
}

define float @test_si16_to_float(i16 signext %x) {
; X64-LABEL: test_si16_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2ss %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si16_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2ss %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i16 %x to float
  ret float %conv
}

define float @test_si8_to_float(i8 signext %x) {
; X64-LABEL: test_si8_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    cvtsi2ss %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si8_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    vcvtsi2ss %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i8 %x to float
  ret float %conv
}

define float @test_si31_to_float(i31 %x) {
; X64-LABEL: test_si31_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    addl %edi, %edi
; X64-NEXT:    sarl %edi
; X64-NEXT:    cvtsi2ss %edi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si31_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    addl %edi, %edi
; AVX512-NEXT:    sarl %edi
; AVX512-NEXT:    vcvtsi2ss %edi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i31 %x to float
  ret float %conv
}

define float @test_si33_to_float(i33 %x) {
; X64-LABEL: test_si33_to_float:
; X64:       # %bb.0: # %entry
; X64-NEXT:    shlq $31, %rdi
; X64-NEXT:    sarq $31, %rdi
; X64-NEXT:    cvtsi2ss %rdi, %xmm0
; X64-NEXT:    retq
;
; AVX512-LABEL: test_si33_to_float:
; AVX512:       # %bb.0: # %entry
; AVX512-NEXT:    shlq $31, %rdi
; AVX512-NEXT:    sarq $31, %rdi
; AVX512-NEXT:    vcvtsi2ss %rdi, %xmm15, %xmm0
; AVX512-NEXT:    retq
entry:
  %conv = sitofp i33 %x to float
  ret float %conv
}
