# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
#RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse2                       -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK64 --check-prefix=CHECK_SMALL --check-prefix=CHECK_SMALL64 --check-prefix=CHECK_NOPIC64
#RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse2 -code-model=large     -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK64 --check-prefix=CHECK_LARGE --check-prefix=CHECK_LARGE64
#RUN: llc -mtriple=i386-linux-gnu   -mattr=+sse2                       -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK32 --check-prefix=CHECK_SMALL --check-prefix=CHECK_SMALL32
#RUN: llc -mtriple=i386-linux-gnu   -mattr=+sse2 -code-model=large     -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK32 --check-prefix=CHECK_LARGE --check-prefix=CHECK_LARGE32
#RUN: llc -mtriple=x86_64-linux-gnu -mattr=+sse2 -relocation-model=pic -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK64 --check-prefix=CHECK_SMALL --check-prefix=CHECK_SMALL64 --check-prefix=CHECK_PIC64

--- |
  define float @test_float() {
  entry:
    ret float 5.500000e+00
  }

  define double @test_double() {
  entry:
    ret double 5.500000e+00
  }
---
name:            test_float
#
alignment:       4
legalized:       true
regBankSelected: true
tracksRegLiveness: true
registers:
  - { id: 0, class: vecr, preferred-register: '' }
#
#
body:             |
  bb.1.entry:
    ; CHECK_NOPIC64-LABEL: name: test_float
    ; CHECK_NOPIC64: [[MOVSSrm:%[0-9]+]]:fr32 = MOVSSrm $rip, 1, $noreg, %const.0, $noreg
    ; CHECK_NOPIC64: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSSrm]]
    ; CHECK_NOPIC64: $xmm0 = COPY [[COPY]]
    ; CHECK_NOPIC64: RET 0, implicit $xmm0
    ; CHECK_LARGE64-LABEL: name: test_float
    ; CHECK_LARGE64: [[MOV64ri:%[0-9]+]]:gr64 = MOV64ri %const.0
    ; CHECK_LARGE64: [[MOVSSrm:%[0-9]+]]:fr32 = MOVSSrm [[MOV64ri]], 1, $noreg, 0, $noreg :: (load 8 from constant-pool, align 32)
    ; CHECK_LARGE64: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSSrm]]
    ; CHECK_LARGE64: $xmm0 = COPY [[COPY]]
    ; CHECK_LARGE64: RET 0, implicit $xmm0
    ; CHECK_SMALL32-LABEL: name: test_float
    ; CHECK_SMALL32: [[MOVSSrm:%[0-9]+]]:fr32 = MOVSSrm $noreg, 1, $noreg, %const.0, $noreg
    ; CHECK_SMALL32: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSSrm]]
    ; CHECK_SMALL32: $xmm0 = COPY [[COPY]]
    ; CHECK_SMALL32: RET 0, implicit $xmm0
    ; CHECK_LARGE32-LABEL: name: test_float
    ; CHECK_LARGE32: [[MOVSSrm:%[0-9]+]]:fr32 = MOVSSrm $noreg, 1, $noreg, %const.0, $noreg
    ; CHECK_LARGE32: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSSrm]]
    ; CHECK_LARGE32: $xmm0 = COPY [[COPY]]
    ; CHECK_LARGE32: RET 0, implicit $xmm0
    ; CHECK_PIC64-LABEL: name: test_float
    ; CHECK_PIC64: [[MOVSSrm:%[0-9]+]]:fr32 = MOVSSrm $rip, 1, $noreg, %const.0, $noreg
    ; CHECK_PIC64: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSSrm]]
    ; CHECK_PIC64: $xmm0 = COPY [[COPY]]
    ; CHECK_PIC64: RET 0, implicit $xmm0
    %0:vecr(s32) = G_FCONSTANT float 5.500000e+00
    %1:vecr(s128) = G_ANYEXT %0(s32)
    $xmm0 = COPY %1(s128)
    RET 0, implicit $xmm0

...
---
name:            test_double
#
alignment:       4
legalized:       true
regBankSelected: true
tracksRegLiveness: true
#
#
registers:
  - { id: 0, class: vecr, preferred-register: '' }
#
#
body:             |
  bb.1.entry:
    ; CHECK_NOPIC64-LABEL: name: test_double
    ; CHECK_NOPIC64: [[MOVSDrm:%[0-9]+]]:fr64 = MOVSDrm $rip, 1, $noreg, %const.0, $noreg
    ; CHECK_NOPIC64: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSDrm]]
    ; CHECK_NOPIC64: $xmm0 = COPY [[COPY]]
    ; CHECK_NOPIC64: RET 0, implicit $xmm0
    ; CHECK_LARGE64-LABEL: name: test_double
    ; CHECK_LARGE64: [[MOV64ri:%[0-9]+]]:gr64 = MOV64ri %const.0
    ; CHECK_LARGE64: [[MOVSDrm:%[0-9]+]]:fr64 = MOVSDrm [[MOV64ri]], 1, $noreg, 0, $noreg :: (load 8 from constant-pool, align 64)
    ; CHECK_LARGE64: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSDrm]]
    ; CHECK_LARGE64: $xmm0 = COPY [[COPY]]
    ; CHECK_LARGE64: RET 0, implicit $xmm0
    ; CHECK_SMALL32-LABEL: name: test_double
    ; CHECK_SMALL32: [[MOVSDrm:%[0-9]+]]:fr64 = MOVSDrm $noreg, 1, $noreg, %const.0, $noreg
    ; CHECK_SMALL32: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSDrm]]
    ; CHECK_SMALL32: $xmm0 = COPY [[COPY]]
    ; CHECK_SMALL32: RET 0, implicit $xmm0
    ; CHECK_LARGE32-LABEL: name: test_double
    ; CHECK_LARGE32: [[MOVSDrm:%[0-9]+]]:fr64 = MOVSDrm $noreg, 1, $noreg, %const.0, $noreg
    ; CHECK_LARGE32: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSDrm]]
    ; CHECK_LARGE32: $xmm0 = COPY [[COPY]]
    ; CHECK_LARGE32: RET 0, implicit $xmm0
    ; CHECK_PIC64-LABEL: name: test_double
    ; CHECK_PIC64: [[MOVSDrm:%[0-9]+]]:fr64 = MOVSDrm $rip, 1, $noreg, %const.0, $noreg
    ; CHECK_PIC64: [[COPY:%[0-9]+]]:vr128 = COPY [[MOVSDrm]]
    ; CHECK_PIC64: $xmm0 = COPY [[COPY]]
    ; CHECK_PIC64: RET 0, implicit $xmm0
    %0:vecr(s64) = G_FCONSTANT double 5.500000e+00
    %1:vecr(s128) = G_ANYEXT %0(s64)
    $xmm0 = COPY %1(s128)
    RET 0, implicit $xmm0

...
