# 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_fsub_float(float %arg1, float %arg2) {
    %ret = fsub float %arg1, %arg2
    ret float %ret
  }

  define double @test_fsub_double(double %arg1, double %arg2) {
    %ret = fsub double %arg1, %arg2
    ret double %ret
  }

...
---
name:            test_fsub_float
alignment:       4
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_fsub_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: [[FSUB:%[0-9]+]]:_(s32) = G_FSUB [[TRUNC]], [[TRUNC1]]
    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[FSUB]](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_FSUB %0, %1
    %5:_(s128) = G_ANYEXT %4(s32)
    $xmm0 = COPY %5(s128)
    RET 0, implicit $xmm0

...
---
name:            test_fsub_double
alignment:       4
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_fsub_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: [[FSUB:%[0-9]+]]:_(s64) = G_FSUB [[TRUNC]], [[TRUNC1]]
    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s128) = G_ANYEXT [[FSUB]](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_FSUB %0, %1
    %5:_(s128) = G_ANYEXT %4(s64)
    $xmm0 = COPY %5(s128)
    RET 0, implicit $xmm0

...
