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

--- |
  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
  target triple = "aarch64--"

  define void @test_fptosi_s32_s32() { ret void }
  define void @test_fptoui_s32_s32() { ret void }
  define void @test_fptosi_s32_s64() { ret void }
  define void @test_fptoui_s32_s64() { ret void }

  define void @test_fptosi_s64_s32() { ret void }
  define void @test_fptoui_s64_s32() { ret void }
  define void @test_fptosi_s64_s64() { ret void }
  define void @test_fptoui_s64_s64() { ret void }

  define void @test_fptosi_s1_s32() { ret void }
  define void @test_fptoui_s1_s32() { ret void }

  define void @test_fptosi_s8_s64() { ret void }
  define void @test_fptoui_s8_s64() { ret void }

  define void @test_fptosi_s16_s32() { ret void }
  define void @test_fptoui_s16_s32() { ret void }

  define void @test_fptoui_v4s32() { ret void }
  define void @test_fptosi_v4s32() { ret void }
...

---
name:            test_fptosi_s32_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptosi_s32_s32
    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[DEF]](s32)
    ; CHECK: $w0 = COPY [[FPTOSI]](s32)
    %0:_(s32) = G_IMPLICIT_DEF
    %1:_(s32) = G_FPTOSI %0
    $w0 = COPY %1
...

---
name:            test_fptoui_s32_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptoui_s32_s32
    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[DEF]](s32)
    ; CHECK: $w0 = COPY [[FPTOUI]](s32)
    %0:_(s32) = G_IMPLICIT_DEF
    %1:_(s32) = G_FPTOUI %0
    $w0 = COPY %1
...

---
name:            test_fptosi_s32_s64
body: |
  bb.0:
    liveins: $x0
    ; CHECK-LABEL: name: test_fptosi_s32_s64
    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = G_IMPLICIT_DEF
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[DEF]](s32)
    ; CHECK: $w0 = COPY [[FPTOSI]](s32)
    %0:_(s32) = G_IMPLICIT_DEF
    %1:_(s32) = G_FPTOSI %0
    $w0 = COPY %1
...

---
name:            test_fptoui_s32_s64
body: |
  bb.0:
    liveins: $x0
    ; CHECK-LABEL: name: test_fptoui_s32_s64
    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
    ; CHECK: $w0 = COPY [[FPTOUI]](s32)
    %0:_(s64) = COPY $x0
    %1:_(s32) = G_FPTOUI %0
    $w0 = COPY %1
...

---
name:            test_fptosi_s64_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptosi_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s32)
    ; CHECK: $x0 = COPY [[FPTOSI]](s64)
    %0:_(s32) = COPY $w0
    %1:_(s64) = G_FPTOSI %0
    $x0 = COPY %1
...

---
name:            test_fptoui_s64_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptoui_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s32)
    ; CHECK: $x0 = COPY [[FPTOUI]](s64)
    %0:_(s32) = COPY $w0
    %1:_(s64) = G_FPTOUI %0
    $x0 = COPY %1
...

---
name:            test_fptosi_s64_s64
body: |
  bb.0:
    liveins: $x0
    ; CHECK-LABEL: name: test_fptosi_s64_s64
    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s64) = G_FPTOSI [[COPY]](s64)
    ; CHECK: $x0 = COPY [[FPTOSI]](s64)
    %0:_(s64) = COPY $x0
    %1:_(s64) = G_FPTOSI %0
    $x0 = COPY %1
...

---
name:            test_fptoui_s64_s64
body: |
  bb.0:
    liveins: $x0
    ; CHECK-LABEL: name: test_fptoui_s64_s64
    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s64) = G_FPTOUI [[COPY]](s64)
    ; CHECK: $x0 = COPY [[FPTOUI]](s64)
    %0:_(s64) = COPY $x0
    %1:_(s64) = G_FPTOUI %0
    $x0 = COPY %1
...



---
name:            test_fptosi_s1_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptosi_s1_s32
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s64) = G_ANYEXT [[FPTOSI]](s32)
    ; CHECK: $x0 = COPY [[ANYEXT]](s64)
    %0:_(s32) = COPY $w0
    %1:_(s1) = G_FPTOSI %0
    %2:_(s64) = G_ANYEXT %1
    $x0 = COPY %2
...

---
name:            test_fptoui_s1_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptoui_s1_s32
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOUI]](s32)
    ; CHECK: $w0 = COPY [[COPY1]](s32)
    %0:_(s32) = COPY $w0
    %1:_(s1) = G_FPTOUI %0
    %2:_(s32) = G_ANYEXT %1
    $w0 = COPY %2
...

---
name:            test_fptosi_s8_s64
body: |
  bb.0:
    liveins: $x0
    ; CHECK-LABEL: name: test_fptosi_s8_s64
    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s64)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOSI]](s32)
    ; CHECK: $w0 = COPY [[COPY1]](s32)
    %0:_(s64) = COPY $x0
    %1:_(s8) = G_FPTOSI %0
    %2:_(s32) = G_ANYEXT %1
    $w0 = COPY %2
...

---
name:            test_fptoui_s8_s64
body: |
  bb.0:
    liveins: $x0
    ; CHECK-LABEL: name: test_fptoui_s8_s64
    ; CHECK: [[COPY:%[0-9]+]]:_(s64) = COPY $x0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s64)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOUI]](s32)
    ; CHECK: $w0 = COPY [[COPY1]](s32)
    %0:_(s64) = COPY $x0
    %1:_(s8) = G_FPTOUI %0
    %2:_(s32) = G_ANYEXT %1
    $w0 = COPY %2
...

---
name:            test_fptosi_s16_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptosi_s16_s32
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(s32) = G_FPTOSI [[COPY]](s32)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOSI]](s32)
    ; CHECK: $w0 = COPY [[COPY1]](s32)
    %0:_(s32) = COPY $w0
    %1:_(s16) = G_FPTOSI %0
    %2:_(s32) = G_ANYEXT %1
    $w0 = COPY %2
...

---
name:            test_fptoui_s16_s32
body: |
  bb.0:
    liveins: $w0
    ; CHECK-LABEL: name: test_fptoui_s16_s32
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $w0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(s32) = G_FPTOUI [[COPY]](s32)
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[FPTOUI]](s32)
    ; CHECK: $w0 = COPY [[COPY1]](s32)
    %0:_(s32) = COPY $w0
    %1:_(s16) = G_FPTOUI %0
    %2:_(s32) = G_ANYEXT %1
    $w0 = COPY %2
...

---
name:            test_fptoui_v4s32
body: |
  bb.0:
    liveins: $q0
    ; CHECK-LABEL: name: test_fptoui_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
    ; CHECK: [[FPTOUI:%[0-9]+]]:_(<4 x s32>) = G_FPTOUI [[COPY]](<4 x s32>)
    ; CHECK: $q0 = COPY [[FPTOUI]](<4 x s32>)
    %0:_(<4 x s32>) = COPY $q0
    %1:_(<4 x s32>) = G_FPTOUI %0
    $q0 = COPY %1
...

---
name:            test_fptosi_v4s32
body: |
  bb.0:
    liveins: $q0
    ; CHECK-LABEL: name: test_fptosi_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:_(<4 x s32>) = COPY $q0
    ; CHECK: [[FPTOSI:%[0-9]+]]:_(<4 x s32>) = G_FPTOSI [[COPY]](<4 x s32>)
    ; CHECK: $q0 = COPY [[FPTOSI]](<4 x s32>)
    %0:_(<4 x s32>) = COPY $q0
    %1:_(<4 x s32>) = G_FPTOSI %0
    $q0 = COPY %1
...
