# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=i386-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s

--- |

  define i1 @ptrtoint_s1_p0(i64* %p) {
  entry:
    %0 = ptrtoint i64* %p to i1
    ret i1 %0
  }

  define i8 @ptrtoint_s8_p0(i64* %p) {
  entry:
    %0 = ptrtoint i64* %p to i8
    ret i8 %0
  }

  define i16 @ptrtoint_s16_p0(i64* %p) {
  entry:
    %0 = ptrtoint i64* %p to i16
    ret i16 %0
  }

  define i32 @ptrtoint_s32_p0(i64* %p) {
  entry:
    %0 = ptrtoint i64* %p to i32
    ret i32 %0
  }

...
---
name:            ptrtoint_s1_p0
alignment:       16
legalized:       true
regBankSelected: true
tracksRegLiveness: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
frameInfo:
  maxAlignment:    4
fixedStack:
  - { id: 0, size: 4, alignment: 16, stack-id: default, isImmutable: true }
body:             |
  bb.1.entry:
    ; CHECK-LABEL: name: ptrtoint_s1_p0
    ; CHECK: [[MOV32rm:%[0-9]+]]:gr32_abcd = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (invariant load 4 from %fixed-stack.0, align 16)
    ; CHECK: [[COPY:%[0-9]+]]:gr8 = COPY [[MOV32rm]].sub_8bit
    ; CHECK: $al = COPY [[COPY]]
    ; CHECK: RET 0, implicit $al
    %1:gpr(p0) = G_FRAME_INDEX %fixed-stack.0
    %0:gpr(p0) = G_LOAD %1(p0) :: (invariant load 4 from %fixed-stack.0, align 16)
    %2:gpr(s1) = G_PTRTOINT %0(p0)
    %3:gpr(s8) = G_ANYEXT %2(s1)
    $al = COPY %3(s8)
    RET 0, implicit $al

...
---
name:            ptrtoint_s8_p0
alignment:       16
legalized:       true
regBankSelected: true
tracksRegLiveness: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
frameInfo:
  maxAlignment:    4
fixedStack:
  - { id: 0, size: 4, alignment: 16, stack-id: default, isImmutable: true }
body:             |
  bb.1.entry:
    ; CHECK-LABEL: name: ptrtoint_s8_p0
    ; CHECK: [[MOV32rm:%[0-9]+]]:gr32_abcd = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (invariant load 4 from %fixed-stack.0, align 16)
    ; CHECK: [[COPY:%[0-9]+]]:gr8 = COPY [[MOV32rm]].sub_8bit
    ; CHECK: $al = COPY [[COPY]]
    ; CHECK: RET 0, implicit $al
    %1:gpr(p0) = G_FRAME_INDEX %fixed-stack.0
    %0:gpr(p0) = G_LOAD %1(p0) :: (invariant load 4 from %fixed-stack.0, align 16)
    %2:gpr(s8) = G_PTRTOINT %0(p0)
    $al = COPY %2(s8)
    RET 0, implicit $al

...
---
name:            ptrtoint_s16_p0
alignment:       16
legalized:       true
regBankSelected: true
tracksRegLiveness: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
frameInfo:
  maxAlignment:    4
fixedStack:
  - { id: 0, size: 4, alignment: 16, stack-id: default, isImmutable: true }
body:             |
  bb.1.entry:
    ; CHECK-LABEL: name: ptrtoint_s16_p0
    ; CHECK: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (invariant load 4 from %fixed-stack.0, align 16)
    ; CHECK: [[COPY:%[0-9]+]]:gr16 = COPY [[MOV32rm]].sub_16bit
    ; CHECK: $ax = COPY [[COPY]]
    ; CHECK: RET 0, implicit $ax
    %1:gpr(p0) = G_FRAME_INDEX %fixed-stack.0
    %0:gpr(p0) = G_LOAD %1(p0) :: (invariant load 4 from %fixed-stack.0, align 16)
    %2:gpr(s16) = G_PTRTOINT %0(p0)
    $ax = COPY %2(s16)
    RET 0, implicit $ax

...
---
name:            ptrtoint_s32_p0
alignment:       16
legalized:       true
regBankSelected: true
tracksRegLiveness: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
frameInfo:
  maxAlignment:    4
fixedStack:
  - { id: 0, size: 4, alignment: 16, stack-id: default, isImmutable: true }
body:             |
  bb.1.entry:
    ; CHECK-LABEL: name: ptrtoint_s32_p0
    ; CHECK: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (invariant load 4 from %fixed-stack.0, align 16)
    ; CHECK: $eax = COPY [[MOV32rm]]
    ; CHECK: RET 0, implicit $eax
    %1:gpr(p0) = G_FRAME_INDEX %fixed-stack.0
    %0:gpr(p0) = G_LOAD %1(p0) :: (invariant load 4 from %fixed-stack.0, align 16)
    %2:gpr(s32) = G_PTRTOINT %0(p0)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
