# 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:       4
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: 0, 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:       4
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: 0, 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:       4
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: 0, 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:       4
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: 0, 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

...
