# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s
--- |

  define float @test_fadd_float(float %arg1, float %arg2) {
    %ret = fadd float %arg1, %arg2
    ret float %ret
  }

  define double @test_fadd_double(double %arg1, double %arg2) {
    %ret = fadd double %arg1, %arg2
    ret double %ret
  }

...
---
name:            test_fadd_float
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:
body:             |
  bb.1 (%ir-block.0):
    liveins: $xmm0, $xmm1

    ; CHECK-LABEL: name: test_fadd_float
    ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0
    ; CHECK: [[TRUNC:%[0-9]+]]:_(s32) = G_TRUNC [[COPY]](s128)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1
    ; CHECK: [[TRUNC1:%[0-9]+]]:_(s32) = G_TRUNC [[COPY1]](s128)
    ; CHECK: [[FADD:%[0-9]+]]:_(s32) = G_FADD [[TRUNC]], [[TRUNC1]]
    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[FADD]](s32)
    ; CHECK: $xmm0 = COPY [[ANYEXT]](s128)
    ; CHECK: RET 0, implicit $xmm0
    %2:_(s128) = COPY $xmm0
    %0:_(s32) = G_TRUNC %2(s128)
    %3:_(s128) = COPY $xmm1
    %1:_(s32) = G_TRUNC %3(s128)
    %4:_(s32) = G_FADD %0, %1
    %5:_(s128) = G_ANYEXT %4(s32)
    $xmm0 = COPY %5(s128)
    RET 0, implicit $xmm0

...
---
name:            test_fadd_double
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:
body:             |
  bb.1 (%ir-block.0):
    liveins: $xmm0, $xmm1

    ; CHECK-LABEL: name: test_fadd_double
    ; CHECK: [[COPY:%[0-9]+]]:_(s128) = COPY $xmm0
    ; CHECK: [[TRUNC:%[0-9]+]]:_(s64) = G_TRUNC [[COPY]](s128)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s128) = COPY $xmm1
    ; CHECK: [[TRUNC1:%[0-9]+]]:_(s64) = G_TRUNC [[COPY1]](s128)
    ; CHECK: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[TRUNC]], [[TRUNC1]]
    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[FADD]](s64)
    ; CHECK: $xmm0 = COPY [[ANYEXT]](s128)
    ; CHECK: RET 0, implicit $xmm0
    %2:_(s128) = COPY $xmm0
    %0:_(s64) = G_TRUNC %2(s128)
    %3:_(s128) = COPY $xmm1
    %1:_(s64) = G_TRUNC %3(s128)
    %4:_(s64) = G_FADD %0, %1
    %5:_(s128) = G_ANYEXT %4(s64)
    $xmm0 = COPY %5(s128)
    RET 0, implicit $xmm0

...
