# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=i386-linux-gnu   -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=X32
# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=X64
--- |
  define void @trunc_check() {
    ret void
  }

...
---
name:            trunc_check
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.1 (%ir-block.0):
    ; X32-LABEL: name: trunc_check
    ; X32: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF
    ; X32: [[DEF1:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF
    ; X32: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 1
    ; X32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[DEF]](s32)
    ; X32: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]
    ; X32: G_STORE [[AND]](s8), [[DEF1]](p0) :: (store 1)
    ; X32: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[DEF]](s32)
    ; X32: G_STORE [[TRUNC1]](s8), [[DEF1]](p0) :: (store 8)
    ; X32: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[DEF]](s32)
    ; X32: G_STORE [[TRUNC2]](s16), [[DEF1]](p0) :: (store 16)
    ; X32: RET 0
    ; X64-LABEL: name: trunc_check
    ; X64: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF
    ; X64: [[DEF1:%[0-9]+]]:_(p0) = G_IMPLICIT_DEF
    ; X64: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 1
    ; X64: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[DEF]](s32)
    ; X64: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]
    ; X64: G_STORE [[AND]](s8), [[DEF1]](p0) :: (store 1)
    ; X64: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[DEF]](s32)
    ; X64: G_STORE [[TRUNC1]](s8), [[DEF1]](p0) :: (store 8)
    ; X64: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[DEF]](s32)
    ; X64: G_STORE [[TRUNC2]](s16), [[DEF1]](p0) :: (store 16)
    ; X64: RET 0
    %0(s32) = IMPLICIT_DEF
    %1(s1)  = G_TRUNC %0(s32)
    %4:_(p0) = G_IMPLICIT_DEF
    G_STORE %1, %4 :: (store 1)

    %2(s8)  = G_TRUNC %0(s32)
    G_STORE %2, %4 :: (store 8)

    %3(s16) = G_TRUNC %0(s32)
    G_STORE %3, %4 :: (store 16)
    RET 0

...
