# 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_constant() {
  entry:
    ret void
  }
  define void @test_fconstant() {
  entry:
    ret void
  }
  @var = global i8 0
  define i8* @test_global() { ret i8* undef }
...

---
name:            test_constant
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
  - { id: 5, class: _ }
body: |
  bb.0.entry:

    ; CHECK-LABEL: name: test_constant
    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY [[C]](s32)
    ; CHECK: $w0 = COPY [[COPY]](s32)
    ; CHECK: [[C1:%[0-9]+]]:_(s32) = G_CONSTANT i32 42
    ; CHECK: [[COPY1:%[0-9]+]]:_(s32) = COPY [[C1]](s32)
    ; CHECK: $w0 = COPY [[COPY1]](s32)
    ; CHECK: [[C2:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
    ; CHECK: [[COPY2:%[0-9]+]]:_(s32) = COPY [[C2]](s32)
    ; CHECK: $w0 = COPY [[COPY2]](s32)
    ; CHECK: [[C3:%[0-9]+]]:_(s32) = G_CONSTANT i32 -1
    ; CHECK: $w0 = COPY [[C3]](s32)
    ; CHECK: [[C4:%[0-9]+]]:_(s64) = G_CONSTANT i64 1
    ; CHECK: $x0 = COPY [[C4]](s64)
    ; CHECK: [[C5:%[0-9]+]]:_(s64) = G_CONSTANT i64 0
    ; CHECK: $x0 = COPY [[C5]](s64)
    %0(s1) = G_CONSTANT i1 0
    %6:_(s32) = G_ANYEXT %0
    $w0 = COPY %6
    %1(s8) = G_CONSTANT i8 42
    %7:_(s32) = G_ANYEXT %1
    $w0 = COPY %7
    %2(s16) = G_CONSTANT i16 65535
    %8:_(s32) = G_ANYEXT %2
    $w0 = COPY %8
    %3(s32) = G_CONSTANT i32 -1
    $w0 = COPY %3
    %4(s64) = G_CONSTANT i64 1
    $x0 = COPY %4
    %5(s64) = G_CONSTANT i64 0
    $x0 = COPY %5
...

---
name:            test_fconstant
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body: |
  bb.0.entry:

    ; CHECK-LABEL: name: test_fconstant
    ; CHECK: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 1.000000e+00
    ; CHECK: $w0 = COPY [[C]](s32)
    ; CHECK: [[C1:%[0-9]+]]:_(s64) = G_FCONSTANT double 2.000000e+00
    ; CHECK: $x0 = COPY [[C1]](s64)
    ; CHECK: [[C2:%[0-9]+]]:_(s32) = G_FCONSTANT float 0.000000e+00
    ; CHECK: [[FPTRUNC:%[0-9]+]]:_(s16) = G_FPTRUNC [[C2]](s32)
    ; CHECK: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FPTRUNC]](s16)
    ; CHECK: $w0 = COPY [[ANYEXT]](s32)
    %0(s32) = G_FCONSTANT float 1.0
    $w0 = COPY %0
    %1(s64) = G_FCONSTANT double 2.0
    $x0 = COPY %1
    %2(s16) = G_FCONSTANT half 0.0
    %3:_(s32) = G_ANYEXT %2
    $w0 = COPY %3
...

---
name:            test_global
registers:
  - { id: 0, class: _ }
body: |
  bb.0:

    ; CHECK-LABEL: name: test_global
    ; CHECK: [[GV:%[0-9]+]]:_(p0) = G_GLOBAL_VALUE @var
    ; CHECK: [[PTRTOINT:%[0-9]+]]:_(s64) = G_PTRTOINT [[GV]](p0)
    ; CHECK: $x0 = COPY [[PTRTOINT]](s64)
    %0(p0) = G_GLOBAL_VALUE @var
    %1:_(s64) = G_PTRTOINT %0
    $x0 = COPY %1
...
