[llvm] a1710eb - [SystemZ][NFC] Opaque pointer migration.

Kai Nacke via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 11 14:10:23 PDT 2022


Author: Kai Nacke
Date: 2022-10-11T21:09:43Z
New Revision: a1710eb3cd5823c5d14899112ca3086acbdbe9cb

URL: https://github.com/llvm/llvm-project/commit/a1710eb3cd5823c5d14899112ca3086acbdbe9cb
DIFF: https://github.com/llvm/llvm-project/commit/a1710eb3cd5823c5d14899112ca3086acbdbe9cb.diff

LOG: [SystemZ][NFC] Opaque pointer migration.

The LIT test cases were migrated with the script provided by
Nikita Popov.

No manual changes were made. Committed without review since
no functional changes, after consultation with uweigand.

Added: 
    

Modified: 
    llvm/test/CodeGen/SystemZ/DAGCombine_trunc_extract.ll
    llvm/test/CodeGen/SystemZ/DAGCombiner_isAlias.ll
    llvm/test/CodeGen/SystemZ/Large/branch-01.ll
    llvm/test/CodeGen/SystemZ/addr-01.ll
    llvm/test/CodeGen/SystemZ/addr-02.ll
    llvm/test/CodeGen/SystemZ/addr-03.ll
    llvm/test/CodeGen/SystemZ/alias-01.ll
    llvm/test/CodeGen/SystemZ/alloca-01.ll
    llvm/test/CodeGen/SystemZ/alloca-02.ll
    llvm/test/CodeGen/SystemZ/alloca-03.ll
    llvm/test/CodeGen/SystemZ/alloca-04.ll
    llvm/test/CodeGen/SystemZ/and-01.ll
    llvm/test/CodeGen/SystemZ/and-03.ll
    llvm/test/CodeGen/SystemZ/and-05.ll
    llvm/test/CodeGen/SystemZ/and-06.ll
    llvm/test/CodeGen/SystemZ/and-08.ll
    llvm/test/CodeGen/SystemZ/args-04.ll
    llvm/test/CodeGen/SystemZ/args-05.ll
    llvm/test/CodeGen/SystemZ/args-10.ll
    llvm/test/CodeGen/SystemZ/args-11.ll
    llvm/test/CodeGen/SystemZ/asm-01.ll
    llvm/test/CodeGen/SystemZ/asm-02.ll
    llvm/test/CodeGen/SystemZ/asm-03.ll
    llvm/test/CodeGen/SystemZ/asm-04.ll
    llvm/test/CodeGen/SystemZ/asm-05.ll
    llvm/test/CodeGen/SystemZ/asm-09.ll
    llvm/test/CodeGen/SystemZ/asm-17.ll
    llvm/test/CodeGen/SystemZ/asm-18.ll
    llvm/test/CodeGen/SystemZ/atomic-load-01.ll
    llvm/test/CodeGen/SystemZ/atomic-load-02.ll
    llvm/test/CodeGen/SystemZ/atomic-load-03.ll
    llvm/test/CodeGen/SystemZ/atomic-load-04.ll
    llvm/test/CodeGen/SystemZ/atomic-load-05.ll
    llvm/test/CodeGen/SystemZ/atomic-store-01.ll
    llvm/test/CodeGen/SystemZ/atomic-store-02.ll
    llvm/test/CodeGen/SystemZ/atomic-store-03.ll
    llvm/test/CodeGen/SystemZ/atomic-store-04.ll
    llvm/test/CodeGen/SystemZ/atomic-store-05.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-add-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-add-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-add-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-add-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-add-05.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-add-06.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-and-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-and-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-and-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-and-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-and-05.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-and-06.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-nand-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-nand-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-nand-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-nand-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-or-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-or-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-or-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-or-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-or-05.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-or-06.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-sub-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-sub-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-sub-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-sub-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-sub-05.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-sub-06.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xchg-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xchg-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xor-01.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xor-02.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xor-03.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xor-04.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xor-05.ll
    llvm/test/CodeGen/SystemZ/atomicrmw-xor-06.ll
    llvm/test/CodeGen/SystemZ/backchain.ll
    llvm/test/CodeGen/SystemZ/bcmp.ll
    llvm/test/CodeGen/SystemZ/branch-01.ll
    llvm/test/CodeGen/SystemZ/branch-02.ll
    llvm/test/CodeGen/SystemZ/branch-03.ll
    llvm/test/CodeGen/SystemZ/branch-04.ll
    llvm/test/CodeGen/SystemZ/branch-06.ll
    llvm/test/CodeGen/SystemZ/branch-07.ll
    llvm/test/CodeGen/SystemZ/branch-08.ll
    llvm/test/CodeGen/SystemZ/bswap-02.ll
    llvm/test/CodeGen/SystemZ/bswap-03.ll
    llvm/test/CodeGen/SystemZ/bswap-04.ll
    llvm/test/CodeGen/SystemZ/bswap-05.ll
    llvm/test/CodeGen/SystemZ/bswap-06.ll
    llvm/test/CodeGen/SystemZ/bswap-07.ll
    llvm/test/CodeGen/SystemZ/bswap-08.ll
    llvm/test/CodeGen/SystemZ/buildvector-00.ll
    llvm/test/CodeGen/SystemZ/builtins.ll
    llvm/test/CodeGen/SystemZ/call-02.ll
    llvm/test/CodeGen/SystemZ/call-03.ll
    llvm/test/CodeGen/SystemZ/call-04.ll
    llvm/test/CodeGen/SystemZ/call-05.ll
    llvm/test/CodeGen/SystemZ/call-zos-01.ll
    llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
    llvm/test/CodeGen/SystemZ/cc-liveness.ll
    llvm/test/CodeGen/SystemZ/cmpxchg-01.ll
    llvm/test/CodeGen/SystemZ/cmpxchg-02.ll
    llvm/test/CodeGen/SystemZ/cmpxchg-03.ll
    llvm/test/CodeGen/SystemZ/cmpxchg-04.ll
    llvm/test/CodeGen/SystemZ/cmpxchg-05.ll
    llvm/test/CodeGen/SystemZ/cmpxchg-06.ll
    llvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll
    llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
    llvm/test/CodeGen/SystemZ/codegenprepare-splitstore.ll
    llvm/test/CodeGen/SystemZ/combine_loads_from_build_pair.ll
    llvm/test/CodeGen/SystemZ/cond-load-01.ll
    llvm/test/CodeGen/SystemZ/cond-load-02.ll
    llvm/test/CodeGen/SystemZ/cond-load-03.ll
    llvm/test/CodeGen/SystemZ/cond-move-10.ll
    llvm/test/CodeGen/SystemZ/cond-store-01.ll
    llvm/test/CodeGen/SystemZ/cond-store-02.ll
    llvm/test/CodeGen/SystemZ/cond-store-03.ll
    llvm/test/CodeGen/SystemZ/cond-store-04.ll
    llvm/test/CodeGen/SystemZ/cond-store-05.ll
    llvm/test/CodeGen/SystemZ/cond-store-06.ll
    llvm/test/CodeGen/SystemZ/cond-store-07.ll
    llvm/test/CodeGen/SystemZ/cond-store-08.ll
    llvm/test/CodeGen/SystemZ/cond-store-09.ll
    llvm/test/CodeGen/SystemZ/copy-physreg-128.ll
    llvm/test/CodeGen/SystemZ/dag-combine-01.ll
    llvm/test/CodeGen/SystemZ/dag-combine-04.ll
    llvm/test/CodeGen/SystemZ/dag-combine-05.ll
    llvm/test/CodeGen/SystemZ/dag-combine-06.ll
    llvm/test/CodeGen/SystemZ/elim-frame-index-VR.ll
    llvm/test/CodeGen/SystemZ/expand-zext-pseudo.ll
    llvm/test/CodeGen/SystemZ/extract-vector-elt-zEC12.ll
    llvm/test/CodeGen/SystemZ/fentry-insertion.ll
    llvm/test/CodeGen/SystemZ/fentry-no-reorder.ll
    llvm/test/CodeGen/SystemZ/fold-memory-op-impl.ll
    llvm/test/CodeGen/SystemZ/foldmemop-imm-01.ll
    llvm/test/CodeGen/SystemZ/fp-abs-01.ll
    llvm/test/CodeGen/SystemZ/fp-abs-02.ll
    llvm/test/CodeGen/SystemZ/fp-abs-03.ll
    llvm/test/CodeGen/SystemZ/fp-abs-04.ll
    llvm/test/CodeGen/SystemZ/fp-add-01.ll
    llvm/test/CodeGen/SystemZ/fp-add-02.ll
    llvm/test/CodeGen/SystemZ/fp-add-03.ll
    llvm/test/CodeGen/SystemZ/fp-add-04.ll
    llvm/test/CodeGen/SystemZ/fp-cmp-01.ll
    llvm/test/CodeGen/SystemZ/fp-cmp-02.ll
    llvm/test/CodeGen/SystemZ/fp-cmp-03.ll
    llvm/test/CodeGen/SystemZ/fp-cmp-04.ll
    llvm/test/CodeGen/SystemZ/fp-cmp-06.ll
    llvm/test/CodeGen/SystemZ/fp-const-01.ll
    llvm/test/CodeGen/SystemZ/fp-const-02.ll
    llvm/test/CodeGen/SystemZ/fp-const-05.ll
    llvm/test/CodeGen/SystemZ/fp-const-07.ll
    llvm/test/CodeGen/SystemZ/fp-const-08.ll
    llvm/test/CodeGen/SystemZ/fp-const-09.ll
    llvm/test/CodeGen/SystemZ/fp-const-11.ll
    llvm/test/CodeGen/SystemZ/fp-conv-01.ll
    llvm/test/CodeGen/SystemZ/fp-conv-02.ll
    llvm/test/CodeGen/SystemZ/fp-conv-03.ll
    llvm/test/CodeGen/SystemZ/fp-conv-04.ll
    llvm/test/CodeGen/SystemZ/fp-conv-05.ll
    llvm/test/CodeGen/SystemZ/fp-conv-06.ll
    llvm/test/CodeGen/SystemZ/fp-conv-07.ll
    llvm/test/CodeGen/SystemZ/fp-conv-08.ll
    llvm/test/CodeGen/SystemZ/fp-conv-09.ll
    llvm/test/CodeGen/SystemZ/fp-conv-10.ll
    llvm/test/CodeGen/SystemZ/fp-conv-11.ll
    llvm/test/CodeGen/SystemZ/fp-conv-12.ll
    llvm/test/CodeGen/SystemZ/fp-conv-13.ll
    llvm/test/CodeGen/SystemZ/fp-conv-14.ll
    llvm/test/CodeGen/SystemZ/fp-conv-15.ll
    llvm/test/CodeGen/SystemZ/fp-conv-16.ll
    llvm/test/CodeGen/SystemZ/fp-conv-18.ll
    llvm/test/CodeGen/SystemZ/fp-conv-19.ll
    llvm/test/CodeGen/SystemZ/fp-copysign-01.ll
    llvm/test/CodeGen/SystemZ/fp-copysign-02.ll
    llvm/test/CodeGen/SystemZ/fp-div-01.ll
    llvm/test/CodeGen/SystemZ/fp-div-02.ll
    llvm/test/CodeGen/SystemZ/fp-div-03.ll
    llvm/test/CodeGen/SystemZ/fp-div-04.ll
    llvm/test/CodeGen/SystemZ/fp-move-01.ll
    llvm/test/CodeGen/SystemZ/fp-move-02.ll
    llvm/test/CodeGen/SystemZ/fp-move-03.ll
    llvm/test/CodeGen/SystemZ/fp-move-04.ll
    llvm/test/CodeGen/SystemZ/fp-move-05.ll
    llvm/test/CodeGen/SystemZ/fp-move-06.ll
    llvm/test/CodeGen/SystemZ/fp-move-07.ll
    llvm/test/CodeGen/SystemZ/fp-move-08.ll
    llvm/test/CodeGen/SystemZ/fp-move-09.ll
    llvm/test/CodeGen/SystemZ/fp-move-10.ll
    llvm/test/CodeGen/SystemZ/fp-move-11.ll
    llvm/test/CodeGen/SystemZ/fp-move-12.ll
    llvm/test/CodeGen/SystemZ/fp-move-13.ll
    llvm/test/CodeGen/SystemZ/fp-mul-01.ll
    llvm/test/CodeGen/SystemZ/fp-mul-02.ll
    llvm/test/CodeGen/SystemZ/fp-mul-03.ll
    llvm/test/CodeGen/SystemZ/fp-mul-04.ll
    llvm/test/CodeGen/SystemZ/fp-mul-05.ll
    llvm/test/CodeGen/SystemZ/fp-mul-06.ll
    llvm/test/CodeGen/SystemZ/fp-mul-07.ll
    llvm/test/CodeGen/SystemZ/fp-mul-08.ll
    llvm/test/CodeGen/SystemZ/fp-mul-09.ll
    llvm/test/CodeGen/SystemZ/fp-mul-11.ll
    llvm/test/CodeGen/SystemZ/fp-mul-12.ll
    llvm/test/CodeGen/SystemZ/fp-mul-13.ll
    llvm/test/CodeGen/SystemZ/fp-mul-14.ll
    llvm/test/CodeGen/SystemZ/fp-neg-01.ll
    llvm/test/CodeGen/SystemZ/fp-neg-02.ll
    llvm/test/CodeGen/SystemZ/fp-round-01.ll
    llvm/test/CodeGen/SystemZ/fp-round-02.ll
    llvm/test/CodeGen/SystemZ/fp-round-03.ll
    llvm/test/CodeGen/SystemZ/fp-sqrt-01.ll
    llvm/test/CodeGen/SystemZ/fp-sqrt-02.ll
    llvm/test/CodeGen/SystemZ/fp-sqrt-03.ll
    llvm/test/CodeGen/SystemZ/fp-sqrt-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-add-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-add-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-add-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-add-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-alias.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmp-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmp-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmp-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmp-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmp-06.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmps-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmps-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmps-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmps-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-cmps-06.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-05.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-06.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-07.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-08.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-09.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-10.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-11.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-12.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-13.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-14.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-15.ll
    llvm/test/CodeGen/SystemZ/fp-strict-conv-16.ll
    llvm/test/CodeGen/SystemZ/fp-strict-div-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-div-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-div-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-div-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-05.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-06.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-07.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-08.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-09.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-11.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-12.ll
    llvm/test/CodeGen/SystemZ/fp-strict-mul-13.ll
    llvm/test/CodeGen/SystemZ/fp-strict-round-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-round-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-round-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sqrt-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sqrt-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sqrt-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sqrt-04.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sub-01.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sub-02.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sub-03.ll
    llvm/test/CodeGen/SystemZ/fp-strict-sub-04.ll
    llvm/test/CodeGen/SystemZ/fp-sub-01.ll
    llvm/test/CodeGen/SystemZ/fp-sub-02.ll
    llvm/test/CodeGen/SystemZ/fp-sub-03.ll
    llvm/test/CodeGen/SystemZ/fp-sub-04.ll
    llvm/test/CodeGen/SystemZ/fpc-intrinsics.ll
    llvm/test/CodeGen/SystemZ/frame-01.ll
    llvm/test/CodeGen/SystemZ/frame-02.ll
    llvm/test/CodeGen/SystemZ/frame-03.ll
    llvm/test/CodeGen/SystemZ/frame-04.ll
    llvm/test/CodeGen/SystemZ/frame-05.ll
    llvm/test/CodeGen/SystemZ/frame-06.ll
    llvm/test/CodeGen/SystemZ/frame-07.ll
    llvm/test/CodeGen/SystemZ/frame-08.ll
    llvm/test/CodeGen/SystemZ/frame-09.ll
    llvm/test/CodeGen/SystemZ/frame-10.ll
    llvm/test/CodeGen/SystemZ/frame-11.ll
    llvm/test/CodeGen/SystemZ/frame-13.ll
    llvm/test/CodeGen/SystemZ/frame-14.ll
    llvm/test/CodeGen/SystemZ/frame-15.ll
    llvm/test/CodeGen/SystemZ/frame-16.ll
    llvm/test/CodeGen/SystemZ/frame-17.ll
    llvm/test/CodeGen/SystemZ/frame-18.ll
    llvm/test/CodeGen/SystemZ/frame-19.ll
    llvm/test/CodeGen/SystemZ/frame-20.ll
    llvm/test/CodeGen/SystemZ/frame-21.ll
    llvm/test/CodeGen/SystemZ/frame-24.ll
    llvm/test/CodeGen/SystemZ/frame-25.ll
    llvm/test/CodeGen/SystemZ/frameaddr-01.ll
    llvm/test/CodeGen/SystemZ/frameaddr-02.ll
    llvm/test/CodeGen/SystemZ/function-attributes-01.ll
    llvm/test/CodeGen/SystemZ/ghc-cc-01.ll
    llvm/test/CodeGen/SystemZ/ghc-cc-04.ll
    llvm/test/CodeGen/SystemZ/ghc-cc-05.ll
    llvm/test/CodeGen/SystemZ/hoist-const-stores.ll
    llvm/test/CodeGen/SystemZ/htm-intrinsics.ll
    llvm/test/CodeGen/SystemZ/inline-asm-addr.ll
    llvm/test/CodeGen/SystemZ/inline-asm-i128.ll
    llvm/test/CodeGen/SystemZ/inline-thresh-adjust.ll
    llvm/test/CodeGen/SystemZ/inlineasm-output-template.ll
    llvm/test/CodeGen/SystemZ/insert-01.ll
    llvm/test/CodeGen/SystemZ/insert-02.ll
    llvm/test/CodeGen/SystemZ/insert-06.ll
    llvm/test/CodeGen/SystemZ/int-add-01.ll
    llvm/test/CodeGen/SystemZ/int-add-02.ll
    llvm/test/CodeGen/SystemZ/int-add-03.ll
    llvm/test/CodeGen/SystemZ/int-add-04.ll
    llvm/test/CodeGen/SystemZ/int-add-05.ll
    llvm/test/CodeGen/SystemZ/int-add-08.ll
    llvm/test/CodeGen/SystemZ/int-add-09.ll
    llvm/test/CodeGen/SystemZ/int-add-10.ll
    llvm/test/CodeGen/SystemZ/int-add-11.ll
    llvm/test/CodeGen/SystemZ/int-add-12.ll
    llvm/test/CodeGen/SystemZ/int-add-16.ll
    llvm/test/CodeGen/SystemZ/int-add-17.ll
    llvm/test/CodeGen/SystemZ/int-cmp-01.ll
    llvm/test/CodeGen/SystemZ/int-cmp-02.ll
    llvm/test/CodeGen/SystemZ/int-cmp-03.ll
    llvm/test/CodeGen/SystemZ/int-cmp-04.ll
    llvm/test/CodeGen/SystemZ/int-cmp-05.ll
    llvm/test/CodeGen/SystemZ/int-cmp-06.ll
    llvm/test/CodeGen/SystemZ/int-cmp-07.ll
    llvm/test/CodeGen/SystemZ/int-cmp-08.ll
    llvm/test/CodeGen/SystemZ/int-cmp-15.ll
    llvm/test/CodeGen/SystemZ/int-cmp-16.ll
    llvm/test/CodeGen/SystemZ/int-cmp-17.ll
    llvm/test/CodeGen/SystemZ/int-cmp-18.ll
    llvm/test/CodeGen/SystemZ/int-cmp-19.ll
    llvm/test/CodeGen/SystemZ/int-cmp-20.ll
    llvm/test/CodeGen/SystemZ/int-cmp-21.ll
    llvm/test/CodeGen/SystemZ/int-cmp-22.ll
    llvm/test/CodeGen/SystemZ/int-cmp-23.ll
    llvm/test/CodeGen/SystemZ/int-cmp-24.ll
    llvm/test/CodeGen/SystemZ/int-cmp-25.ll
    llvm/test/CodeGen/SystemZ/int-cmp-26.ll
    llvm/test/CodeGen/SystemZ/int-cmp-27.ll
    llvm/test/CodeGen/SystemZ/int-cmp-28.ll
    llvm/test/CodeGen/SystemZ/int-cmp-29.ll
    llvm/test/CodeGen/SystemZ/int-cmp-30.ll
    llvm/test/CodeGen/SystemZ/int-cmp-31.ll
    llvm/test/CodeGen/SystemZ/int-cmp-32.ll
    llvm/test/CodeGen/SystemZ/int-cmp-33.ll
    llvm/test/CodeGen/SystemZ/int-cmp-34.ll
    llvm/test/CodeGen/SystemZ/int-cmp-35.ll
    llvm/test/CodeGen/SystemZ/int-cmp-36.ll
    llvm/test/CodeGen/SystemZ/int-cmp-37.ll
    llvm/test/CodeGen/SystemZ/int-cmp-38.ll
    llvm/test/CodeGen/SystemZ/int-cmp-39.ll
    llvm/test/CodeGen/SystemZ/int-cmp-40.ll
    llvm/test/CodeGen/SystemZ/int-cmp-41.ll
    llvm/test/CodeGen/SystemZ/int-cmp-42.ll
    llvm/test/CodeGen/SystemZ/int-cmp-43.ll
    llvm/test/CodeGen/SystemZ/int-cmp-44.ll
    llvm/test/CodeGen/SystemZ/int-cmp-45.ll
    llvm/test/CodeGen/SystemZ/int-cmp-46.ll
    llvm/test/CodeGen/SystemZ/int-cmp-47.ll
    llvm/test/CodeGen/SystemZ/int-cmp-48.ll
    llvm/test/CodeGen/SystemZ/int-cmp-49.ll
    llvm/test/CodeGen/SystemZ/int-cmp-50.ll
    llvm/test/CodeGen/SystemZ/int-cmp-52.ll
    llvm/test/CodeGen/SystemZ/int-cmp-53.ll
    llvm/test/CodeGen/SystemZ/int-cmp-54.ll
    llvm/test/CodeGen/SystemZ/int-cmp-55.ll
    llvm/test/CodeGen/SystemZ/int-cmp-59.ll
    llvm/test/CodeGen/SystemZ/int-cmp-60.ll
    llvm/test/CodeGen/SystemZ/int-cmp-61.ll
    llvm/test/CodeGen/SystemZ/int-const-02.ll
    llvm/test/CodeGen/SystemZ/int-const-03.ll
    llvm/test/CodeGen/SystemZ/int-const-04.ll
    llvm/test/CodeGen/SystemZ/int-const-05.ll
    llvm/test/CodeGen/SystemZ/int-const-06.ll
    llvm/test/CodeGen/SystemZ/int-conv-01.ll
    llvm/test/CodeGen/SystemZ/int-conv-02.ll
    llvm/test/CodeGen/SystemZ/int-conv-03.ll
    llvm/test/CodeGen/SystemZ/int-conv-04.ll
    llvm/test/CodeGen/SystemZ/int-conv-05.ll
    llvm/test/CodeGen/SystemZ/int-conv-06.ll
    llvm/test/CodeGen/SystemZ/int-conv-07.ll
    llvm/test/CodeGen/SystemZ/int-conv-08.ll
    llvm/test/CodeGen/SystemZ/int-conv-09.ll
    llvm/test/CodeGen/SystemZ/int-conv-10.ll
    llvm/test/CodeGen/SystemZ/int-conv-11.ll
    llvm/test/CodeGen/SystemZ/int-conv-12.ll
    llvm/test/CodeGen/SystemZ/int-conv-13.ll
    llvm/test/CodeGen/SystemZ/int-div-01.ll
    llvm/test/CodeGen/SystemZ/int-div-02.ll
    llvm/test/CodeGen/SystemZ/int-div-03.ll
    llvm/test/CodeGen/SystemZ/int-div-04.ll
    llvm/test/CodeGen/SystemZ/int-div-05.ll
    llvm/test/CodeGen/SystemZ/int-move-02.ll
    llvm/test/CodeGen/SystemZ/int-move-03.ll
    llvm/test/CodeGen/SystemZ/int-move-04.ll
    llvm/test/CodeGen/SystemZ/int-move-05.ll
    llvm/test/CodeGen/SystemZ/int-move-06.ll
    llvm/test/CodeGen/SystemZ/int-move-07.ll
    llvm/test/CodeGen/SystemZ/int-move-08.ll
    llvm/test/CodeGen/SystemZ/int-move-09.ll
    llvm/test/CodeGen/SystemZ/int-move-10.ll
    llvm/test/CodeGen/SystemZ/int-mul-01.ll
    llvm/test/CodeGen/SystemZ/int-mul-02.ll
    llvm/test/CodeGen/SystemZ/int-mul-03.ll
    llvm/test/CodeGen/SystemZ/int-mul-04.ll
    llvm/test/CodeGen/SystemZ/int-mul-05.ll
    llvm/test/CodeGen/SystemZ/int-mul-06.ll
    llvm/test/CodeGen/SystemZ/int-mul-08.ll
    llvm/test/CodeGen/SystemZ/int-mul-09.ll
    llvm/test/CodeGen/SystemZ/int-mul-10.ll
    llvm/test/CodeGen/SystemZ/int-sadd-01.ll
    llvm/test/CodeGen/SystemZ/int-sadd-02.ll
    llvm/test/CodeGen/SystemZ/int-sadd-03.ll
    llvm/test/CodeGen/SystemZ/int-sadd-04.ll
    llvm/test/CodeGen/SystemZ/int-sadd-05.ll
    llvm/test/CodeGen/SystemZ/int-sadd-06.ll
    llvm/test/CodeGen/SystemZ/int-sadd-07.ll
    llvm/test/CodeGen/SystemZ/int-sadd-08.ll
    llvm/test/CodeGen/SystemZ/int-sadd-09.ll
    llvm/test/CodeGen/SystemZ/int-ssub-01.ll
    llvm/test/CodeGen/SystemZ/int-ssub-02.ll
    llvm/test/CodeGen/SystemZ/int-ssub-03.ll
    llvm/test/CodeGen/SystemZ/int-ssub-04.ll
    llvm/test/CodeGen/SystemZ/int-ssub-05.ll
    llvm/test/CodeGen/SystemZ/int-ssub-06.ll
    llvm/test/CodeGen/SystemZ/int-ssub-07.ll
    llvm/test/CodeGen/SystemZ/int-ssub-08.ll
    llvm/test/CodeGen/SystemZ/int-ssub-09.ll
    llvm/test/CodeGen/SystemZ/int-sub-01.ll
    llvm/test/CodeGen/SystemZ/int-sub-02.ll
    llvm/test/CodeGen/SystemZ/int-sub-03.ll
    llvm/test/CodeGen/SystemZ/int-sub-04.ll
    llvm/test/CodeGen/SystemZ/int-sub-05.ll
    llvm/test/CodeGen/SystemZ/int-sub-06.ll
    llvm/test/CodeGen/SystemZ/int-sub-07.ll
    llvm/test/CodeGen/SystemZ/int-sub-09.ll
    llvm/test/CodeGen/SystemZ/int-sub-10.ll
    llvm/test/CodeGen/SystemZ/int-uadd-01.ll
    llvm/test/CodeGen/SystemZ/int-uadd-02.ll
    llvm/test/CodeGen/SystemZ/int-uadd-03.ll
    llvm/test/CodeGen/SystemZ/int-uadd-04.ll
    llvm/test/CodeGen/SystemZ/int-uadd-05.ll
    llvm/test/CodeGen/SystemZ/int-uadd-06.ll
    llvm/test/CodeGen/SystemZ/int-uadd-07.ll
    llvm/test/CodeGen/SystemZ/int-uadd-08.ll
    llvm/test/CodeGen/SystemZ/int-uadd-09.ll
    llvm/test/CodeGen/SystemZ/int-uadd-10.ll
    llvm/test/CodeGen/SystemZ/int-uadd-11.ll
    llvm/test/CodeGen/SystemZ/int-uadd-12.ll
    llvm/test/CodeGen/SystemZ/int-usub-01.ll
    llvm/test/CodeGen/SystemZ/int-usub-02.ll
    llvm/test/CodeGen/SystemZ/int-usub-03.ll
    llvm/test/CodeGen/SystemZ/int-usub-04.ll
    llvm/test/CodeGen/SystemZ/int-usub-05.ll
    llvm/test/CodeGen/SystemZ/int-usub-06.ll
    llvm/test/CodeGen/SystemZ/int-usub-07.ll
    llvm/test/CodeGen/SystemZ/int-usub-08.ll
    llvm/test/CodeGen/SystemZ/int-usub-09.ll
    llvm/test/CodeGen/SystemZ/int-usub-10.ll
    llvm/test/CodeGen/SystemZ/int-usub-11.ll
    llvm/test/CodeGen/SystemZ/ipra-04.ll
    llvm/test/CodeGen/SystemZ/ipra.ll
    llvm/test/CodeGen/SystemZ/knownbits.ll
    llvm/test/CodeGen/SystemZ/la-01.ll
    llvm/test/CodeGen/SystemZ/la-02.ll
    llvm/test/CodeGen/SystemZ/la-03.ll
    llvm/test/CodeGen/SystemZ/la-04.ll
    llvm/test/CodeGen/SystemZ/la-05.ll
    llvm/test/CodeGen/SystemZ/locr-legal-regclass.ll
    llvm/test/CodeGen/SystemZ/loop-01.ll
    llvm/test/CodeGen/SystemZ/loop-02.ll
    llvm/test/CodeGen/SystemZ/loop-03.ll
    llvm/test/CodeGen/SystemZ/memchr-01.ll
    llvm/test/CodeGen/SystemZ/memchr-nobuiltin.ll
    llvm/test/CodeGen/SystemZ/memcmp-01.ll
    llvm/test/CodeGen/SystemZ/memcmp-02.ll
    llvm/test/CodeGen/SystemZ/memcmp-03.ll
    llvm/test/CodeGen/SystemZ/memcmp-nobuiltin.ll
    llvm/test/CodeGen/SystemZ/memcpy-01.ll
    llvm/test/CodeGen/SystemZ/memcpy-02.ll
    llvm/test/CodeGen/SystemZ/memcpy-03.ll
    llvm/test/CodeGen/SystemZ/memset-01.ll
    llvm/test/CodeGen/SystemZ/memset-02.ll
    llvm/test/CodeGen/SystemZ/memset-03.ll
    llvm/test/CodeGen/SystemZ/memset-04.ll
    llvm/test/CodeGen/SystemZ/memset-05.ll
    llvm/test/CodeGen/SystemZ/memset-06.ll
    llvm/test/CodeGen/SystemZ/memset-07.ll
    llvm/test/CodeGen/SystemZ/memset-08.ll
    llvm/test/CodeGen/SystemZ/misched-cutoff.ll
    llvm/test/CodeGen/SystemZ/multiselect.ll
    llvm/test/CodeGen/SystemZ/no-vx.ll
    llvm/test/CodeGen/SystemZ/or-01.ll
    llvm/test/CodeGen/SystemZ/or-03.ll
    llvm/test/CodeGen/SystemZ/or-05.ll
    llvm/test/CodeGen/SystemZ/or-06.ll
    llvm/test/CodeGen/SystemZ/or-08.ll
    llvm/test/CodeGen/SystemZ/pie.ll
    llvm/test/CodeGen/SystemZ/pr31710.ll
    llvm/test/CodeGen/SystemZ/pr32372.ll
    llvm/test/CodeGen/SystemZ/pr32505.ll
    llvm/test/CodeGen/SystemZ/pr36164.ll
    llvm/test/CodeGen/SystemZ/pr47019.ll
    llvm/test/CodeGen/SystemZ/prefetch-01.ll
    llvm/test/CodeGen/SystemZ/prefetch-02.ll
    llvm/test/CodeGen/SystemZ/prefetch-03.ll
    llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
    llvm/test/CodeGen/SystemZ/ret-addr-01.ll
    llvm/test/CodeGen/SystemZ/risbg-01.ll
    llvm/test/CodeGen/SystemZ/risbg-03.ll
    llvm/test/CodeGen/SystemZ/risbg-04.ll
    llvm/test/CodeGen/SystemZ/rnsbg-01.ll
    llvm/test/CodeGen/SystemZ/rosbg-02.ll
    llvm/test/CodeGen/SystemZ/selectcc-04.ll
    llvm/test/CodeGen/SystemZ/shift-01.ll
    llvm/test/CodeGen/SystemZ/shift-02.ll
    llvm/test/CodeGen/SystemZ/shift-03.ll
    llvm/test/CodeGen/SystemZ/shift-04.ll
    llvm/test/CodeGen/SystemZ/shift-05.ll
    llvm/test/CodeGen/SystemZ/shift-06.ll
    llvm/test/CodeGen/SystemZ/shift-07.ll
    llvm/test/CodeGen/SystemZ/shift-08.ll
    llvm/test/CodeGen/SystemZ/signbits.ll
    llvm/test/CodeGen/SystemZ/spill-01.ll
    llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier.ll
    llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier_2.ll
    llvm/test/CodeGen/SystemZ/stack-clash-dynamic-alloca.ll
    llvm/test/CodeGen/SystemZ/stack-clash-protection.ll
    llvm/test/CodeGen/SystemZ/stack-guard.ll
    llvm/test/CodeGen/SystemZ/stackmap-dynamic-alloca.ll
    llvm/test/CodeGen/SystemZ/stackpointer.ll
    llvm/test/CodeGen/SystemZ/store-replicated-vals.ll
    llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
    llvm/test/CodeGen/SystemZ/strcmp-01.ll
    llvm/test/CodeGen/SystemZ/strcmp-nobuiltin.ll
    llvm/test/CodeGen/SystemZ/strcpy-01.ll
    llvm/test/CodeGen/SystemZ/strcpy-nobuiltin.ll
    llvm/test/CodeGen/SystemZ/strlen-01.ll
    llvm/test/CodeGen/SystemZ/strlen-nobuiltin.ll
    llvm/test/CodeGen/SystemZ/subregliveness-01.ll
    llvm/test/CodeGen/SystemZ/subregliveness-02.ll
    llvm/test/CodeGen/SystemZ/subregliveness-03.ll
    llvm/test/CodeGen/SystemZ/subregliveness-04.ll
    llvm/test/CodeGen/SystemZ/subregliveness-05.ll
    llvm/test/CodeGen/SystemZ/swift-return.ll
    llvm/test/CodeGen/SystemZ/swifterror.ll
    llvm/test/CodeGen/SystemZ/swiftself.ll
    llvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll
    llvm/test/CodeGen/SystemZ/tls-01.ll
    llvm/test/CodeGen/SystemZ/tls-02.ll
    llvm/test/CodeGen/SystemZ/tls-03.ll
    llvm/test/CodeGen/SystemZ/tls-04.ll
    llvm/test/CodeGen/SystemZ/tls-05.ll
    llvm/test/CodeGen/SystemZ/tls-06.ll
    llvm/test/CodeGen/SystemZ/tls-07.ll
    llvm/test/CodeGen/SystemZ/tls-08.ll
    llvm/test/CodeGen/SystemZ/tls-09.ll
    llvm/test/CodeGen/SystemZ/trap-02.ll
    llvm/test/CodeGen/SystemZ/trap-03.ll
    llvm/test/CodeGen/SystemZ/trap-04.ll
    llvm/test/CodeGen/SystemZ/trap-05.ll
    llvm/test/CodeGen/SystemZ/unaligned-01.ll
    llvm/test/CodeGen/SystemZ/undef-flag.ll
    llvm/test/CodeGen/SystemZ/vec-abi-align.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-01.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-02.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-03.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-04.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-05.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-06.ll
    llvm/test/CodeGen/SystemZ/vec-bswap-07.ll
    llvm/test/CodeGen/SystemZ/vec-combine-01.ll
    llvm/test/CodeGen/SystemZ/vec-combine-02.ll
    llvm/test/CodeGen/SystemZ/vec-const-19.ll
    llvm/test/CodeGen/SystemZ/vec-conv-01.ll
    llvm/test/CodeGen/SystemZ/vec-conv-02.ll
    llvm/test/CodeGen/SystemZ/vec-eswap-01.ll
    llvm/test/CodeGen/SystemZ/vec-eswap-02.ll
    llvm/test/CodeGen/SystemZ/vec-extract-01.ll
    llvm/test/CodeGen/SystemZ/vec-extract-02.ll
    llvm/test/CodeGen/SystemZ/vec-intrinsics-01.ll
    llvm/test/CodeGen/SystemZ/vec-intrinsics-02.ll
    llvm/test/CodeGen/SystemZ/vec-intrinsics-03.ll
    llvm/test/CodeGen/SystemZ/vec-load-element.ll
    llvm/test/CodeGen/SystemZ/vec-max-05.ll
    llvm/test/CodeGen/SystemZ/vec-min-05.ll
    llvm/test/CodeGen/SystemZ/vec-move-02.ll
    llvm/test/CodeGen/SystemZ/vec-move-03.ll
    llvm/test/CodeGen/SystemZ/vec-move-08.ll
    llvm/test/CodeGen/SystemZ/vec-move-10.ll
    llvm/test/CodeGen/SystemZ/vec-move-12.ll
    llvm/test/CodeGen/SystemZ/vec-move-14.ll
    llvm/test/CodeGen/SystemZ/vec-move-15.ll
    llvm/test/CodeGen/SystemZ/vec-move-16.ll
    llvm/test/CodeGen/SystemZ/vec-move-17.ll
    llvm/test/CodeGen/SystemZ/vec-move-18.ll
    llvm/test/CodeGen/SystemZ/vec-move-19.ll
    llvm/test/CodeGen/SystemZ/vec-move-20.ll
    llvm/test/CodeGen/SystemZ/vec-move-21.ll
    llvm/test/CodeGen/SystemZ/vec-move-22.ll
    llvm/test/CodeGen/SystemZ/vec-move-23.ll
    llvm/test/CodeGen/SystemZ/vec-move-24.ll
    llvm/test/CodeGen/SystemZ/vec-perm-03.ll
    llvm/test/CodeGen/SystemZ/vec-perm-14.ll
    llvm/test/CodeGen/SystemZ/vec-strict-conv-01.ll
    llvm/test/CodeGen/SystemZ/vec-strict-conv-02.ll
    llvm/test/CodeGen/SystemZ/vec-strict-max-01.ll
    llvm/test/CodeGen/SystemZ/vec-strict-min-01.ll
    llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
    llvm/test/CodeGen/SystemZ/vectorizer-output-3xi32.ll
    llvm/test/CodeGen/SystemZ/xor-01.ll
    llvm/test/CodeGen/SystemZ/xor-03.ll
    llvm/test/CodeGen/SystemZ/xor-05.ll
    llvm/test/CodeGen/SystemZ/xor-06.ll
    llvm/test/CodeGen/SystemZ/xor-08.ll
    llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
    llvm/test/CodeGen/SystemZ/zos-stackpointer.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/SystemZ/DAGCombine_trunc_extract.ll b/llvm/test/CodeGen/SystemZ/DAGCombine_trunc_extract.ll
index 63c1c6363189f..950b753778e08 100644
--- a/llvm/test/CodeGen/SystemZ/DAGCombine_trunc_extract.ll
+++ b/llvm/test/CodeGen/SystemZ/DAGCombine_trunc_extract.ll
@@ -13,6 +13,6 @@ entry:
 loop:                                            ; preds = %CF249, %CF247
   %Shuff = shufflevector <2 x i8> undef, <2 x i8> %Arg, <2 x i32> <i32 3, i32 1>
   %E = extractelement <2 x i8> %Shuff, i32 0
-  store i8 %E, i8* undef
+  store i8 %E, ptr undef
   br label %loop
 }

diff  --git a/llvm/test/CodeGen/SystemZ/DAGCombiner_isAlias.ll b/llvm/test/CodeGen/SystemZ/DAGCombiner_isAlias.ll
index a42f625a5363e..0e6c0e5836c04 100644
--- a/llvm/test/CodeGen/SystemZ/DAGCombiner_isAlias.ll
+++ b/llvm/test/CodeGen/SystemZ/DAGCombiner_isAlias.ll
@@ -3,11 +3,11 @@
 ; Check that the second load of @g_2 is not incorrectly eliminated by
 ; DAGCombiner. It is needed since the preceding store is aliasing.
 
-; %.b1.i = load i1, i1* @g_2, align 4
+; %.b1.i = load i1, ptr @g_2, align 4
 ; ...
-; %g_717.sink.i = select i1 %cmp.i, i1* @g_717, i1* @g_2
-; store i1 true, i1* %g_717.sink.i, align 4
-; %.b = load i1, i1* @g_2, align 4
+; %g_717.sink.i = select i1 %cmp.i, ptr @g_717, ptr @g_2
+; store i1 true, ptr %g_717.sink.i, align 4
+; %.b = load i1, ptr @g_2, align 4
 
 ; CHECK: # %bb.6: # %crc32_gentab.exit
 ; CHECK:        larl    %r2, g_2
@@ -25,23 +25,23 @@
 @.str.4 = external hidden unnamed_addr constant [15 x i8], align 2
 
 ; Function Attrs: nounwind
-define signext i32 @main(i32 signext %argc, i8** nocapture readonly %argv) local_unnamed_addr #0 {
+define signext i32 @main(i32 signext %argc, ptr nocapture readonly %argv) local_unnamed_addr #0 {
 entry:
   %cmp = icmp eq i32 %argc, 2
   br i1 %cmp, label %cond.true, label %vector.ph
 
 cond.true:                                        ; preds = %entry
-  %arrayidx = getelementptr inbounds i8*, i8** %argv, i64 1
-  %0 = load i8*, i8** %arrayidx, align 8, !tbaa !2
-  %1 = load i8, i8* %0, align 1, !tbaa !6
+  %arrayidx = getelementptr inbounds ptr, ptr %argv, i64 1
+  %0 = load ptr, ptr %arrayidx, align 8, !tbaa !2
+  %1 = load i8, ptr %0, align 1, !tbaa !6
   %conv4 = zext i8 %1 to i32
   %sub = sub nsw i32 49, %conv4
   %cmp8 = icmp eq i32 %sub, 0
   br i1 %cmp8, label %if.then, label %if.end35
 
 if.then:                                          ; preds = %cond.true
-  %arrayidx11 = getelementptr inbounds i8, i8* %0, i64 1
-  %2 = load i8, i8* %arrayidx11, align 1, !tbaa !6
+  %arrayidx11 = getelementptr inbounds i8, ptr %0, i64 1
+  %2 = load i8, ptr %arrayidx11, align 1, !tbaa !6
   %conv12 = zext i8 %2 to i32
   %sub13 = sub nsw i32 0, %conv12
   br label %if.end35
@@ -99,40 +99,39 @@ vector.body:                                      ; preds = %vector.body, %vecto
   %40 = lshr <4 x i32> %37, <i32 1, i32 1, i32 1, i32 1>
   %41 = xor <4 x i32> %40, <i32 -306674912, i32 -306674912, i32 -306674912, i32 -306674912>
   %42 = select <4 x i1> %39, <4 x i32> %40, <4 x i32> %41
-  %43 = getelementptr inbounds [256 x i32], [256 x i32]* @crc32_tab, i64 0, i64 %index
-  %44 = bitcast i32* %43 to <4 x i32>*
-  store <4 x i32> %42, <4 x i32>* %44, align 4, !tbaa !7
+  %43 = getelementptr inbounds [256 x i32], ptr @crc32_tab, i64 0, i64 %index
+  store <4 x i32> %42, ptr %43, align 4, !tbaa !7
   %index.next = add i64 %index, 4
   %vec.ind.next23 = add <4 x i32> %vec.ind22, <i32 4, i32 4, i32 4, i32 4>
-  %45 = icmp eq i64 %index.next, 256
-  br i1 %45, label %crc32_gentab.exit, label %vector.body
+  %44 = icmp eq i64 %index.next, 256
+  br i1 %44, label %crc32_gentab.exit, label %vector.body
 
 crc32_gentab.exit:                                ; preds = %vector.body
-  %46 = load i32, i32* @g_5, align 4, !tbaa !7
-  %.b1.i = load i1, i1* @g_2, align 4
-  %47 = select i1 %.b1.i, i32 1, i32 2
-  %and.i21 = and i32 %47, %46
-  store i32 %and.i21, i32* @g_5, align 4, !tbaa !7
+  %45 = load i32, ptr @g_5, align 4, !tbaa !7
+  %.b1.i = load i1, ptr @g_2, align 4
+  %46 = select i1 %.b1.i, i32 1, i32 2
+  %and.i21 = and i32 %46, %45
+  store i32 %and.i21, ptr @g_5, align 4, !tbaa !7
   %cmp.i = icmp eq i32 %and.i21, 1
-  %g_717.sink.i = select i1 %cmp.i, i1* @g_717, i1* @g_2
-  store i1 true, i1* %g_717.sink.i, align 4
-  %.b = load i1, i1* @g_2, align 4
+  %g_717.sink.i = select i1 %cmp.i, ptr @g_717, ptr @g_2
+  store i1 true, ptr %g_717.sink.i, align 4
+  %.b = load i1, ptr @g_2, align 4
   %conv44 = select i1 %.b, i64 1, i64 2
-  tail call fastcc void @transparent_crc(i64 %conv44, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str.1, i64 0, i64 0), i32 signext %print_hash_value.0)
-  %.b20 = load i1, i1* @g_717, align 4
+  tail call fastcc void @transparent_crc(i64 %conv44, ptr @.str.1, i32 signext %print_hash_value.0)
+  %.b20 = load i1, ptr @g_717, align 4
   %conv45 = select i1 %.b20, i64 2, i64 0
-  tail call fastcc void @transparent_crc(i64 %conv45, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.2, i64 0, i64 0), i32 signext %print_hash_value.0)
-  %48 = load i32, i32* @crc32_context, align 4, !tbaa !7
-  %49 = xor i32 %48, -1
-  %call.i = tail call signext i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.4, i64 0, i64 0), i32 zeroext %49) #2
+  tail call fastcc void @transparent_crc(i64 %conv45, ptr @.str.2, i32 signext %print_hash_value.0)
+  %47 = load i32, ptr @crc32_context, align 4, !tbaa !7
+  %48 = xor i32 %47, -1
+  %call.i = tail call signext i32 (ptr, ...) @printf(ptr @.str.4, i32 zeroext %48) #2
   ret i32 0
 }
 
 ; Function Attrs: nounwind
-declare hidden fastcc void @transparent_crc(i64, i8*, i32 signext) unnamed_addr #0
+declare hidden fastcc void @transparent_crc(i64, ptr, i32 signext) unnamed_addr #0
 
 ; Function Attrs: nounwind
-declare signext i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr #1
+declare signext i32 @printf(ptr nocapture readonly, ...) local_unnamed_addr #1
 
 !2 = !{!3, !3, i64 0}
 !3 = !{!"any pointer", !4, i64 0}

diff  --git a/llvm/test/CodeGen/SystemZ/Large/branch-01.ll b/llvm/test/CodeGen/SystemZ/Large/branch-01.ll
index e0a45b38c9b5b..002efacecd26a 100644
--- a/llvm/test/CodeGen/SystemZ/Large/branch-01.ll
+++ b/llvm/test/CodeGen/SystemZ/Large/branch-01.ll
@@ -3270,10 +3270,10 @@ target triple = "s390x-ibm-linux"
 @.str.3233 = external dso_local unnamed_addr constant [10 x i8], align 2
 @crc32_context = external dso_local unnamed_addr global i32, align 4
 @crc32_tab = external dso_local unnamed_addr global [256 x i32], align 4
- at g_281 = external dso_local unnamed_addr global i32*, align 8
- at g_1971 = external dso_local global i8*, align 8
+ at g_281 = external dso_local unnamed_addr global ptr, align 8
+ at g_1971 = external dso_local global ptr, align 8
 @func_62.l_422 = external dso_local unnamed_addr constant { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, align 2
- at g_133 = external dso_local unnamed_addr global [7 x [9 x i32*]], align 8
+ at g_133 = external dso_local unnamed_addr global [7 x [9 x ptr]], align 8
 @.str.3234 = external dso_local unnamed_addr constant [36 x i8], align 2
 @g_31 = external dso_local unnamed_addr global { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, align 4
 @g_205 = external dso_local global <{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>, align 4
@@ -3478,17 +3478,17 @@ target triple = "s390x-ibm-linux"
 @.str.3437 = external dso_local unnamed_addr constant [15 x i8], align 2
 
 ; Function Attrs: nounwind
-define signext i32 @main(i32 signext, i8** nocapture readonly) local_unnamed_addr #0 {
-  %3 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>, <{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>* @g_205, i64 0, i32 3, i32 2, i32 4, i32 1) to i80*), align 2, !noalias !1
+define signext i32 @main(i32 signext, ptr nocapture readonly) local_unnamed_addr #0 {
+  %3 = load i80, ptr getelementptr inbounds (<{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>, <{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>* @g_205, i64 0, i32 3, i32 2, i32 4, i32 1), align 2, !noalias !1
   %4 = lshr i80 %3, 10
   %5 = trunc i80 %4 to i64
   %6 = and i64 %5, 2
   %7 = sub nsw i64 0, %6
   %8 = and i64 %7, 46
-  %9 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_278, i64 0, i32 1, i32 5, i32 0) to i80*), align 2, !noalias !1
+  %9 = load i80, ptr getelementptr inbounds (<{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_278, i64 0, i32 1, i32 5, i32 0), align 2, !noalias !1
   %10 = lshr i80 %9, 23
   %11 = trunc i80 %10 to i8
-  %12 = load i8, i8* getelementptr inbounds (<{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>, <{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>* @g_205, i64 0, i32 3, i32 2, i32 1), align 4, !tbaa !6, !noalias !14
+  %12 = load i8, ptr getelementptr inbounds (<{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>, <{ <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>, <{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }> }>* @g_205, i64 0, i32 3, i32 2, i32 1), align 4, !tbaa !6, !noalias !14
   %13 = lshr i80 %9, 57
   %14 = trunc i80 %13 to i8
   %15 = sdiv i8 %14, -10
@@ -3496,8391 +3496,8370 @@ define signext i32 @main(i32 signext, i8** nocapture readonly) local_unnamed_add
   br label %6618
 
 ; <label>:17:                                     ; preds = %6641, %17
-  %18 = load i1, i1* @g_429, align 4
+  %18 = load i1, ptr @g_429, align 4
   %19 = select i1 %18, i64 7, i64 1125020318
-  %20 = getelementptr inbounds [9 x [9 x i32]], [9 x [9 x i32]]* @g_131, i64 0, i64 %19, i64 undef
-  store i32 251, i32* %20, align 4, !tbaa !15, !noalias !16
-  store i8 0, i8* @g_35, align 2, !tbaa !19, !noalias !16
-  %21 = load i80, i80* undef, align 2, !noalias !16
+  %20 = getelementptr inbounds [9 x [9 x i32]], ptr @g_131, i64 0, i64 %19, i64 undef
+  store i32 251, ptr %20, align 4, !tbaa !15, !noalias !16
+  store i8 0, ptr @g_35, align 2, !tbaa !19, !noalias !16
+  %21 = load i80, ptr undef, align 2, !noalias !16
   %22 = shl i80 %21, 57
   %23 = ashr i80 %22, 58
   %24 = trunc i80 %23 to i32
   %25 = icmp ne i32 %24, 255
   %26 = zext i1 %25 to i64
-  call fastcc void @func_62(%1* noalias nonnull null, i64 %26) #3, !noalias !16
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* undef, i8* nonnull null, i64 10, i32 1, i1 false) #3, !tbaa.struct !20, !noalias !16
+  call fastcc void @func_62(ptr noalias nonnull null, i64 %26) #3, !noalias !16
+  call void @llvm.memcpy.p0.p0.i64(ptr undef, ptr nonnull null, i64 10, i32 1, i1 false) #3, !tbaa.struct !20, !noalias !16
   br i1 undef, label %17, label %27
 
 ; <label>:27:                                     ; preds = %17
-  store i1 true, i1* @g_427, align 2, !noalias !16
-  %28 = load i16, i16* @g_129, align 2, !tbaa !21, !noalias !14
+  store i1 true, ptr @g_427, align 2, !noalias !16
+  %28 = load i16, ptr @g_129, align 2, !tbaa !21, !noalias !14
   %29 = and i16 %28, 1
-  store i16 %29, i16* @g_129, align 2, !tbaa !21, !noalias !14
-  store i32 0, i32* @g_13, align 4, !tbaa !15, !noalias !14
-  store i16 1, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 7), align 2, !tbaa !21, !noalias !14
-  call fastcc void @func_62(%1* noalias nonnull null, i64 1) #3, !noalias !14
-  %30 = load volatile i8*, i8** @g_1971, align 8, !tbaa !22, !noalias !14
-  store i16 -12, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 0), align 2, !tbaa !24, !noalias !14
-  %31 = load volatile i32, i32* @g_6, align 4, !tbaa !15
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.3, i64 0, i64 0), i32 signext undef)
-  %32 = load i32, i32* @g_13, align 4, !tbaa !15
+  store i16 %29, ptr @g_129, align 2, !tbaa !21, !noalias !14
+  store i32 0, ptr @g_13, align 4, !tbaa !15, !noalias !14
+  store i16 1, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 7), align 2, !tbaa !21, !noalias !14
+  call fastcc void @func_62(ptr noalias nonnull null, i64 1) #3, !noalias !14
+  %30 = load volatile ptr, ptr @g_1971, align 8, !tbaa !22, !noalias !14
+  store i16 -12, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 0), align 2, !tbaa !24, !noalias !14
+  %31 = load volatile i32, ptr @g_6, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3, i32 signext undef)
+  %32 = load i32, ptr @g_13, align 4, !tbaa !15
   %33 = sext i32 %32 to i64
-  call fastcc void @transparent_crc(i64 %33, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.4, i64 0, i64 0), i32 signext undef)
-  %34 = load i8, i8* @g_14, align 2, !tbaa !19
+  call fastcc void @transparent_crc(i64 %33, ptr @.str.4, i32 signext undef)
+  %34 = load i8, ptr @g_14, align 2, !tbaa !19
   %35 = sext i8 %34 to i64
-  call fastcc void @transparent_crc(i64 %35, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.5, i64 0, i64 0), i32 signext undef)
-  %36 = load i32, i32* getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_31, i64 0, i32 0), align 4, !tbaa !30
+  call fastcc void @transparent_crc(i64 %35, ptr @.str.5, i32 signext undef)
+  %36 = load i32, ptr getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_31, i64 0, i32 0), align 4, !tbaa !30
   %37 = sext i32 %36 to i64
-  call fastcc void @transparent_crc(i64 %37, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.6, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.8, i64 0, i64 0), i32 signext undef)
-  %38 = load i32, i32* bitcast (i8* getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_31, i64 0, i32 9) to i32*), align 4
+  call fastcc void @transparent_crc(i64 %37, ptr @.str.6, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.8, i32 signext undef)
+  %38 = load i32, ptr getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_31, i64 0, i32 9), align 4
   %39 = lshr i32 %38, 4
   %40 = zext i32 %39 to i64
-  call fastcc void @transparent_crc(i64 %40, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.9, i64 0, i64 0), i32 signext undef)
-  %41 = load i32, i32* bitcast (i8* getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_31, i64 0, i32 13) to i32*), align 4
+  call fastcc void @transparent_crc(i64 %40, ptr @.str.9, i32 signext undef)
+  %41 = load i32, ptr getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_31, i64 0, i32 13), align 4
   %42 = ashr i32 %41, 9
   %43 = sext i32 %42 to i64
-  call fastcc void @transparent_crc(i64 %43, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.10, i64 0, i64 0), i32 signext undef)
-  %44 = load i32, i32* bitcast (i8* getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_31, i64 0, i32 17) to i32*), align 4
+  call fastcc void @transparent_crc(i64 %43, ptr @.str.10, i32 signext undef)
+  %44 = load i32, ptr getelementptr inbounds ({ i32, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_31, i64 0, i32 17), align 4
   %45 = ashr i32 %44, 4
   %46 = sext i32 %45 to i64
-  call fastcc void @transparent_crc(i64 %46, i8* getelementptr inbounds ([8 x i8], [8 x i8]* @.str.11, i64 0, i64 0), i32 signext undef)
-  %47 = load i8, i8* @g_35, align 2, !tbaa !19
+  call fastcc void @transparent_crc(i64 %46, ptr @.str.11, i32 signext undef)
+  %47 = load i8, ptr @g_35, align 2, !tbaa !19
   %48 = zext i8 %47 to i64
-  call fastcc void @transparent_crc(i64 %48, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.12, i64 0, i64 0), i32 signext undef)
-  %49 = load i1, i1* @g_50, align 2
+  call fastcc void @transparent_crc(i64 %48, ptr @.str.12, i32 signext undef)
+  %49 = load i1, ptr @g_50, align 2
   %50 = select i1 %49, i64 0, i64 12
-  call fastcc void @transparent_crc(i64 %50, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.13, i64 0, i64 0), i32 signext undef)
-  %51 = load i8, i8* @g_78, align 2, !tbaa !19
+  call fastcc void @transparent_crc(i64 %50, ptr @.str.13, i32 signext undef)
+  %51 = load i8, ptr @g_78, align 2, !tbaa !19
   %52 = sext i8 %51 to i64
-  call fastcc void @transparent_crc(i64 %52, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.14, i64 0, i64 0), i32 signext undef)
-  %53 = load i8, i8* @g_81, align 2, !tbaa !19
+  call fastcc void @transparent_crc(i64 %52, ptr @.str.14, i32 signext undef)
+  %53 = load i8, ptr @g_81, align 2, !tbaa !19
   %54 = zext i8 %53 to i64
-  call fastcc void @transparent_crc(i64 %54, i8* getelementptr inbounds ([5 x i8], [5 x i8]* @.str.15, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 6330, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.16, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 2, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.17, i64 0, i64 0), i32 signext undef)
-  %55 = load i16, i16* @g_129, align 2, !tbaa !21
+  call fastcc void @transparent_crc(i64 %54, ptr @.str.15, i32 signext undef)
+  call fastcc void @transparent_crc(i64 6330, ptr @.str.16, i32 signext undef)
+  call fastcc void @transparent_crc(i64 2, ptr @.str.17, i32 signext undef)
+  %55 = load i16, ptr @g_129, align 2, !tbaa !21
   %56 = zext i16 %55 to i64
-  call fastcc void @transparent_crc(i64 %56, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.18, i64 0, i64 0), i32 signext undef)
-  %57 = load i32, i32* undef, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %56, ptr @.str.18, i32 signext undef)
+  %57 = load i32, ptr undef, align 4, !tbaa !15
   %58 = sext i32 %57 to i64
-  call fastcc void @transparent_crc(i64 %58, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  %59 = load i32, i32* undef, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %58, ptr @.str.19, i32 signext 0)
+  %59 = load i32, ptr undef, align 4, !tbaa !15
   %60 = sext i32 %59 to i64
-  call fastcc void @transparent_crc(i64 %60, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  %61 = load i32, i32* undef, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %60, ptr @.str.19, i32 signext 0)
+  %61 = load i32, ptr undef, align 4, !tbaa !15
   %62 = sext i32 %61 to i64
-  call fastcc void @transparent_crc(i64 %62, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  %63 = load i32, i32* undef, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %62, ptr @.str.19, i32 signext 0)
+  %63 = load i32, ptr undef, align 4, !tbaa !15
   %64 = sext i32 %63 to i64
-  call fastcc void @transparent_crc(i64 %64, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  %65 = load i32, i32* undef, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %64, ptr @.str.19, i32 signext 0)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.19, i32 signext 0)
+  %65 = load i32, ptr undef, align 4, !tbaa !15
   %66 = sext i32 %65 to i64
-  call fastcc void @transparent_crc(i64 %66, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  %67 = load i32, i32* undef, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %66, ptr @.str.19, i32 signext 0)
+  %67 = load i32, ptr undef, align 4, !tbaa !15
   %68 = sext i32 %67 to i64
-  call fastcc void @transparent_crc(i64 %68, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  %69 = load i32, i32* null, align 4, !tbaa !15
+  call fastcc void @transparent_crc(i64 %68, ptr @.str.19, i32 signext 0)
+  %69 = load i32, ptr null, align 4, !tbaa !15
   %70 = sext i32 %69 to i64
-  call fastcc void @transparent_crc(i64 %70, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.19, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.35, i64 0, i64 0), i32 signext undef)
-  %71 = load volatile i80, i80* undef, align 2
+  call fastcc void @transparent_crc(i64 %70, ptr @.str.19, i32 signext 0)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.35, i32 signext undef)
+  %71 = load volatile i80, ptr undef, align 2
   %72 = lshr i80 %71, 24
   %73 = trunc i80 %72 to i64
   %74 = and i64 %73, 33554431
-  call fastcc void @transparent_crc(i64 %74, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.36, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.37, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.38, i64 0, i64 0), i32 signext undef)
-  %75 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.43, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.52, i64 0, i64 0), i32 signext 0)
-  %76 = load i80, i80* undef, align 2
+  call fastcc void @transparent_crc(i64 %74, ptr @.str.36, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.37, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.38, i32 signext undef)
+  %75 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.43, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.52, i32 signext 0)
+  %76 = load i80, ptr undef, align 2
   %77 = shl i80 %76, 57
   %78 = ashr i80 %77, 58
   %79 = shl nsw i80 %78, 32
   %80 = trunc i80 %79 to i64
   %81 = ashr exact i64 %80, 32
-  call fastcc void @transparent_crc(i64 %81, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.53, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.50, i64 0, i64 0), i32 signext 0)
-  %82 = load i80, i80* undef, align 2
+  call fastcc void @transparent_crc(i64 %81, ptr @.str.53, i32 signext 0)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.50, i32 signext 0)
+  %82 = load i80, ptr undef, align 2
   %83 = shl i80 %82, 23
   %84 = ashr i80 %83, 64
   %85 = shl nsw i80 %84, 32
   %86 = trunc i80 %85 to i64
   %87 = ashr exact i64 %86, 32
-  call fastcc void @transparent_crc(i64 %87, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.51, i64 0, i64 0), i32 signext 0)
-  %88 = load i80, i80* undef, align 2
+  call fastcc void @transparent_crc(i64 %87, ptr @.str.51, i32 signext 0)
+  %88 = load i80, ptr undef, align 2
   %89 = shl i80 %88, 39
   %90 = ashr i80 %89, 62
   %91 = shl nsw i80 %90, 32
   %92 = trunc i80 %91 to i64
   %93 = ashr exact i64 %92, 32
-  call fastcc void @transparent_crc(i64 %93, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.52, i64 0, i64 0), i32 signext 0)
-  %94 = load i80, i80* undef, align 2
+  call fastcc void @transparent_crc(i64 %93, ptr @.str.52, i32 signext 0)
+  %94 = load i80, ptr undef, align 2
   %95 = shl i80 %94, 57
   %96 = ashr i80 %95, 58
   %97 = shl nsw i80 %96, 32
   %98 = trunc i80 %97 to i64
   %99 = ashr exact i64 %98, 32
-  call fastcc void @transparent_crc(i64 %99, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.53, i64 0, i64 0), i32 signext 0)
-  %100 = getelementptr inbounds [3 x [9 x %1]], [3 x [9 x %1]]* bitcast (<{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_278 to [3 x [9 x %1]]*), i64 0, i64 2, i64 0
-  %101 = bitcast %1* %100 to i80*
-  %102 = load i80, i80* %101, align 2
-  %103 = lshr i80 %102, 57
-  %104 = trunc i80 %103 to i64
-  call fastcc void @transparent_crc(i64 %104, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.50, i64 0, i64 0), i32 signext 0)
-  %105 = load i80, i80* %101, align 2
-  %106 = shl i80 %105, 23
-  %107 = ashr i80 %106, 64
-  %108 = shl nsw i80 %107, 32
-  %109 = trunc i80 %108 to i64
-  %110 = ashr exact i64 %109, 32
-  call fastcc void @transparent_crc(i64 %110, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.51, i64 0, i64 0), i32 signext 0)
-  %111 = load i80, i80* %101, align 2
-  %112 = shl i80 %111, 39
-  %113 = ashr i80 %112, 62
-  %114 = shl nsw i80 %113, 32
-  %115 = trunc i80 %114 to i64
-  %116 = ashr exact i64 %115, 32
-  call fastcc void @transparent_crc(i64 %116, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.52, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.53, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.54, i64 0, i64 0), i32 signext undef)
-  %117 = load volatile i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_298, i64 0, i32 1), align 4, !tbaa !6
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.55, i64 0, i64 0), i32 signext undef)
-  %118 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_298, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.56, i64 0, i64 0), i32 signext undef)
-  %119 = load volatile i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_298, i64 0, i32 3), align 4, !tbaa !33
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.57, i64 0, i64 0), i32 signext undef)
-  %120 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_298, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %121 = lshr i80 %120, 57
-  %122 = trunc i80 %121 to i64
-  call fastcc void @transparent_crc(i64 %122, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.58, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.77, i64 0, i64 0), i32 signext undef)
-  %123 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_431 to i120*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.78, i64 0, i64 0), i32 signext undef)
-  %124 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_431 to i120*), align 8
-  %125 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_431 to i120*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.88, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.89, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.90, i64 0, i64 0), i32 signext undef)
-  %126 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_552, i64 0, i32 1) to i80*), align 2
-  %127 = shl i80 %126, 69
-  %128 = ashr i80 %127, 72
-  %129 = shl nsw i80 %128, 32
-  %130 = trunc i80 %129 to i64
-  %131 = ashr exact i64 %130, 32
-  call fastcc void @transparent_crc(i64 %131, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.91, i64 0, i64 0), i32 signext undef)
-  %132 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555 to i80*), align 8
-  %133 = lshr i80 %132, 57
-  %134 = trunc i80 %133 to i64
-  call fastcc void @transparent_crc(i64 %134, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.92, i64 0, i64 0), i32 signext undef)
-  %135 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555 to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.93, i64 0, i64 0), i32 signext undef)
-  %136 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.94, i64 0, i64 0), i32 signext undef)
-  %137 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555 to i80*), align 8
-  %138 = shl i80 %137, 57
-  %139 = ashr i80 %138, 58
-  %140 = shl nsw i80 %139, 32
-  %141 = trunc i80 %140 to i64
-  %142 = ashr exact i64 %141, 32
-  call fastcc void @transparent_crc(i64 %142, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.95, i64 0, i64 0), i32 signext undef)
-  %143 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555, i64 0, i32 1) to i80*), align 2
-  %144 = lshr i80 %143, 49
-  %145 = trunc i80 %144 to i64
-  call fastcc void @transparent_crc(i64 %145, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.96, i64 0, i64 0), i32 signext undef)
-  %146 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555, i64 0, i32 1) to i80*), align 2
-  %147 = lshr i80 %146, 24
-  %148 = trunc i80 %147 to i64
-  %149 = and i64 %148, 33554431
-  call fastcc void @transparent_crc(i64 %149, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.97, i64 0, i64 0), i32 signext undef)
-  %150 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555, i64 0, i32 1) to i80*), align 2
-  %151 = shl i80 %150, 56
-  %152 = ashr i80 %151, 68
-  %153 = shl nsw i80 %152, 32
-  %154 = trunc i80 %153 to i64
-  %155 = ashr exact i64 %154, 32
-  call fastcc void @transparent_crc(i64 %155, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.98, i64 0, i64 0), i32 signext undef)
-  %156 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555, i64 0, i32 1) to i80*), align 2
-  %157 = lshr i80 %156, 11
-  %158 = trunc i80 %157 to i64
-  %159 = and i64 %158, 1
-  call fastcc void @transparent_crc(i64 %159, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.99, i64 0, i64 0), i32 signext undef)
-  %160 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_555, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.100, i64 0, i64 0), i32 signext undef)
-  %161 = load i32, i32* @g_598, align 4, !tbaa !15
-  %162 = zext i32 %161 to i64
-  call fastcc void @transparent_crc(i64 %162, i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str.101, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.102, i64 0, i64 0), i32 signext undef)
-  %163 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_658 to i80*), align 8
-  %164 = shl i80 %163, 23
-  %165 = ashr i80 %164, 64
-  %166 = shl nsw i80 %165, 32
-  %167 = trunc i80 %166 to i64
-  %168 = ashr exact i64 %167, 32
-  call fastcc void @transparent_crc(i64 %168, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.103, i64 0, i64 0), i32 signext undef)
-  %169 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_658 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.105, i64 0, i64 0), i32 signext undef)
-  %170 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_658, i64 0, i32 1) to i80*), align 2
-  %171 = lshr i80 %170, 49
-  %172 = trunc i80 %171 to i64
-  call fastcc void @transparent_crc(i64 %172, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.106, i64 0, i64 0), i32 signext undef)
-  %173 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_658, i64 0, i32 1) to i80*), align 2
-  %174 = lshr i80 %173, 24
-  %175 = trunc i80 %174 to i64
-  %176 = and i64 %175, 33554431
-  call fastcc void @transparent_crc(i64 %176, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.107, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.109, i64 0, i64 0), i32 signext undef)
-  %177 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_658, i64 0, i32 1) to i80*), align 2
-  %178 = shl i80 %177, 69
-  %179 = ashr i80 %178, 72
-  %180 = shl nsw i80 %179, 32
-  %181 = trunc i80 %180 to i64
-  %182 = ashr exact i64 %181, 32
-  call fastcc void @transparent_crc(i64 %182, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.110, i64 0, i64 0), i32 signext undef)
-  %183 = getelementptr inbounds [9 x %2], [9 x %2]* bitcast (<{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_695 to [9 x %2]*), i64 0, i64 0
-  %184 = bitcast %2* %183 to i120*
-  %185 = load volatile i120, i120* %184, align 1
-  %186 = load volatile i120, i120* %184, align 1
-  %187 = lshr i120 %186, 78
-  %188 = trunc i120 %187 to i64
-  %189 = and i64 %188, 536870911
-  call fastcc void @transparent_crc(i64 %189, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.112, i64 0, i64 0), i32 signext undef)
-  %190 = load volatile i120, i120* %184, align 1
-  %191 = shl i120 %190, 42
-  %192 = ashr i120 %191, 104
-  %193 = shl nsw i120 %192, 32
-  %194 = trunc i120 %193 to i64
-  %195 = ashr exact i64 %194, 32
-  call fastcc void @transparent_crc(i64 %195, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.113, i64 0, i64 0), i32 signext undef)
-  %196 = load volatile i120, i120* %184, align 1
-  %197 = shl i120 %196, 58
-  %198 = ashr i120 %197, 105
-  %199 = shl nsw i120 %198, 32
-  %200 = trunc i120 %199 to i64
-  %201 = ashr exact i64 %200, 32
-  call fastcc void @transparent_crc(i64 %201, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.114, i64 0, i64 0), i32 signext undef)
-  %202 = load volatile i120, i120* %184, align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.116, i64 0, i64 0), i32 signext undef)
-  %203 = load volatile i120, i120* %184, align 1
-  %204 = shl i120 %203, 101
-  %205 = ashr exact i120 %204, 69
-  %206 = trunc i120 %205 to i64
-  %207 = ashr exact i64 %206, 32
-  call fastcc void @transparent_crc(i64 %207, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.117, i64 0, i64 0), i32 signext undef)
-  %208 = load i32, i32* undef, align 4, !tbaa !34
-  %209 = zext i32 %208 to i64
-  call fastcc void @transparent_crc(i64 %209, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.119, i64 0, i64 0), i32 signext undef)
-  %210 = load i8, i8* undef, align 4, !tbaa !6
-  %211 = sext i8 %210 to i64
-  call fastcc void @transparent_crc(i64 %211, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.120, i64 0, i64 0), i32 signext undef)
-  %212 = load volatile i16, i16* undef, align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.121, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.122, i64 0, i64 0), i32 signext undef)
-  %213 = load volatile i80, i80* undef, align 4
-  %214 = load volatile i80, i80* undef, align 4
-  %215 = shl i80 %214, 23
-  %216 = ashr i80 %215, 64
-  %217 = shl nsw i80 %216, 32
-  %218 = trunc i80 %217 to i64
-  %219 = ashr exact i64 %218, 32
-  call fastcc void @transparent_crc(i64 %219, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.124, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.125, i64 0, i64 0), i32 signext undef)
-  %220 = load volatile i80, i80* undef, align 4
-  %221 = shl i80 %220, 57
-  %222 = ashr i80 %221, 58
-  %223 = shl nsw i80 %222, 32
-  %224 = trunc i80 %223 to i64
-  %225 = ashr exact i64 %224, 32
-  call fastcc void @transparent_crc(i64 %225, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.126, i64 0, i64 0), i32 signext undef)
-  %226 = getelementptr inbounds [6 x %3], [6 x %3]* bitcast (<{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>* @g_720 to [6 x %3]*), i64 0, i64 0, i32 4, i32 1
-  %227 = bitcast [10 x i8]* %226 to i80*
-  %228 = load i80, i80* %227, align 2
-  %229 = lshr i80 %228, 49
-  %230 = trunc i80 %229 to i64
-  call fastcc void @transparent_crc(i64 %230, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.127, i64 0, i64 0), i32 signext undef)
-  %231 = load volatile i80, i80* %227, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.133, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.135, i64 0, i64 0), i32 signext 0)
-  %232 = getelementptr inbounds [9 x [7 x %1]], [9 x [7 x %1]]* bitcast (<{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_736 to [9 x [7 x %1]]*), i64 0, i64 0, i64 1
-  %233 = bitcast %1* %232 to i80*
-  %234 = load i80, i80* %233, align 2
-  %235 = lshr i80 %234, 57
-  %236 = trunc i80 %235 to i64
-  call fastcc void @transparent_crc(i64 %236, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.132, i64 0, i64 0), i32 signext 0)
-  %237 = shl i80 %234, 23
-  %238 = ashr i80 %237, 64
-  %239 = shl nsw i80 %238, 32
-  %240 = trunc i80 %239 to i64
-  %241 = ashr exact i64 %240, 32
-  call fastcc void @transparent_crc(i64 %241, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.133, i64 0, i64 0), i32 signext 0)
-  %242 = load i80, i80* undef, align 2
-  %243 = lshr i80 %242, 57
-  %244 = trunc i80 %243 to i64
-  call fastcc void @transparent_crc(i64 %244, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.132, i64 0, i64 0), i32 signext 0)
-  %245 = shl i80 %242, 23
-  %246 = ashr i80 %245, 64
-  %247 = shl nsw i80 %246, 32
-  %248 = trunc i80 %247 to i64
-  %249 = ashr exact i64 %248, 32
-  call fastcc void @transparent_crc(i64 %249, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.133, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.147, i64 0, i64 0), i32 signext undef)
-  %250 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_896, i64 0, i32 1) to i80*), align 2
-  %251 = lshr i80 %250, 49
-  %252 = trunc i80 %251 to i64
-  call fastcc void @transparent_crc(i64 %252, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.148, i64 0, i64 0), i32 signext undef)
-  %253 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_896, i64 0, i32 1) to i80*), align 2
-  %254 = lshr i80 %253, 24
-  %255 = trunc i80 %254 to i64
-  %256 = and i64 %255, 33554431
-  call fastcc void @transparent_crc(i64 %256, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.149, i64 0, i64 0), i32 signext undef)
-  %257 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_896, i64 0, i32 1) to i80*), align 2
-  %258 = shl i80 %257, 56
-  %259 = ashr i80 %258, 68
-  %260 = shl nsw i80 %259, 32
-  %261 = trunc i80 %260 to i64
-  %262 = ashr exact i64 %261, 32
-  call fastcc void @transparent_crc(i64 %262, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.150, i64 0, i64 0), i32 signext undef)
-  %263 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_896, i64 0, i32 1) to i80*), align 2
-  %264 = lshr i80 %263, 11
-  %265 = trunc i80 %264 to i64
-  %266 = and i64 %265, 1
-  call fastcc void @transparent_crc(i64 %266, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.151, i64 0, i64 0), i32 signext undef)
-  %267 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_896, i64 0, i32 1) to i80*), align 2
-  %268 = shl i80 %267, 69
-  %269 = ashr i80 %268, 72
-  %270 = shl nsw i80 %269, 32
-  %271 = trunc i80 %270 to i64
-  %272 = ashr exact i64 %271, 32
-  call fastcc void @transparent_crc(i64 %272, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.152, i64 0, i64 0), i32 signext undef)
-  %273 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897 to i80*), align 8
-  %274 = lshr i80 %273, 57
+  call fastcc void @transparent_crc(i64 %99, ptr @.str.53, i32 signext 0)
+  %100 = getelementptr inbounds [3 x [9 x %1]], ptr bitcast (<{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_278 to ptr), i64 0, i64 2, i64 0
+  %101 = load i80, ptr %100, align 2
+  %102 = lshr i80 %101, 57
+  %103 = trunc i80 %102 to i64
+  call fastcc void @transparent_crc(i64 %103, ptr @.str.50, i32 signext 0)
+  %104 = load i80, ptr %100, align 2
+  %105 = shl i80 %104, 23
+  %106 = ashr i80 %105, 64
+  %107 = shl nsw i80 %106, 32
+  %108 = trunc i80 %107 to i64
+  %109 = ashr exact i64 %108, 32
+  call fastcc void @transparent_crc(i64 %109, ptr @.str.51, i32 signext 0)
+  %110 = load i80, ptr %100, align 2
+  %111 = shl i80 %110, 39
+  %112 = ashr i80 %111, 62
+  %113 = shl nsw i80 %112, 32
+  %114 = trunc i80 %113 to i64
+  %115 = ashr exact i64 %114, 32
+  call fastcc void @transparent_crc(i64 %115, ptr @.str.52, i32 signext 0)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.53, i32 signext 0)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.54, i32 signext undef)
+  %116 = load volatile i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_298, i64 0, i32 1), align 4, !tbaa !6
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.55, i32 signext undef)
+  %117 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_298, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.56, i32 signext undef)
+  %118 = load volatile i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_298, i64 0, i32 3), align 4, !tbaa !33
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.57, i32 signext undef)
+  %119 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_298, i64 0, i32 4, i32 0, i32 0), align 4
+  %120 = lshr i80 %119, 57
+  %121 = trunc i80 %120 to i64
+  call fastcc void @transparent_crc(i64 %121, ptr @.str.58, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.77, i32 signext undef)
+  %122 = load volatile i120, ptr @g_431, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.78, i32 signext undef)
+  %123 = load volatile i120, ptr @g_431, align 8
+  %124 = load volatile i120, ptr @g_431, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.88, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.89, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.90, i32 signext undef)
+  %125 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_552, i64 0, i32 1), align 2
+  %126 = shl i80 %125, 69
+  %127 = ashr i80 %126, 72
+  %128 = shl nsw i80 %127, 32
+  %129 = trunc i80 %128 to i64
+  %130 = ashr exact i64 %129, 32
+  call fastcc void @transparent_crc(i64 %130, ptr @.str.91, i32 signext undef)
+  %131 = load volatile i80, ptr @g_555, align 8
+  %132 = lshr i80 %131, 57
+  %133 = trunc i80 %132 to i64
+  call fastcc void @transparent_crc(i64 %133, ptr @.str.92, i32 signext undef)
+  %134 = load volatile i80, ptr @g_555, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.93, i32 signext undef)
+  %135 = load volatile i80, ptr @g_555, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.94, i32 signext undef)
+  %136 = load volatile i80, ptr @g_555, align 8
+  %137 = shl i80 %136, 57
+  %138 = ashr i80 %137, 58
+  %139 = shl nsw i80 %138, 32
+  %140 = trunc i80 %139 to i64
+  %141 = ashr exact i64 %140, 32
+  call fastcc void @transparent_crc(i64 %141, ptr @.str.95, i32 signext undef)
+  %142 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_555, i64 0, i32 1), align 2
+  %143 = lshr i80 %142, 49
+  %144 = trunc i80 %143 to i64
+  call fastcc void @transparent_crc(i64 %144, ptr @.str.96, i32 signext undef)
+  %145 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_555, i64 0, i32 1), align 2
+  %146 = lshr i80 %145, 24
+  %147 = trunc i80 %146 to i64
+  %148 = and i64 %147, 33554431
+  call fastcc void @transparent_crc(i64 %148, ptr @.str.97, i32 signext undef)
+  %149 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_555, i64 0, i32 1), align 2
+  %150 = shl i80 %149, 56
+  %151 = ashr i80 %150, 68
+  %152 = shl nsw i80 %151, 32
+  %153 = trunc i80 %152 to i64
+  %154 = ashr exact i64 %153, 32
+  call fastcc void @transparent_crc(i64 %154, ptr @.str.98, i32 signext undef)
+  %155 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_555, i64 0, i32 1), align 2
+  %156 = lshr i80 %155, 11
+  %157 = trunc i80 %156 to i64
+  %158 = and i64 %157, 1
+  call fastcc void @transparent_crc(i64 %158, ptr @.str.99, i32 signext undef)
+  %159 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_555, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.100, i32 signext undef)
+  %160 = load i32, ptr @g_598, align 4, !tbaa !15
+  %161 = zext i32 %160 to i64
+  call fastcc void @transparent_crc(i64 %161, ptr @.str.101, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.102, i32 signext undef)
+  %162 = load volatile i80, ptr @g_658, align 8
+  %163 = shl i80 %162, 23
+  %164 = ashr i80 %163, 64
+  %165 = shl nsw i80 %164, 32
+  %166 = trunc i80 %165 to i64
+  %167 = ashr exact i64 %166, 32
+  call fastcc void @transparent_crc(i64 %167, ptr @.str.103, i32 signext undef)
+  %168 = load volatile i80, ptr @g_658, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.105, i32 signext undef)
+  %169 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_658, i64 0, i32 1), align 2
+  %170 = lshr i80 %169, 49
+  %171 = trunc i80 %170 to i64
+  call fastcc void @transparent_crc(i64 %171, ptr @.str.106, i32 signext undef)
+  %172 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_658, i64 0, i32 1), align 2
+  %173 = lshr i80 %172, 24
+  %174 = trunc i80 %173 to i64
+  %175 = and i64 %174, 33554431
+  call fastcc void @transparent_crc(i64 %175, ptr @.str.107, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.109, i32 signext undef)
+  %176 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_658, i64 0, i32 1), align 2
+  %177 = shl i80 %176, 69
+  %178 = ashr i80 %177, 72
+  %179 = shl nsw i80 %178, 32
+  %180 = trunc i80 %179 to i64
+  %181 = ashr exact i64 %180, 32
+  call fastcc void @transparent_crc(i64 %181, ptr @.str.110, i32 signext undef)
+  %182 = load volatile i120, ptr @g_695, align 1
+  %183 = load volatile i120, ptr @g_695, align 1
+  %184 = lshr i120 %183, 78
+  %185 = trunc i120 %184 to i64
+  %186 = and i64 %185, 536870911
+  call fastcc void @transparent_crc(i64 %186, ptr @.str.112, i32 signext undef)
+  %187 = load volatile i120, ptr @g_695, align 1
+  %188 = shl i120 %187, 42
+  %189 = ashr i120 %188, 104
+  %190 = shl nsw i120 %189, 32
+  %191 = trunc i120 %190 to i64
+  %192 = ashr exact i64 %191, 32
+  call fastcc void @transparent_crc(i64 %192, ptr @.str.113, i32 signext undef)
+  %193 = load volatile i120, ptr @g_695, align 1
+  %194 = shl i120 %193, 58
+  %195 = ashr i120 %194, 105
+  %196 = shl nsw i120 %195, 32
+  %197 = trunc i120 %196 to i64
+  %198 = ashr exact i64 %197, 32
+  call fastcc void @transparent_crc(i64 %198, ptr @.str.114, i32 signext undef)
+  %199 = load volatile i120, ptr @g_695, align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.116, i32 signext undef)
+  %200 = load volatile i120, ptr @g_695, align 1
+  %201 = shl i120 %200, 101
+  %202 = ashr exact i120 %201, 69
+  %203 = trunc i120 %202 to i64
+  %204 = ashr exact i64 %203, 32
+  call fastcc void @transparent_crc(i64 %204, ptr @.str.117, i32 signext undef)
+  %205 = load i32, ptr undef, align 4, !tbaa !34
+  %206 = zext i32 %205 to i64
+  call fastcc void @transparent_crc(i64 %206, ptr @.str.119, i32 signext undef)
+  %207 = load i8, ptr undef, align 4, !tbaa !6
+  %208 = sext i8 %207 to i64
+  call fastcc void @transparent_crc(i64 %208, ptr @.str.120, i32 signext undef)
+  %209 = load volatile i16, ptr undef, align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 0, ptr @.str.121, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.122, i32 signext undef)
+  %210 = load volatile i80, ptr undef, align 4
+  %211 = load volatile i80, ptr undef, align 4
+  %212 = shl i80 %211, 23
+  %213 = ashr i80 %212, 64
+  %214 = shl nsw i80 %213, 32
+  %215 = trunc i80 %214 to i64
+  %216 = ashr exact i64 %215, 32
+  call fastcc void @transparent_crc(i64 %216, ptr @.str.124, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.125, i32 signext undef)
+  %217 = load volatile i80, ptr undef, align 4
+  %218 = shl i80 %217, 57
+  %219 = ashr i80 %218, 58
+  %220 = shl nsw i80 %219, 32
+  %221 = trunc i80 %220 to i64
+  %222 = ashr exact i64 %221, 32
+  call fastcc void @transparent_crc(i64 %222, ptr @.str.126, i32 signext undef)
+  %223 = getelementptr inbounds [6 x %3], ptr @g_720, i64 0, i64 0, i32 4, i32 1
+  %224 = load i80, ptr %223, align 2
+  %225 = lshr i80 %224, 49
+  %226 = trunc i80 %225 to i64
+  call fastcc void @transparent_crc(i64 %226, ptr @.str.127, i32 signext undef)
+  %227 = load volatile i80, ptr %223, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.133, i32 signext 0)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.135, i32 signext 0)
+  %228 = getelementptr inbounds [9 x [7 x %1]], ptr bitcast (<{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_736 to ptr), i64 0, i64 0, i64 1
+  %229 = load i80, ptr %228, align 2
+  %230 = lshr i80 %229, 57
+  %231 = trunc i80 %230 to i64
+  call fastcc void @transparent_crc(i64 %231, ptr @.str.132, i32 signext 0)
+  %232 = shl i80 %229, 23
+  %233 = ashr i80 %232, 64
+  %234 = shl nsw i80 %233, 32
+  %235 = trunc i80 %234 to i64
+  %236 = ashr exact i64 %235, 32
+  call fastcc void @transparent_crc(i64 %236, ptr @.str.133, i32 signext 0)
+  %237 = load i80, ptr undef, align 2
+  %238 = lshr i80 %237, 57
+  %239 = trunc i80 %238 to i64
+  call fastcc void @transparent_crc(i64 %239, ptr @.str.132, i32 signext 0)
+  %240 = shl i80 %237, 23
+  %241 = ashr i80 %240, 64
+  %242 = shl nsw i80 %241, 32
+  %243 = trunc i80 %242 to i64
+  %244 = ashr exact i64 %243, 32
+  call fastcc void @transparent_crc(i64 %244, ptr @.str.133, i32 signext 0)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.147, i32 signext undef)
+  %245 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_896, i64 0, i32 1), align 2
+  %246 = lshr i80 %245, 49
+  %247 = trunc i80 %246 to i64
+  call fastcc void @transparent_crc(i64 %247, ptr @.str.148, i32 signext undef)
+  %248 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_896, i64 0, i32 1), align 2
+  %249 = lshr i80 %248, 24
+  %250 = trunc i80 %249 to i64
+  %251 = and i64 %250, 33554431
+  call fastcc void @transparent_crc(i64 %251, ptr @.str.149, i32 signext undef)
+  %252 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_896, i64 0, i32 1), align 2
+  %253 = shl i80 %252, 56
+  %254 = ashr i80 %253, 68
+  %255 = shl nsw i80 %254, 32
+  %256 = trunc i80 %255 to i64
+  %257 = ashr exact i64 %256, 32
+  call fastcc void @transparent_crc(i64 %257, ptr @.str.150, i32 signext undef)
+  %258 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_896, i64 0, i32 1), align 2
+  %259 = lshr i80 %258, 11
+  %260 = trunc i80 %259 to i64
+  %261 = and i64 %260, 1
+  call fastcc void @transparent_crc(i64 %261, ptr @.str.151, i32 signext undef)
+  %262 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_896, i64 0, i32 1), align 2
+  %263 = shl i80 %262, 69
+  %264 = ashr i80 %263, 72
+  %265 = shl nsw i80 %264, 32
+  %266 = trunc i80 %265 to i64
+  %267 = ashr exact i64 %266, 32
+  call fastcc void @transparent_crc(i64 %267, ptr @.str.152, i32 signext undef)
+  %268 = load volatile i80, ptr @g_897, align 8
+  %269 = lshr i80 %268, 57
+  %270 = trunc i80 %269 to i64
+  call fastcc void @transparent_crc(i64 %270, ptr @.str.153, i32 signext undef)
+  %271 = load volatile i80, ptr @g_897, align 8
+  %272 = shl i80 %271, 23
+  %273 = ashr i80 %272, 64
+  %274 = shl nsw i80 %273, 32
   %275 = trunc i80 %274 to i64
-  call fastcc void @transparent_crc(i64 %275, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.153, i64 0, i64 0), i32 signext undef)
-  %276 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897 to i80*), align 8
-  %277 = shl i80 %276, 23
-  %278 = ashr i80 %277, 64
-  %279 = shl nsw i80 %278, 32
-  %280 = trunc i80 %279 to i64
-  %281 = ashr exact i64 %280, 32
-  call fastcc void @transparent_crc(i64 %281, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.154, i64 0, i64 0), i32 signext undef)
-  %282 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897 to i80*), align 8
-  %283 = shl i80 %282, 39
-  %284 = ashr i80 %283, 62
-  %285 = shl nsw i80 %284, 32
-  %286 = trunc i80 %285 to i64
-  %287 = ashr exact i64 %286, 32
-  call fastcc void @transparent_crc(i64 %287, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.155, i64 0, i64 0), i32 signext undef)
-  %288 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897 to i80*), align 8
-  %289 = shl i80 %288, 57
-  %290 = ashr i80 %289, 58
-  %291 = shl nsw i80 %290, 32
-  %292 = trunc i80 %291 to i64
-  %293 = ashr exact i64 %292, 32
-  call fastcc void @transparent_crc(i64 %293, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.156, i64 0, i64 0), i32 signext undef)
-  %294 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897, i64 0, i32 1) to i80*), align 2
-  %295 = lshr i80 %294, 49
-  %296 = trunc i80 %295 to i64
-  call fastcc void @transparent_crc(i64 %296, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.157, i64 0, i64 0), i32 signext undef)
-  %297 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897, i64 0, i32 1) to i80*), align 2
-  %298 = lshr i80 %297, 24
-  %299 = trunc i80 %298 to i64
-  %300 = and i64 %299, 33554431
-  call fastcc void @transparent_crc(i64 %300, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.158, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.160, i64 0, i64 0), i32 signext undef)
-  %301 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_897, i64 0, i32 1) to i80*), align 2
-  %302 = shl i80 %301, 69
-  %303 = ashr i80 %302, 72
-  %304 = shl nsw i80 %303, 32
-  %305 = trunc i80 %304 to i64
-  %306 = ashr exact i64 %305, 32
-  call fastcc void @transparent_crc(i64 %306, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.161, i64 0, i64 0), i32 signext undef)
-  %307 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_898 to i80*), align 8
-  %308 = lshr i80 %307, 57
-  %309 = trunc i80 %308 to i64
-  call fastcc void @transparent_crc(i64 %309, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.162, i64 0, i64 0), i32 signext undef)
-  %310 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_898 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.163, i64 0, i64 0), i32 signext undef)
-  %311 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_898 to i80*), align 8
-  %312 = shl i80 %311, 39
-  %313 = ashr i80 %312, 62
-  %314 = shl nsw i80 %313, 32
-  %315 = trunc i80 %314 to i64
-  %316 = ashr exact i64 %315, 32
-  call fastcc void @transparent_crc(i64 %316, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.164, i64 0, i64 0), i32 signext undef)
-  %317 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_898 to i80*), align 8
-  %318 = shl i80 %317, 57
-  %319 = ashr i80 %318, 58
-  %320 = shl nsw i80 %319, 32
-  %321 = trunc i80 %320 to i64
-  %322 = ashr exact i64 %321, 32
-  call fastcc void @transparent_crc(i64 %322, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.165, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.167, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.169, i64 0, i64 0), i32 signext undef)
-  %323 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_898, i64 0, i32 1) to i80*), align 2
-  %324 = shl i80 %323, 69
-  %325 = ashr i80 %324, 72
-  %326 = shl nsw i80 %325, 32
-  %327 = trunc i80 %326 to i64
-  %328 = ashr exact i64 %327, 32
-  call fastcc void @transparent_crc(i64 %328, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.170, i64 0, i64 0), i32 signext undef)
-  %329 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899 to i80*), align 8
-  %330 = lshr i80 %329, 57
+  %276 = ashr exact i64 %275, 32
+  call fastcc void @transparent_crc(i64 %276, ptr @.str.154, i32 signext undef)
+  %277 = load volatile i80, ptr @g_897, align 8
+  %278 = shl i80 %277, 39
+  %279 = ashr i80 %278, 62
+  %280 = shl nsw i80 %279, 32
+  %281 = trunc i80 %280 to i64
+  %282 = ashr exact i64 %281, 32
+  call fastcc void @transparent_crc(i64 %282, ptr @.str.155, i32 signext undef)
+  %283 = load volatile i80, ptr @g_897, align 8
+  %284 = shl i80 %283, 57
+  %285 = ashr i80 %284, 58
+  %286 = shl nsw i80 %285, 32
+  %287 = trunc i80 %286 to i64
+  %288 = ashr exact i64 %287, 32
+  call fastcc void @transparent_crc(i64 %288, ptr @.str.156, i32 signext undef)
+  %289 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_897, i64 0, i32 1), align 2
+  %290 = lshr i80 %289, 49
+  %291 = trunc i80 %290 to i64
+  call fastcc void @transparent_crc(i64 %291, ptr @.str.157, i32 signext undef)
+  %292 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_897, i64 0, i32 1), align 2
+  %293 = lshr i80 %292, 24
+  %294 = trunc i80 %293 to i64
+  %295 = and i64 %294, 33554431
+  call fastcc void @transparent_crc(i64 %295, ptr @.str.158, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.160, i32 signext undef)
+  %296 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_897, i64 0, i32 1), align 2
+  %297 = shl i80 %296, 69
+  %298 = ashr i80 %297, 72
+  %299 = shl nsw i80 %298, 32
+  %300 = trunc i80 %299 to i64
+  %301 = ashr exact i64 %300, 32
+  call fastcc void @transparent_crc(i64 %301, ptr @.str.161, i32 signext undef)
+  %302 = load volatile i80, ptr @g_898, align 8
+  %303 = lshr i80 %302, 57
+  %304 = trunc i80 %303 to i64
+  call fastcc void @transparent_crc(i64 %304, ptr @.str.162, i32 signext undef)
+  %305 = load volatile i80, ptr @g_898, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.163, i32 signext undef)
+  %306 = load volatile i80, ptr @g_898, align 8
+  %307 = shl i80 %306, 39
+  %308 = ashr i80 %307, 62
+  %309 = shl nsw i80 %308, 32
+  %310 = trunc i80 %309 to i64
+  %311 = ashr exact i64 %310, 32
+  call fastcc void @transparent_crc(i64 %311, ptr @.str.164, i32 signext undef)
+  %312 = load volatile i80, ptr @g_898, align 8
+  %313 = shl i80 %312, 57
+  %314 = ashr i80 %313, 58
+  %315 = shl nsw i80 %314, 32
+  %316 = trunc i80 %315 to i64
+  %317 = ashr exact i64 %316, 32
+  call fastcc void @transparent_crc(i64 %317, ptr @.str.165, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.167, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.169, i32 signext undef)
+  %318 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_898, i64 0, i32 1), align 2
+  %319 = shl i80 %318, 69
+  %320 = ashr i80 %319, 72
+  %321 = shl nsw i80 %320, 32
+  %322 = trunc i80 %321 to i64
+  %323 = ashr exact i64 %322, 32
+  call fastcc void @transparent_crc(i64 %323, ptr @.str.170, i32 signext undef)
+  %324 = load volatile i80, ptr @g_899, align 8
+  %325 = lshr i80 %324, 57
+  %326 = trunc i80 %325 to i64
+  call fastcc void @transparent_crc(i64 %326, ptr @.str.171, i32 signext undef)
+  %327 = load volatile i80, ptr @g_899, align 8
+  %328 = shl i80 %327, 23
+  %329 = ashr i80 %328, 64
+  %330 = shl nsw i80 %329, 32
   %331 = trunc i80 %330 to i64
-  call fastcc void @transparent_crc(i64 %331, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.171, i64 0, i64 0), i32 signext undef)
-  %332 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899 to i80*), align 8
-  %333 = shl i80 %332, 23
-  %334 = ashr i80 %333, 64
-  %335 = shl nsw i80 %334, 32
-  %336 = trunc i80 %335 to i64
-  %337 = ashr exact i64 %336, 32
-  call fastcc void @transparent_crc(i64 %337, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.172, i64 0, i64 0), i32 signext undef)
-  %338 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899 to i80*), align 8
-  %339 = shl i80 %338, 39
-  %340 = ashr i80 %339, 62
-  %341 = shl nsw i80 %340, 32
-  %342 = trunc i80 %341 to i64
-  %343 = ashr exact i64 %342, 32
-  call fastcc void @transparent_crc(i64 %343, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.173, i64 0, i64 0), i32 signext undef)
-  %344 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899 to i80*), align 8
-  %345 = shl i80 %344, 57
-  %346 = ashr i80 %345, 58
-  %347 = shl nsw i80 %346, 32
-  %348 = trunc i80 %347 to i64
-  %349 = ashr exact i64 %348, 32
-  call fastcc void @transparent_crc(i64 %349, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.174, i64 0, i64 0), i32 signext undef)
-  %350 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899, i64 0, i32 1) to i80*), align 2
-  %351 = lshr i80 %350, 49
-  %352 = trunc i80 %351 to i64
-  call fastcc void @transparent_crc(i64 %352, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.175, i64 0, i64 0), i32 signext undef)
-  %353 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.176, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.177, i64 0, i64 0), i32 signext undef)
-  %354 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899, i64 0, i32 1) to i80*), align 2
-  %355 = lshr i80 %354, 11
-  %356 = trunc i80 %355 to i64
-  %357 = and i64 %356, 1
-  call fastcc void @transparent_crc(i64 %357, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.178, i64 0, i64 0), i32 signext undef)
-  %358 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_899, i64 0, i32 1) to i80*), align 2
-  %359 = shl i80 %358, 69
-  %360 = ashr i80 %359, 72
-  %361 = shl nsw i80 %360, 32
-  %362 = trunc i80 %361 to i64
-  %363 = ashr exact i64 %362, 32
-  call fastcc void @transparent_crc(i64 %363, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.179, i64 0, i64 0), i32 signext undef)
-  %364 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900 to i80*), align 8
-  %365 = lshr i80 %364, 57
+  %332 = ashr exact i64 %331, 32
+  call fastcc void @transparent_crc(i64 %332, ptr @.str.172, i32 signext undef)
+  %333 = load volatile i80, ptr @g_899, align 8
+  %334 = shl i80 %333, 39
+  %335 = ashr i80 %334, 62
+  %336 = shl nsw i80 %335, 32
+  %337 = trunc i80 %336 to i64
+  %338 = ashr exact i64 %337, 32
+  call fastcc void @transparent_crc(i64 %338, ptr @.str.173, i32 signext undef)
+  %339 = load volatile i80, ptr @g_899, align 8
+  %340 = shl i80 %339, 57
+  %341 = ashr i80 %340, 58
+  %342 = shl nsw i80 %341, 32
+  %343 = trunc i80 %342 to i64
+  %344 = ashr exact i64 %343, 32
+  call fastcc void @transparent_crc(i64 %344, ptr @.str.174, i32 signext undef)
+  %345 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_899, i64 0, i32 1), align 2
+  %346 = lshr i80 %345, 49
+  %347 = trunc i80 %346 to i64
+  call fastcc void @transparent_crc(i64 %347, ptr @.str.175, i32 signext undef)
+  %348 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_899, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.176, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.177, i32 signext undef)
+  %349 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_899, i64 0, i32 1), align 2
+  %350 = lshr i80 %349, 11
+  %351 = trunc i80 %350 to i64
+  %352 = and i64 %351, 1
+  call fastcc void @transparent_crc(i64 %352, ptr @.str.178, i32 signext undef)
+  %353 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_899, i64 0, i32 1), align 2
+  %354 = shl i80 %353, 69
+  %355 = ashr i80 %354, 72
+  %356 = shl nsw i80 %355, 32
+  %357 = trunc i80 %356 to i64
+  %358 = ashr exact i64 %357, 32
+  call fastcc void @transparent_crc(i64 %358, ptr @.str.179, i32 signext undef)
+  %359 = load volatile i80, ptr @g_900, align 8
+  %360 = lshr i80 %359, 57
+  %361 = trunc i80 %360 to i64
+  call fastcc void @transparent_crc(i64 %361, ptr @.str.180, i32 signext undef)
+  %362 = load volatile i80, ptr @g_900, align 8
+  %363 = shl i80 %362, 23
+  %364 = ashr i80 %363, 64
+  %365 = shl nsw i80 %364, 32
   %366 = trunc i80 %365 to i64
-  call fastcc void @transparent_crc(i64 %366, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.180, i64 0, i64 0), i32 signext undef)
-  %367 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900 to i80*), align 8
-  %368 = shl i80 %367, 23
-  %369 = ashr i80 %368, 64
-  %370 = shl nsw i80 %369, 32
-  %371 = trunc i80 %370 to i64
-  %372 = ashr exact i64 %371, 32
-  call fastcc void @transparent_crc(i64 %372, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.181, i64 0, i64 0), i32 signext undef)
-  %373 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900 to i80*), align 8
-  %374 = shl i80 %373, 39
-  %375 = ashr i80 %374, 62
-  %376 = shl nsw i80 %375, 32
-  %377 = trunc i80 %376 to i64
-  %378 = ashr exact i64 %377, 32
-  call fastcc void @transparent_crc(i64 %378, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.182, i64 0, i64 0), i32 signext undef)
-  %379 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900 to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.184, i64 0, i64 0), i32 signext undef)
-  %380 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.185, i64 0, i64 0), i32 signext undef)
-  %381 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900, i64 0, i32 1) to i80*), align 2
-  %382 = shl i80 %381, 56
-  %383 = ashr i80 %382, 68
-  %384 = shl nsw i80 %383, 32
-  %385 = trunc i80 %384 to i64
-  %386 = ashr exact i64 %385, 32
-  call fastcc void @transparent_crc(i64 %386, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.186, i64 0, i64 0), i32 signext undef)
-  %387 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900, i64 0, i32 1) to i80*), align 2
-  %388 = lshr i80 %387, 11
-  %389 = trunc i80 %388 to i64
-  %390 = and i64 %389, 1
-  call fastcc void @transparent_crc(i64 %390, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.187, i64 0, i64 0), i32 signext undef)
-  %391 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_900, i64 0, i32 1) to i80*), align 2
-  %392 = shl i80 %391, 69
-  %393 = ashr i80 %392, 72
-  %394 = shl nsw i80 %393, 32
-  %395 = trunc i80 %394 to i64
-  %396 = ashr exact i64 %395, 32
-  call fastcc void @transparent_crc(i64 %396, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.188, i64 0, i64 0), i32 signext undef)
-  %397 = load volatile i80, i80* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901 to i80*), align 8
-  %398 = lshr i80 %397, 57
+  %367 = ashr exact i64 %366, 32
+  call fastcc void @transparent_crc(i64 %367, ptr @.str.181, i32 signext undef)
+  %368 = load volatile i80, ptr @g_900, align 8
+  %369 = shl i80 %368, 39
+  %370 = ashr i80 %369, 62
+  %371 = shl nsw i80 %370, 32
+  %372 = trunc i80 %371 to i64
+  %373 = ashr exact i64 %372, 32
+  call fastcc void @transparent_crc(i64 %373, ptr @.str.182, i32 signext undef)
+  %374 = load volatile i80, ptr @g_900, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.184, i32 signext undef)
+  %375 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_900, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.185, i32 signext undef)
+  %376 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_900, i64 0, i32 1), align 2
+  %377 = shl i80 %376, 56
+  %378 = ashr i80 %377, 68
+  %379 = shl nsw i80 %378, 32
+  %380 = trunc i80 %379 to i64
+  %381 = ashr exact i64 %380, 32
+  call fastcc void @transparent_crc(i64 %381, ptr @.str.186, i32 signext undef)
+  %382 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_900, i64 0, i32 1), align 2
+  %383 = lshr i80 %382, 11
+  %384 = trunc i80 %383 to i64
+  %385 = and i64 %384, 1
+  call fastcc void @transparent_crc(i64 %385, ptr @.str.187, i32 signext undef)
+  %386 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_900, i64 0, i32 1), align 2
+  %387 = shl i80 %386, 69
+  %388 = ashr i80 %387, 72
+  %389 = shl nsw i80 %388, 32
+  %390 = trunc i80 %389 to i64
+  %391 = ashr exact i64 %390, 32
+  call fastcc void @transparent_crc(i64 %391, ptr @.str.188, i32 signext undef)
+  %392 = load volatile i80, ptr @g_901, align 8
+  %393 = lshr i80 %392, 57
+  %394 = trunc i80 %393 to i64
+  call fastcc void @transparent_crc(i64 %394, ptr @.str.189, i32 signext undef)
+  %395 = load volatile i80, ptr @g_901, align 8
+  %396 = shl i80 %395, 23
+  %397 = ashr i80 %396, 64
+  %398 = shl nsw i80 %397, 32
   %399 = trunc i80 %398 to i64
-  call fastcc void @transparent_crc(i64 %399, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.189, i64 0, i64 0), i32 signext undef)
-  %400 = load volatile i80, i80* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901 to i80*), align 8
-  %401 = shl i80 %400, 23
-  %402 = ashr i80 %401, 64
-  %403 = shl nsw i80 %402, 32
-  %404 = trunc i80 %403 to i64
-  %405 = ashr exact i64 %404, 32
-  call fastcc void @transparent_crc(i64 %405, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.190, i64 0, i64 0), i32 signext undef)
-  %406 = load volatile i80, i80* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901 to i80*), align 8
-  %407 = shl i80 %406, 39
-  %408 = ashr i80 %407, 62
-  %409 = shl nsw i80 %408, 32
-  %410 = trunc i80 %409 to i64
-  %411 = ashr exact i64 %410, 32
-  call fastcc void @transparent_crc(i64 %411, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.191, i64 0, i64 0), i32 signext undef)
-  %412 = load volatile i80, i80* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901 to i80*), align 8
-  %413 = shl i80 %412, 57
-  %414 = ashr i80 %413, 58
-  %415 = shl nsw i80 %414, 32
-  %416 = trunc i80 %415 to i64
-  %417 = ashr exact i64 %416, 32
-  call fastcc void @transparent_crc(i64 %417, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.192, i64 0, i64 0), i32 signext undef)
-  %418 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 0, i32 1) to i80*), align 2
-  %419 = lshr i80 %418, 49
-  %420 = trunc i80 %419 to i64
-  call fastcc void @transparent_crc(i64 %420, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.193, i64 0, i64 0), i32 signext undef)
-  %421 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.194, i64 0, i64 0), i32 signext undef)
-  %422 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 0, i32 1) to i80*), align 2
-  %423 = shl i80 %422, 56
-  %424 = ashr i80 %423, 68
-  %425 = shl nsw i80 %424, 32
-  %426 = trunc i80 %425 to i64
-  %427 = ashr exact i64 %426, 32
-  call fastcc void @transparent_crc(i64 %427, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.195, i64 0, i64 0), i32 signext undef)
-  %428 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 0, i32 1) to i80*), align 2
-  %429 = lshr i80 %428, 11
-  %430 = trunc i80 %429 to i64
-  %431 = and i64 %430, 1
-  call fastcc void @transparent_crc(i64 %431, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.196, i64 0, i64 0), i32 signext undef)
-  %432 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 0, i32 1) to i80*), align 2
-  %433 = shl i80 %432, 69
-  %434 = ashr i80 %433, 72
-  %435 = shl nsw i80 %434, 32
-  %436 = trunc i80 %435 to i64
-  %437 = ashr exact i64 %436, 32
-  call fastcc void @transparent_crc(i64 %437, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.197, i64 0, i64 0), i32 signext undef)
-  %438 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %439 = lshr i80 %438, 57
+  %400 = ashr exact i64 %399, 32
+  call fastcc void @transparent_crc(i64 %400, ptr @.str.190, i32 signext undef)
+  %401 = load volatile i80, ptr @g_901, align 8
+  %402 = shl i80 %401, 39
+  %403 = ashr i80 %402, 62
+  %404 = shl nsw i80 %403, 32
+  %405 = trunc i80 %404 to i64
+  %406 = ashr exact i64 %405, 32
+  call fastcc void @transparent_crc(i64 %406, ptr @.str.191, i32 signext undef)
+  %407 = load volatile i80, ptr @g_901, align 8
+  %408 = shl i80 %407, 57
+  %409 = ashr i80 %408, 58
+  %410 = shl nsw i80 %409, 32
+  %411 = trunc i80 %410 to i64
+  %412 = ashr exact i64 %411, 32
+  call fastcc void @transparent_crc(i64 %412, ptr @.str.192, i32 signext undef)
+  %413 = load i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 0, i32 1), align 2
+  %414 = lshr i80 %413, 49
+  %415 = trunc i80 %414 to i64
+  call fastcc void @transparent_crc(i64 %415, ptr @.str.193, i32 signext undef)
+  %416 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.194, i32 signext undef)
+  %417 = load i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 0, i32 1), align 2
+  %418 = shl i80 %417, 56
+  %419 = ashr i80 %418, 68
+  %420 = shl nsw i80 %419, 32
+  %421 = trunc i80 %420 to i64
+  %422 = ashr exact i64 %421, 32
+  call fastcc void @transparent_crc(i64 %422, ptr @.str.195, i32 signext undef)
+  %423 = load i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 0, i32 1), align 2
+  %424 = lshr i80 %423, 11
+  %425 = trunc i80 %424 to i64
+  %426 = and i64 %425, 1
+  call fastcc void @transparent_crc(i64 %426, ptr @.str.196, i32 signext undef)
+  %427 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 0, i32 1), align 2
+  %428 = shl i80 %427, 69
+  %429 = ashr i80 %428, 72
+  %430 = shl nsw i80 %429, 32
+  %431 = trunc i80 %430 to i64
+  %432 = ashr exact i64 %431, 32
+  call fastcc void @transparent_crc(i64 %432, ptr @.str.197, i32 signext undef)
+  %433 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 0, i32 0), align 4
+  %434 = lshr i80 %433, 57
+  %435 = trunc i80 %434 to i64
+  call fastcc void @transparent_crc(i64 %435, ptr @.str.189, i32 signext undef)
+  %436 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 0, i32 0), align 4
+  %437 = shl i80 %436, 23
+  %438 = ashr i80 %437, 64
+  %439 = shl nsw i80 %438, 32
   %440 = trunc i80 %439 to i64
-  call fastcc void @transparent_crc(i64 %440, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.189, i64 0, i64 0), i32 signext undef)
-  %441 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %442 = shl i80 %441, 23
-  %443 = ashr i80 %442, 64
-  %444 = shl nsw i80 %443, 32
-  %445 = trunc i80 %444 to i64
-  %446 = ashr exact i64 %445, 32
-  call fastcc void @transparent_crc(i64 %446, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.190, i64 0, i64 0), i32 signext undef)
-  %447 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %448 = shl i80 %447, 39
-  %449 = ashr i80 %448, 62
-  %450 = shl nsw i80 %449, 32
-  %451 = trunc i80 %450 to i64
-  %452 = ashr exact i64 %451, 32
-  call fastcc void @transparent_crc(i64 %452, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.191, i64 0, i64 0), i32 signext undef)
-  %453 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %454 = shl i80 %453, 57
-  %455 = ashr i80 %454, 58
-  %456 = shl nsw i80 %455, 32
-  %457 = trunc i80 %456 to i64
-  %458 = ashr exact i64 %457, 32
-  call fastcc void @transparent_crc(i64 %458, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.192, i64 0, i64 0), i32 signext undef)
-  %459 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 1) to i80*), align 2
-  %460 = lshr i80 %459, 49
-  %461 = trunc i80 %460 to i64
-  call fastcc void @transparent_crc(i64 %461, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.193, i64 0, i64 0), i32 signext undef)
-  %462 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 1) to i80*), align 2
-  %463 = lshr i80 %462, 24
-  %464 = trunc i80 %463 to i64
-  %465 = and i64 %464, 33554431
-  call fastcc void @transparent_crc(i64 %465, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.194, i64 0, i64 0), i32 signext undef)
-  %466 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_901, i64 0, i32 1, i32 1) to i80*), align 2
-  %467 = shl i80 %466, 56
-  %468 = ashr i80 %467, 68
-  %469 = shl nsw i80 %468, 32
-  %470 = trunc i80 %469 to i64
-  %471 = ashr exact i64 %470, 32
-  call fastcc void @transparent_crc(i64 %471, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.195, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.209, i64 0, i64 0), i32 signext undef)
-  %472 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_903 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.212, i64 0, i64 0), i32 signext undef)
-  %473 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_903, i64 0, i32 1) to i80*), align 2
-  %474 = shl i80 %473, 56
-  %475 = ashr i80 %474, 68
-  %476 = shl nsw i80 %475, 32
-  %477 = trunc i80 %476 to i64
-  %478 = ashr exact i64 %477, 32
-  call fastcc void @transparent_crc(i64 %478, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.213, i64 0, i64 0), i32 signext undef)
-  %479 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_903, i64 0, i32 1) to i80*), align 2
-  %480 = lshr i80 %479, 11
-  %481 = trunc i80 %480 to i64
-  %482 = and i64 %481, 1
-  call fastcc void @transparent_crc(i64 %482, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.214, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.215, i64 0, i64 0), i32 signext undef)
-  %483 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_904 to i80*), align 8
-  %484 = lshr i80 %483, 57
+  %441 = ashr exact i64 %440, 32
+  call fastcc void @transparent_crc(i64 %441, ptr @.str.190, i32 signext undef)
+  %442 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 0, i32 0), align 4
+  %443 = shl i80 %442, 39
+  %444 = ashr i80 %443, 62
+  %445 = shl nsw i80 %444, 32
+  %446 = trunc i80 %445 to i64
+  %447 = ashr exact i64 %446, 32
+  call fastcc void @transparent_crc(i64 %447, ptr @.str.191, i32 signext undef)
+  %448 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 0, i32 0), align 4
+  %449 = shl i80 %448, 57
+  %450 = ashr i80 %449, 58
+  %451 = shl nsw i80 %450, 32
+  %452 = trunc i80 %451 to i64
+  %453 = ashr exact i64 %452, 32
+  call fastcc void @transparent_crc(i64 %453, ptr @.str.192, i32 signext undef)
+  %454 = load i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 1), align 2
+  %455 = lshr i80 %454, 49
+  %456 = trunc i80 %455 to i64
+  call fastcc void @transparent_crc(i64 %456, ptr @.str.193, i32 signext undef)
+  %457 = load volatile i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 1), align 2
+  %458 = lshr i80 %457, 24
+  %459 = trunc i80 %458 to i64
+  %460 = and i64 %459, 33554431
+  call fastcc void @transparent_crc(i64 %460, ptr @.str.194, i32 signext undef)
+  %461 = load i80, ptr getelementptr inbounds (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_901, i64 0, i32 1, i32 1), align 2
+  %462 = shl i80 %461, 56
+  %463 = ashr i80 %462, 68
+  %464 = shl nsw i80 %463, 32
+  %465 = trunc i80 %464 to i64
+  %466 = ashr exact i64 %465, 32
+  call fastcc void @transparent_crc(i64 %466, ptr @.str.195, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.209, i32 signext undef)
+  %467 = load volatile i80, ptr @g_903, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.212, i32 signext undef)
+  %468 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_903, i64 0, i32 1), align 2
+  %469 = shl i80 %468, 56
+  %470 = ashr i80 %469, 68
+  %471 = shl nsw i80 %470, 32
+  %472 = trunc i80 %471 to i64
+  %473 = ashr exact i64 %472, 32
+  call fastcc void @transparent_crc(i64 %473, ptr @.str.213, i32 signext undef)
+  %474 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_903, i64 0, i32 1), align 2
+  %475 = lshr i80 %474, 11
+  %476 = trunc i80 %475 to i64
+  %477 = and i64 %476, 1
+  call fastcc void @transparent_crc(i64 %477, ptr @.str.214, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.215, i32 signext undef)
+  %478 = load volatile i80, ptr @g_904, align 8
+  %479 = lshr i80 %478, 57
+  %480 = trunc i80 %479 to i64
+  call fastcc void @transparent_crc(i64 %480, ptr @.str.216, i32 signext undef)
+  %481 = load volatile i80, ptr @g_904, align 8
+  %482 = shl i80 %481, 23
+  %483 = ashr i80 %482, 64
+  %484 = shl nsw i80 %483, 32
   %485 = trunc i80 %484 to i64
-  call fastcc void @transparent_crc(i64 %485, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.216, i64 0, i64 0), i32 signext undef)
-  %486 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_904 to i80*), align 8
-  %487 = shl i80 %486, 23
-  %488 = ashr i80 %487, 64
-  %489 = shl nsw i80 %488, 32
-  %490 = trunc i80 %489 to i64
-  %491 = ashr exact i64 %490, 32
-  call fastcc void @transparent_crc(i64 %491, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.217, i64 0, i64 0), i32 signext undef)
-  %492 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_904 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.232, i64 0, i64 0), i32 signext undef)
-  %493 = load volatile i80, i80* undef, align 2
-  %494 = shl i80 %493, 69
-  %495 = ashr i80 %494, 72
-  %496 = shl nsw i80 %495, 32
+  %486 = ashr exact i64 %485, 32
+  call fastcc void @transparent_crc(i64 %486, ptr @.str.217, i32 signext undef)
+  %487 = load volatile i80, ptr @g_904, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.232, i32 signext undef)
+  %488 = load volatile i80, ptr undef, align 2
+  %489 = shl i80 %488, 69
+  %490 = ashr i80 %489, 72
+  %491 = shl nsw i80 %490, 32
+  %492 = trunc i80 %491 to i64
+  %493 = ashr exact i64 %492, 32
+  call fastcc void @transparent_crc(i64 %493, ptr @.str.233, i32 signext undef)
+  %494 = getelementptr inbounds [9 x [2 x [1 x %4]]], ptr bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_905 to ptr), i64 0, i64 0, i64 1, i64 0
+  %495 = load volatile i80, ptr %494, align 2
+  %496 = lshr i80 %495, 57
   %497 = trunc i80 %496 to i64
-  %498 = ashr exact i64 %497, 32
-  call fastcc void @transparent_crc(i64 %498, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.233, i64 0, i64 0), i32 signext undef)
-  %499 = getelementptr inbounds [9 x [2 x [1 x %4]]], [9 x [2 x [1 x %4]]]* bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_905 to [9 x [2 x [1 x %4]]]*), i64 0, i64 0, i64 1, i64 0
-  %500 = bitcast %4* %499 to i80*
-  %501 = load volatile i80, i80* %500, align 2
-  %502 = lshr i80 %501, 57
-  %503 = trunc i80 %502 to i64
-  call fastcc void @transparent_crc(i64 %503, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.225, i64 0, i64 0), i32 signext undef)
-  %504 = load volatile i80, i80* %500, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.229, i64 0, i64 0), i32 signext undef)
-  %505 = load volatile i80, i80* undef, align 2
-  %506 = lshr i80 %505, 24
+  call fastcc void @transparent_crc(i64 %497, ptr @.str.225, i32 signext undef)
+  %498 = load volatile i80, ptr %494, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.229, i32 signext undef)
+  %499 = load volatile i80, ptr undef, align 2
+  %500 = lshr i80 %499, 24
+  %501 = trunc i80 %500 to i64
+  %502 = and i64 %501, 33554431
+  call fastcc void @transparent_crc(i64 %502, ptr @.str.230, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.233, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.236, i32 signext undef)
+  %503 = load volatile i80, ptr undef, align 2
+  %504 = shl i80 %503, 39
+  %505 = ashr i80 %504, 62
+  %506 = shl nsw i80 %505, 32
   %507 = trunc i80 %506 to i64
-  %508 = and i64 %507, 33554431
-  call fastcc void @transparent_crc(i64 %508, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.230, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.233, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.236, i64 0, i64 0), i32 signext undef)
-  %509 = load volatile i80, i80* undef, align 2
-  %510 = shl i80 %509, 39
-  %511 = ashr i80 %510, 62
-  %512 = shl nsw i80 %511, 32
-  %513 = trunc i80 %512 to i64
-  %514 = ashr exact i64 %513, 32
-  call fastcc void @transparent_crc(i64 %514, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.237, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.239, i64 0, i64 0), i32 signext undef)
-  %515 = load volatile i80, i80* undef, align 2
-  %516 = lshr i80 %515, 24
+  %508 = ashr exact i64 %507, 32
+  call fastcc void @transparent_crc(i64 %508, ptr @.str.237, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.239, i32 signext undef)
+  %509 = load volatile i80, ptr undef, align 2
+  %510 = lshr i80 %509, 24
+  %511 = trunc i80 %510 to i64
+  %512 = and i64 %511, 33554431
+  call fastcc void @transparent_crc(i64 %512, ptr @.str.240, i32 signext undef)
+  %513 = load i80, ptr undef, align 2
+  %514 = shl i80 %513, 56
+  %515 = ashr i80 %514, 68
+  %516 = shl nsw i80 %515, 32
   %517 = trunc i80 %516 to i64
-  %518 = and i64 %517, 33554431
-  call fastcc void @transparent_crc(i64 %518, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.240, i64 0, i64 0), i32 signext undef)
-  %519 = load i80, i80* undef, align 2
-  %520 = shl i80 %519, 56
-  %521 = ashr i80 %520, 68
-  %522 = shl nsw i80 %521, 32
-  %523 = trunc i80 %522 to i64
-  %524 = ashr exact i64 %523, 32
-  call fastcc void @transparent_crc(i64 %524, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.241, i64 0, i64 0), i32 signext undef)
-  %525 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907 to i80*), align 8
-  %526 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907 to i80*), align 8
-  %527 = shl i80 %526, 39
-  %528 = ashr i80 %527, 62
+  %518 = ashr exact i64 %517, 32
+  call fastcc void @transparent_crc(i64 %518, ptr @.str.241, i32 signext undef)
+  %519 = load volatile i80, ptr @g_907, align 8
+  %520 = load volatile i80, ptr @g_907, align 8
+  %521 = shl i80 %520, 39
+  %522 = ashr i80 %521, 62
+  %523 = shl nsw i80 %522, 32
+  %524 = trunc i80 %523 to i64
+  %525 = ashr exact i64 %524, 32
+  call fastcc void @transparent_crc(i64 %525, ptr @.str.246, i32 signext undef)
+  %526 = load volatile i80, ptr @g_907, align 8
+  %527 = shl i80 %526, 57
+  %528 = ashr i80 %527, 58
   %529 = shl nsw i80 %528, 32
   %530 = trunc i80 %529 to i64
   %531 = ashr exact i64 %530, 32
-  call fastcc void @transparent_crc(i64 %531, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.246, i64 0, i64 0), i32 signext undef)
-  %532 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907 to i80*), align 8
-  %533 = shl i80 %532, 57
-  %534 = ashr i80 %533, 58
-  %535 = shl nsw i80 %534, 32
-  %536 = trunc i80 %535 to i64
-  %537 = ashr exact i64 %536, 32
-  call fastcc void @transparent_crc(i64 %537, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.247, i64 0, i64 0), i32 signext undef)
-  %538 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907, i64 0, i32 1) to i80*), align 2
-  %539 = lshr i80 %538, 49
+  call fastcc void @transparent_crc(i64 %531, ptr @.str.247, i32 signext undef)
+  %532 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_907, i64 0, i32 1), align 2
+  %533 = lshr i80 %532, 49
+  %534 = trunc i80 %533 to i64
+  call fastcc void @transparent_crc(i64 %534, ptr @.str.248, i32 signext undef)
+  %535 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_907, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.249, i32 signext undef)
+  %536 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_907, i64 0, i32 1), align 2
+  %537 = shl i80 %536, 56
+  %538 = ashr i80 %537, 68
+  %539 = shl nsw i80 %538, 32
   %540 = trunc i80 %539 to i64
-  call fastcc void @transparent_crc(i64 %540, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.248, i64 0, i64 0), i32 signext undef)
-  %541 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.249, i64 0, i64 0), i32 signext undef)
-  %542 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907, i64 0, i32 1) to i80*), align 2
-  %543 = shl i80 %542, 56
-  %544 = ashr i80 %543, 68
-  %545 = shl nsw i80 %544, 32
-  %546 = trunc i80 %545 to i64
-  %547 = ashr exact i64 %546, 32
-  call fastcc void @transparent_crc(i64 %547, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.250, i64 0, i64 0), i32 signext undef)
-  %548 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907, i64 0, i32 1) to i80*), align 2
-  %549 = lshr i80 %548, 11
-  %550 = trunc i80 %549 to i64
-  %551 = and i64 %550, 1
-  call fastcc void @transparent_crc(i64 %551, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.251, i64 0, i64 0), i32 signext undef)
-  %552 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_907, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.253, i64 0, i64 0), i32 signext undef)
-  %553 = load volatile i80, i80* undef, align 2
-  %554 = shl i80 %553, 23
-  %555 = ashr i80 %554, 64
+  %541 = ashr exact i64 %540, 32
+  call fastcc void @transparent_crc(i64 %541, ptr @.str.250, i32 signext undef)
+  %542 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_907, i64 0, i32 1), align 2
+  %543 = lshr i80 %542, 11
+  %544 = trunc i80 %543 to i64
+  %545 = and i64 %544, 1
+  call fastcc void @transparent_crc(i64 %545, ptr @.str.251, i32 signext undef)
+  %546 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_907, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.253, i32 signext undef)
+  %547 = load volatile i80, ptr undef, align 2
+  %548 = shl i80 %547, 23
+  %549 = ashr i80 %548, 64
+  %550 = shl nsw i80 %549, 32
+  %551 = trunc i80 %550 to i64
+  %552 = ashr exact i64 %551, 32
+  call fastcc void @transparent_crc(i64 %552, ptr @.str.254, i32 signext undef)
+  %553 = load volatile i80, ptr undef, align 2
+  %554 = shl i80 %553, 39
+  %555 = ashr i80 %554, 62
   %556 = shl nsw i80 %555, 32
   %557 = trunc i80 %556 to i64
   %558 = ashr exact i64 %557, 32
-  call fastcc void @transparent_crc(i64 %558, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.254, i64 0, i64 0), i32 signext undef)
-  %559 = load volatile i80, i80* undef, align 2
-  %560 = shl i80 %559, 39
-  %561 = ashr i80 %560, 62
+  call fastcc void @transparent_crc(i64 %558, ptr @.str.255, i32 signext undef)
+  %559 = load volatile i80, ptr undef, align 2
+  %560 = shl i80 %559, 57
+  %561 = ashr i80 %560, 58
   %562 = shl nsw i80 %561, 32
   %563 = trunc i80 %562 to i64
   %564 = ashr exact i64 %563, 32
-  call fastcc void @transparent_crc(i64 %564, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.255, i64 0, i64 0), i32 signext undef)
-  %565 = load volatile i80, i80* undef, align 2
-  %566 = shl i80 %565, 57
-  %567 = ashr i80 %566, 58
+  call fastcc void @transparent_crc(i64 %564, ptr @.str.256, i32 signext undef)
+  %565 = load i80, ptr undef, align 2
+  %566 = shl i80 %565, 56
+  %567 = ashr i80 %566, 68
   %568 = shl nsw i80 %567, 32
   %569 = trunc i80 %568 to i64
   %570 = ashr exact i64 %569, 32
-  call fastcc void @transparent_crc(i64 %570, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.256, i64 0, i64 0), i32 signext undef)
-  %571 = load i80, i80* undef, align 2
-  %572 = shl i80 %571, 56
-  %573 = ashr i80 %572, 68
-  %574 = shl nsw i80 %573, 32
-  %575 = trunc i80 %574 to i64
-  %576 = ashr exact i64 %575, 32
-  call fastcc void @transparent_crc(i64 %576, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.259, i64 0, i64 0), i32 signext undef)
-  %577 = load i80, i80* undef, align 2
-  %578 = lshr i80 %577, 11
+  call fastcc void @transparent_crc(i64 %570, ptr @.str.259, i32 signext undef)
+  %571 = load i80, ptr undef, align 2
+  %572 = lshr i80 %571, 11
+  %573 = trunc i80 %572 to i64
+  %574 = and i64 %573, 1
+  call fastcc void @transparent_crc(i64 %574, ptr @.str.260, i32 signext undef)
+  %575 = load volatile i80, ptr undef, align 2
+  %576 = shl i80 %575, 69
+  %577 = ashr i80 %576, 72
+  %578 = shl nsw i80 %577, 32
   %579 = trunc i80 %578 to i64
-  %580 = and i64 %579, 1
-  call fastcc void @transparent_crc(i64 %580, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.260, i64 0, i64 0), i32 signext undef)
-  %581 = load volatile i80, i80* undef, align 2
-  %582 = shl i80 %581, 69
-  %583 = ashr i80 %582, 72
-  %584 = shl nsw i80 %583, 32
-  %585 = trunc i80 %584 to i64
-  %586 = ashr exact i64 %585, 32
-  call fastcc void @transparent_crc(i64 %586, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.261, i64 0, i64 0), i32 signext undef)
-  %587 = getelementptr inbounds [3 x [10 x [4 x %4]]], [3 x [10 x [4 x %4]]]* bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_908 to [3 x [10 x [4 x %4]]]*), i64 0, i64 1, i64 0, i64 0
-  %588 = bitcast %4* %587 to i80*
-  %589 = load volatile i80, i80* %588, align 2
-  %590 = lshr i80 %589, 57
-  %591 = trunc i80 %590 to i64
-  call fastcc void @transparent_crc(i64 %591, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.253, i64 0, i64 0), i32 signext undef)
-  %592 = load volatile i80, i80* %588, align 2
-  %593 = shl i80 %592, 23
-  %594 = ashr i80 %593, 64
-  %595 = shl nsw i80 %594, 32
-  %596 = trunc i80 %595 to i64
-  %597 = ashr exact i64 %596, 32
-  call fastcc void @transparent_crc(i64 %597, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.254, i64 0, i64 0), i32 signext undef)
-  %598 = load volatile i80, i80* %588, align 2
-  %599 = shl i80 %598, 39
-  %600 = ashr i80 %599, 62
-  %601 = shl nsw i80 %600, 32
-  %602 = trunc i80 %601 to i64
-  %603 = ashr exact i64 %602, 32
-  call fastcc void @transparent_crc(i64 %603, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.255, i64 0, i64 0), i32 signext undef)
-  %604 = load volatile i80, i80* %588, align 2
-  %605 = shl i80 %604, 57
-  %606 = ashr i80 %605, 58
-  %607 = shl nsw i80 %606, 32
+  %580 = ashr exact i64 %579, 32
+  call fastcc void @transparent_crc(i64 %580, ptr @.str.261, i32 signext undef)
+  %581 = getelementptr inbounds [3 x [10 x [4 x %4]]], ptr bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_908 to ptr), i64 0, i64 1, i64 0, i64 0
+  %582 = load volatile i80, ptr %581, align 2
+  %583 = lshr i80 %582, 57
+  %584 = trunc i80 %583 to i64
+  call fastcc void @transparent_crc(i64 %584, ptr @.str.253, i32 signext undef)
+  %585 = load volatile i80, ptr %581, align 2
+  %586 = shl i80 %585, 23
+  %587 = ashr i80 %586, 64
+  %588 = shl nsw i80 %587, 32
+  %589 = trunc i80 %588 to i64
+  %590 = ashr exact i64 %589, 32
+  call fastcc void @transparent_crc(i64 %590, ptr @.str.254, i32 signext undef)
+  %591 = load volatile i80, ptr %581, align 2
+  %592 = shl i80 %591, 39
+  %593 = ashr i80 %592, 62
+  %594 = shl nsw i80 %593, 32
+  %595 = trunc i80 %594 to i64
+  %596 = ashr exact i64 %595, 32
+  call fastcc void @transparent_crc(i64 %596, ptr @.str.255, i32 signext undef)
+  %597 = load volatile i80, ptr %581, align 2
+  %598 = shl i80 %597, 57
+  %599 = ashr i80 %598, 58
+  %600 = shl nsw i80 %599, 32
+  %601 = trunc i80 %600 to i64
+  %602 = ashr exact i64 %601, 32
+  call fastcc void @transparent_crc(i64 %602, ptr @.str.256, i32 signext undef)
+  %603 = load i80, ptr undef, align 2
+  %604 = lshr i80 %603, 49
+  %605 = trunc i80 %604 to i64
+  call fastcc void @transparent_crc(i64 %605, ptr @.str.257, i32 signext undef)
+  %606 = load volatile i80, ptr undef, align 2
+  %607 = lshr i80 %606, 24
   %608 = trunc i80 %607 to i64
-  %609 = ashr exact i64 %608, 32
-  call fastcc void @transparent_crc(i64 %609, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.256, i64 0, i64 0), i32 signext undef)
-  %610 = load i80, i80* undef, align 2
-  %611 = lshr i80 %610, 49
-  %612 = trunc i80 %611 to i64
-  call fastcc void @transparent_crc(i64 %612, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.257, i64 0, i64 0), i32 signext undef)
-  %613 = load volatile i80, i80* undef, align 2
-  %614 = lshr i80 %613, 24
-  %615 = trunc i80 %614 to i64
-  %616 = and i64 %615, 33554431
-  call fastcc void @transparent_crc(i64 %616, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.258, i64 0, i64 0), i32 signext undef)
-  %617 = load i80, i80* undef, align 2
-  %618 = shl i80 %617, 56
-  %619 = ashr i80 %618, 68
-  %620 = shl nsw i80 %619, 32
-  %621 = trunc i80 %620 to i64
-  %622 = ashr exact i64 %621, 32
-  call fastcc void @transparent_crc(i64 %622, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.259, i64 0, i64 0), i32 signext undef)
-  %623 = load i80, i80* undef, align 2
-  %624 = lshr i80 %623, 11
-  %625 = trunc i80 %624 to i64
-  %626 = and i64 %625, 1
-  call fastcc void @transparent_crc(i64 %626, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.260, i64 0, i64 0), i32 signext undef)
-  %627 = load volatile i80, i80* undef, align 2
-  %628 = shl i80 %627, 69
-  %629 = ashr i80 %628, 72
-  %630 = shl nsw i80 %629, 32
-  %631 = trunc i80 %630 to i64
-  %632 = ashr exact i64 %631, 32
-  call fastcc void @transparent_crc(i64 %632, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.261, i64 0, i64 0), i32 signext undef)
-  %633 = load volatile i80, i80* undef, align 2
-  %634 = shl i80 %633, 57
-  %635 = ashr i80 %634, 58
-  %636 = shl nsw i80 %635, 32
+  %609 = and i64 %608, 33554431
+  call fastcc void @transparent_crc(i64 %609, ptr @.str.258, i32 signext undef)
+  %610 = load i80, ptr undef, align 2
+  %611 = shl i80 %610, 56
+  %612 = ashr i80 %611, 68
+  %613 = shl nsw i80 %612, 32
+  %614 = trunc i80 %613 to i64
+  %615 = ashr exact i64 %614, 32
+  call fastcc void @transparent_crc(i64 %615, ptr @.str.259, i32 signext undef)
+  %616 = load i80, ptr undef, align 2
+  %617 = lshr i80 %616, 11
+  %618 = trunc i80 %617 to i64
+  %619 = and i64 %618, 1
+  call fastcc void @transparent_crc(i64 %619, ptr @.str.260, i32 signext undef)
+  %620 = load volatile i80, ptr undef, align 2
+  %621 = shl i80 %620, 69
+  %622 = ashr i80 %621, 72
+  %623 = shl nsw i80 %622, 32
+  %624 = trunc i80 %623 to i64
+  %625 = ashr exact i64 %624, 32
+  call fastcc void @transparent_crc(i64 %625, ptr @.str.261, i32 signext undef)
+  %626 = load volatile i80, ptr undef, align 2
+  %627 = shl i80 %626, 57
+  %628 = ashr i80 %627, 58
+  %629 = shl nsw i80 %628, 32
+  %630 = trunc i80 %629 to i64
+  %631 = ashr exact i64 %630, 32
+  call fastcc void @transparent_crc(i64 %631, ptr @.str.256, i32 signext undef)
+  %632 = load i80, ptr undef, align 2
+  %633 = lshr i80 %632, 49
+  %634 = trunc i80 %633 to i64
+  call fastcc void @transparent_crc(i64 %634, ptr @.str.257, i32 signext undef)
+  %635 = load volatile i80, ptr undef, align 2
+  %636 = lshr i80 %635, 24
   %637 = trunc i80 %636 to i64
-  %638 = ashr exact i64 %637, 32
-  call fastcc void @transparent_crc(i64 %638, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.256, i64 0, i64 0), i32 signext undef)
-  %639 = load i80, i80* undef, align 2
-  %640 = lshr i80 %639, 49
-  %641 = trunc i80 %640 to i64
-  call fastcc void @transparent_crc(i64 %641, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.257, i64 0, i64 0), i32 signext undef)
-  %642 = load volatile i80, i80* undef, align 2
-  %643 = lshr i80 %642, 24
-  %644 = trunc i80 %643 to i64
-  %645 = and i64 %644, 33554431
-  call fastcc void @transparent_crc(i64 %645, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.258, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.260, i64 0, i64 0), i32 signext undef)
-  %646 = load volatile i80, i80* undef, align 2
-  %647 = shl i80 %646, 69
-  %648 = ashr i80 %647, 72
-  %649 = shl nsw i80 %648, 32
-  %650 = trunc i80 %649 to i64
-  %651 = ashr exact i64 %650, 32
-  call fastcc void @transparent_crc(i64 %651, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.261, i64 0, i64 0), i32 signext undef)
-  %652 = load volatile i80, i80* undef, align 2
-  %653 = lshr i80 %652, 57
-  %654 = trunc i80 %653 to i64
-  call fastcc void @transparent_crc(i64 %654, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.262, i64 0, i64 0), i32 signext undef)
-  %655 = load volatile i80, i80* undef, align 2
-  %656 = shl i80 %655, 23
-  %657 = ashr i80 %656, 64
-  %658 = shl nsw i80 %657, 32
-  %659 = trunc i80 %658 to i64
-  %660 = ashr exact i64 %659, 32
-  call fastcc void @transparent_crc(i64 %660, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.263, i64 0, i64 0), i32 signext undef)
-  %661 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.265, i64 0, i64 0), i32 signext undef)
-  %662 = getelementptr inbounds [6 x [2 x [7 x %4]]], [6 x [2 x [7 x %4]]]* bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_909 to [6 x [2 x [7 x %4]]]*), i64 0, i64 0, i64 0, i64 0, i32 1
-  %663 = bitcast [10 x i8]* %662 to i80*
-  %664 = load i80, i80* %663, align 2
-  %665 = lshr i80 %664, 49
-  %666 = trunc i80 %665 to i64
-  call fastcc void @transparent_crc(i64 %666, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.266, i64 0, i64 0), i32 signext undef)
-  %667 = load volatile i80, i80* %663, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.269, i64 0, i64 0), i32 signext undef)
-  %668 = load volatile i80, i80* %663, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.262, i64 0, i64 0), i32 signext undef)
-  %669 = load volatile i80, i80* undef, align 2
-  %670 = shl i80 %669, 23
-  %671 = ashr i80 %670, 64
-  %672 = shl nsw i80 %671, 32
-  %673 = trunc i80 %672 to i64
-  %674 = ashr exact i64 %673, 32
-  call fastcc void @transparent_crc(i64 %674, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.263, i64 0, i64 0), i32 signext undef)
-  %675 = load volatile i80, i80* undef, align 2
-  %676 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_912, i64 0, i32 1) to i80*), align 2
-  %677 = lshr i80 %676, 11
-  %678 = trunc i80 %677 to i64
-  %679 = and i64 %678, 1
-  call fastcc void @transparent_crc(i64 %679, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.296, i64 0, i64 0), i32 signext undef)
-  %680 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_912, i64 0, i32 1) to i80*), align 2
-  %681 = shl i80 %680, 69
-  %682 = ashr i80 %681, 72
-  %683 = shl nsw i80 %682, 32
-  %684 = trunc i80 %683 to i64
-  %685 = ashr exact i64 %684, 32
-  call fastcc void @transparent_crc(i64 %685, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.297, i64 0, i64 0), i32 signext undef)
-  %686 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913 to i80*), align 8
-  %687 = lshr i80 %686, 57
-  %688 = trunc i80 %687 to i64
-  call fastcc void @transparent_crc(i64 %688, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.298, i64 0, i64 0), i32 signext undef)
-  %689 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913 to i80*), align 8
-  %690 = shl i80 %689, 23
-  %691 = ashr i80 %690, 64
-  %692 = shl nsw i80 %691, 32
-  %693 = trunc i80 %692 to i64
-  %694 = ashr exact i64 %693, 32
-  call fastcc void @transparent_crc(i64 %694, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.299, i64 0, i64 0), i32 signext undef)
-  %695 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913 to i80*), align 8
-  %696 = shl i80 %695, 39
-  %697 = ashr i80 %696, 62
-  %698 = shl nsw i80 %697, 32
-  %699 = trunc i80 %698 to i64
-  %700 = ashr exact i64 %699, 32
-  call fastcc void @transparent_crc(i64 %700, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.300, i64 0, i64 0), i32 signext undef)
-  %701 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913 to i80*), align 8
-  %702 = shl i80 %701, 57
-  %703 = ashr i80 %702, 58
-  %704 = shl nsw i80 %703, 32
-  %705 = trunc i80 %704 to i64
-  %706 = ashr exact i64 %705, 32
-  call fastcc void @transparent_crc(i64 %706, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.301, i64 0, i64 0), i32 signext undef)
-  %707 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913, i64 0, i32 1) to i80*), align 2
-  %708 = lshr i80 %707, 49
-  %709 = trunc i80 %708 to i64
-  call fastcc void @transparent_crc(i64 %709, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.302, i64 0, i64 0), i32 signext undef)
-  %710 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.305, i64 0, i64 0), i32 signext undef)
-  %711 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_913, i64 0, i32 1) to i80*), align 2
-  %712 = shl i80 %711, 69
-  %713 = ashr i80 %712, 72
-  %714 = shl nsw i80 %713, 32
-  %715 = trunc i80 %714 to i64
-  %716 = ashr exact i64 %715, 32
-  call fastcc void @transparent_crc(i64 %716, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.306, i64 0, i64 0), i32 signext undef)
-  %717 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914 to i80*), align 8
-  %718 = lshr i80 %717, 57
-  %719 = trunc i80 %718 to i64
-  call fastcc void @transparent_crc(i64 %719, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.307, i64 0, i64 0), i32 signext undef)
-  %720 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914 to i80*), align 8
-  %721 = shl i80 %720, 23
-  %722 = ashr i80 %721, 64
-  %723 = shl nsw i80 %722, 32
-  %724 = trunc i80 %723 to i64
-  %725 = ashr exact i64 %724, 32
-  call fastcc void @transparent_crc(i64 %725, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.308, i64 0, i64 0), i32 signext undef)
-  %726 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914 to i80*), align 8
-  %727 = shl i80 %726, 39
-  %728 = ashr i80 %727, 62
-  %729 = shl nsw i80 %728, 32
-  %730 = trunc i80 %729 to i64
-  %731 = ashr exact i64 %730, 32
-  call fastcc void @transparent_crc(i64 %731, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.309, i64 0, i64 0), i32 signext undef)
-  %732 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914 to i80*), align 8
-  %733 = shl i80 %732, 57
-  %734 = ashr i80 %733, 58
-  %735 = shl nsw i80 %734, 32
-  %736 = trunc i80 %735 to i64
-  %737 = ashr exact i64 %736, 32
-  call fastcc void @transparent_crc(i64 %737, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.310, i64 0, i64 0), i32 signext undef)
-  %738 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914, i64 0, i32 1) to i80*), align 2
-  %739 = lshr i80 %738, 49
-  %740 = trunc i80 %739 to i64
-  call fastcc void @transparent_crc(i64 %740, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.311, i64 0, i64 0), i32 signext undef)
-  %741 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914, i64 0, i32 1) to i80*), align 2
-  %742 = lshr i80 %741, 24
-  %743 = trunc i80 %742 to i64
-  %744 = and i64 %743, 33554431
-  call fastcc void @transparent_crc(i64 %744, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.312, i64 0, i64 0), i32 signext undef)
-  %745 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914, i64 0, i32 1) to i80*), align 2
-  %746 = shl i80 %745, 56
-  %747 = ashr i80 %746, 68
-  %748 = shl nsw i80 %747, 32
-  %749 = trunc i80 %748 to i64
-  %750 = ashr exact i64 %749, 32
-  call fastcc void @transparent_crc(i64 %750, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.313, i64 0, i64 0), i32 signext undef)
-  %751 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914, i64 0, i32 1) to i80*), align 2
-  %752 = lshr i80 %751, 11
-  %753 = trunc i80 %752 to i64
-  %754 = and i64 %753, 1
-  call fastcc void @transparent_crc(i64 %754, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.314, i64 0, i64 0), i32 signext undef)
-  %755 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_914, i64 0, i32 1) to i80*), align 2
-  %756 = shl i80 %755, 69
-  %757 = ashr i80 %756, 72
-  %758 = shl nsw i80 %757, 32
-  %759 = trunc i80 %758 to i64
-  %760 = ashr exact i64 %759, 32
-  call fastcc void @transparent_crc(i64 %760, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.315, i64 0, i64 0), i32 signext undef)
-  %761 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915 to i80*), align 8
-  %762 = lshr i80 %761, 57
-  %763 = trunc i80 %762 to i64
-  call fastcc void @transparent_crc(i64 %763, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.316, i64 0, i64 0), i32 signext undef)
-  %764 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915 to i80*), align 8
-  %765 = shl i80 %764, 23
-  %766 = ashr i80 %765, 64
-  %767 = shl nsw i80 %766, 32
-  %768 = trunc i80 %767 to i64
-  %769 = ashr exact i64 %768, 32
-  call fastcc void @transparent_crc(i64 %769, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.317, i64 0, i64 0), i32 signext undef)
-  %770 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915 to i80*), align 8
-  %771 = shl i80 %770, 39
-  %772 = ashr i80 %771, 62
-  %773 = shl nsw i80 %772, 32
-  %774 = trunc i80 %773 to i64
-  %775 = ashr exact i64 %774, 32
-  call fastcc void @transparent_crc(i64 %775, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.318, i64 0, i64 0), i32 signext undef)
-  %776 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915 to i80*), align 8
-  %777 = shl i80 %776, 57
-  %778 = ashr i80 %777, 58
-  %779 = shl nsw i80 %778, 32
-  %780 = trunc i80 %779 to i64
-  %781 = ashr exact i64 %780, 32
-  call fastcc void @transparent_crc(i64 %781, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.319, i64 0, i64 0), i32 signext undef)
-  %782 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915, i64 0, i32 1) to i80*), align 2
-  %783 = lshr i80 %782, 49
-  %784 = trunc i80 %783 to i64
-  call fastcc void @transparent_crc(i64 %784, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.320, i64 0, i64 0), i32 signext undef)
-  %785 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915, i64 0, i32 1) to i80*), align 2
-  %786 = lshr i80 %785, 24
-  %787 = trunc i80 %786 to i64
-  %788 = and i64 %787, 33554431
-  call fastcc void @transparent_crc(i64 %788, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.321, i64 0, i64 0), i32 signext undef)
-  %789 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915, i64 0, i32 1) to i80*), align 2
-  %790 = shl i80 %789, 56
-  %791 = ashr i80 %790, 68
-  %792 = shl nsw i80 %791, 32
-  %793 = trunc i80 %792 to i64
-  %794 = ashr exact i64 %793, 32
-  call fastcc void @transparent_crc(i64 %794, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.322, i64 0, i64 0), i32 signext undef)
-  %795 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915, i64 0, i32 1) to i80*), align 2
-  %796 = lshr i80 %795, 11
-  %797 = trunc i80 %796 to i64
-  %798 = and i64 %797, 1
-  call fastcc void @transparent_crc(i64 %798, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.323, i64 0, i64 0), i32 signext undef)
-  %799 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_915, i64 0, i32 1) to i80*), align 2
-  %800 = shl i80 %799, 69
-  %801 = ashr i80 %800, 72
-  %802 = shl nsw i80 %801, 32
-  %803 = trunc i80 %802 to i64
-  %804 = ashr exact i64 %803, 32
-  call fastcc void @transparent_crc(i64 %804, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.324, i64 0, i64 0), i32 signext undef)
-  %805 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_916 to i80*), align 8
-  %806 = lshr i80 %805, 57
-  %807 = trunc i80 %806 to i64
-  call fastcc void @transparent_crc(i64 %807, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.325, i64 0, i64 0), i32 signext undef)
-  %808 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_916 to i80*), align 8
-  %809 = shl i80 %808, 23
-  %810 = ashr i80 %809, 64
-  %811 = shl nsw i80 %810, 32
-  %812 = trunc i80 %811 to i64
-  %813 = ashr exact i64 %812, 32
-  call fastcc void @transparent_crc(i64 %813, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.326, i64 0, i64 0), i32 signext undef)
-  %814 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_916 to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.328, i64 0, i64 0), i32 signext undef)
-  %815 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_916, i64 0, i32 1) to i80*), align 2
-  %816 = shl i80 %815, 69
-  %817 = ashr i80 %816, 72
-  %818 = shl nsw i80 %817, 32
-  %819 = trunc i80 %818 to i64
-  %820 = ashr exact i64 %819, 32
-  call fastcc void @transparent_crc(i64 %820, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.333, i64 0, i64 0), i32 signext undef)
-  %821 = load volatile i80, i80* undef, align 2
-  %822 = lshr i80 %821, 57
-  %823 = trunc i80 %822 to i64
-  call fastcc void @transparent_crc(i64 %823, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.334, i64 0, i64 0), i32 signext undef)
-  %824 = load volatile i80, i80* undef, align 2
-  %825 = shl i80 %824, 23
-  %826 = ashr i80 %825, 64
-  %827 = shl nsw i80 %826, 32
-  %828 = trunc i80 %827 to i64
-  %829 = ashr exact i64 %828, 32
-  call fastcc void @transparent_crc(i64 %829, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.335, i64 0, i64 0), i32 signext undef)
-  %830 = load volatile i80, i80* undef, align 2
-  %831 = shl i80 %830, 39
-  %832 = ashr i80 %831, 62
-  %833 = shl nsw i80 %832, 32
-  %834 = trunc i80 %833 to i64
-  %835 = ashr exact i64 %834, 32
-  call fastcc void @transparent_crc(i64 %835, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.336, i64 0, i64 0), i32 signext undef)
-  %836 = load volatile i80, i80* undef, align 2
-  %837 = shl i80 %836, 57
-  %838 = ashr i80 %837, 58
-  %839 = shl nsw i80 %838, 32
+  %638 = and i64 %637, 33554431
+  call fastcc void @transparent_crc(i64 %638, ptr @.str.258, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.260, i32 signext undef)
+  %639 = load volatile i80, ptr undef, align 2
+  %640 = shl i80 %639, 69
+  %641 = ashr i80 %640, 72
+  %642 = shl nsw i80 %641, 32
+  %643 = trunc i80 %642 to i64
+  %644 = ashr exact i64 %643, 32
+  call fastcc void @transparent_crc(i64 %644, ptr @.str.261, i32 signext undef)
+  %645 = load volatile i80, ptr undef, align 2
+  %646 = lshr i80 %645, 57
+  %647 = trunc i80 %646 to i64
+  call fastcc void @transparent_crc(i64 %647, ptr @.str.262, i32 signext undef)
+  %648 = load volatile i80, ptr undef, align 2
+  %649 = shl i80 %648, 23
+  %650 = ashr i80 %649, 64
+  %651 = shl nsw i80 %650, 32
+  %652 = trunc i80 %651 to i64
+  %653 = ashr exact i64 %652, 32
+  call fastcc void @transparent_crc(i64 %653, ptr @.str.263, i32 signext undef)
+  %654 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.265, i32 signext undef)
+  %655 = getelementptr inbounds [6 x [2 x [7 x %4]]], ptr bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_909 to ptr), i64 0, i64 0, i64 0, i64 0, i32 1
+  %656 = load i80, ptr %655, align 2
+  %657 = lshr i80 %656, 49
+  %658 = trunc i80 %657 to i64
+  call fastcc void @transparent_crc(i64 %658, ptr @.str.266, i32 signext undef)
+  %659 = load volatile i80, ptr %655, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.269, i32 signext undef)
+  %660 = load volatile i80, ptr %655, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.262, i32 signext undef)
+  %661 = load volatile i80, ptr undef, align 2
+  %662 = shl i80 %661, 23
+  %663 = ashr i80 %662, 64
+  %664 = shl nsw i80 %663, 32
+  %665 = trunc i80 %664 to i64
+  %666 = ashr exact i64 %665, 32
+  call fastcc void @transparent_crc(i64 %666, ptr @.str.263, i32 signext undef)
+  %667 = load volatile i80, ptr undef, align 2
+  %668 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_912, i64 0, i32 1), align 2
+  %669 = lshr i80 %668, 11
+  %670 = trunc i80 %669 to i64
+  %671 = and i64 %670, 1
+  call fastcc void @transparent_crc(i64 %671, ptr @.str.296, i32 signext undef)
+  %672 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_912, i64 0, i32 1), align 2
+  %673 = shl i80 %672, 69
+  %674 = ashr i80 %673, 72
+  %675 = shl nsw i80 %674, 32
+  %676 = trunc i80 %675 to i64
+  %677 = ashr exact i64 %676, 32
+  call fastcc void @transparent_crc(i64 %677, ptr @.str.297, i32 signext undef)
+  %678 = load volatile i80, ptr @g_913, align 8
+  %679 = lshr i80 %678, 57
+  %680 = trunc i80 %679 to i64
+  call fastcc void @transparent_crc(i64 %680, ptr @.str.298, i32 signext undef)
+  %681 = load volatile i80, ptr @g_913, align 8
+  %682 = shl i80 %681, 23
+  %683 = ashr i80 %682, 64
+  %684 = shl nsw i80 %683, 32
+  %685 = trunc i80 %684 to i64
+  %686 = ashr exact i64 %685, 32
+  call fastcc void @transparent_crc(i64 %686, ptr @.str.299, i32 signext undef)
+  %687 = load volatile i80, ptr @g_913, align 8
+  %688 = shl i80 %687, 39
+  %689 = ashr i80 %688, 62
+  %690 = shl nsw i80 %689, 32
+  %691 = trunc i80 %690 to i64
+  %692 = ashr exact i64 %691, 32
+  call fastcc void @transparent_crc(i64 %692, ptr @.str.300, i32 signext undef)
+  %693 = load volatile i80, ptr @g_913, align 8
+  %694 = shl i80 %693, 57
+  %695 = ashr i80 %694, 58
+  %696 = shl nsw i80 %695, 32
+  %697 = trunc i80 %696 to i64
+  %698 = ashr exact i64 %697, 32
+  call fastcc void @transparent_crc(i64 %698, ptr @.str.301, i32 signext undef)
+  %699 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_913, i64 0, i32 1), align 2
+  %700 = lshr i80 %699, 49
+  %701 = trunc i80 %700 to i64
+  call fastcc void @transparent_crc(i64 %701, ptr @.str.302, i32 signext undef)
+  %702 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_913, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.305, i32 signext undef)
+  %703 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_913, i64 0, i32 1), align 2
+  %704 = shl i80 %703, 69
+  %705 = ashr i80 %704, 72
+  %706 = shl nsw i80 %705, 32
+  %707 = trunc i80 %706 to i64
+  %708 = ashr exact i64 %707, 32
+  call fastcc void @transparent_crc(i64 %708, ptr @.str.306, i32 signext undef)
+  %709 = load volatile i80, ptr @g_914, align 8
+  %710 = lshr i80 %709, 57
+  %711 = trunc i80 %710 to i64
+  call fastcc void @transparent_crc(i64 %711, ptr @.str.307, i32 signext undef)
+  %712 = load volatile i80, ptr @g_914, align 8
+  %713 = shl i80 %712, 23
+  %714 = ashr i80 %713, 64
+  %715 = shl nsw i80 %714, 32
+  %716 = trunc i80 %715 to i64
+  %717 = ashr exact i64 %716, 32
+  call fastcc void @transparent_crc(i64 %717, ptr @.str.308, i32 signext undef)
+  %718 = load volatile i80, ptr @g_914, align 8
+  %719 = shl i80 %718, 39
+  %720 = ashr i80 %719, 62
+  %721 = shl nsw i80 %720, 32
+  %722 = trunc i80 %721 to i64
+  %723 = ashr exact i64 %722, 32
+  call fastcc void @transparent_crc(i64 %723, ptr @.str.309, i32 signext undef)
+  %724 = load volatile i80, ptr @g_914, align 8
+  %725 = shl i80 %724, 57
+  %726 = ashr i80 %725, 58
+  %727 = shl nsw i80 %726, 32
+  %728 = trunc i80 %727 to i64
+  %729 = ashr exact i64 %728, 32
+  call fastcc void @transparent_crc(i64 %729, ptr @.str.310, i32 signext undef)
+  %730 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_914, i64 0, i32 1), align 2
+  %731 = lshr i80 %730, 49
+  %732 = trunc i80 %731 to i64
+  call fastcc void @transparent_crc(i64 %732, ptr @.str.311, i32 signext undef)
+  %733 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_914, i64 0, i32 1), align 2
+  %734 = lshr i80 %733, 24
+  %735 = trunc i80 %734 to i64
+  %736 = and i64 %735, 33554431
+  call fastcc void @transparent_crc(i64 %736, ptr @.str.312, i32 signext undef)
+  %737 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_914, i64 0, i32 1), align 2
+  %738 = shl i80 %737, 56
+  %739 = ashr i80 %738, 68
+  %740 = shl nsw i80 %739, 32
+  %741 = trunc i80 %740 to i64
+  %742 = ashr exact i64 %741, 32
+  call fastcc void @transparent_crc(i64 %742, ptr @.str.313, i32 signext undef)
+  %743 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_914, i64 0, i32 1), align 2
+  %744 = lshr i80 %743, 11
+  %745 = trunc i80 %744 to i64
+  %746 = and i64 %745, 1
+  call fastcc void @transparent_crc(i64 %746, ptr @.str.314, i32 signext undef)
+  %747 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_914, i64 0, i32 1), align 2
+  %748 = shl i80 %747, 69
+  %749 = ashr i80 %748, 72
+  %750 = shl nsw i80 %749, 32
+  %751 = trunc i80 %750 to i64
+  %752 = ashr exact i64 %751, 32
+  call fastcc void @transparent_crc(i64 %752, ptr @.str.315, i32 signext undef)
+  %753 = load volatile i80, ptr @g_915, align 8
+  %754 = lshr i80 %753, 57
+  %755 = trunc i80 %754 to i64
+  call fastcc void @transparent_crc(i64 %755, ptr @.str.316, i32 signext undef)
+  %756 = load volatile i80, ptr @g_915, align 8
+  %757 = shl i80 %756, 23
+  %758 = ashr i80 %757, 64
+  %759 = shl nsw i80 %758, 32
+  %760 = trunc i80 %759 to i64
+  %761 = ashr exact i64 %760, 32
+  call fastcc void @transparent_crc(i64 %761, ptr @.str.317, i32 signext undef)
+  %762 = load volatile i80, ptr @g_915, align 8
+  %763 = shl i80 %762, 39
+  %764 = ashr i80 %763, 62
+  %765 = shl nsw i80 %764, 32
+  %766 = trunc i80 %765 to i64
+  %767 = ashr exact i64 %766, 32
+  call fastcc void @transparent_crc(i64 %767, ptr @.str.318, i32 signext undef)
+  %768 = load volatile i80, ptr @g_915, align 8
+  %769 = shl i80 %768, 57
+  %770 = ashr i80 %769, 58
+  %771 = shl nsw i80 %770, 32
+  %772 = trunc i80 %771 to i64
+  %773 = ashr exact i64 %772, 32
+  call fastcc void @transparent_crc(i64 %773, ptr @.str.319, i32 signext undef)
+  %774 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_915, i64 0, i32 1), align 2
+  %775 = lshr i80 %774, 49
+  %776 = trunc i80 %775 to i64
+  call fastcc void @transparent_crc(i64 %776, ptr @.str.320, i32 signext undef)
+  %777 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_915, i64 0, i32 1), align 2
+  %778 = lshr i80 %777, 24
+  %779 = trunc i80 %778 to i64
+  %780 = and i64 %779, 33554431
+  call fastcc void @transparent_crc(i64 %780, ptr @.str.321, i32 signext undef)
+  %781 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_915, i64 0, i32 1), align 2
+  %782 = shl i80 %781, 56
+  %783 = ashr i80 %782, 68
+  %784 = shl nsw i80 %783, 32
+  %785 = trunc i80 %784 to i64
+  %786 = ashr exact i64 %785, 32
+  call fastcc void @transparent_crc(i64 %786, ptr @.str.322, i32 signext undef)
+  %787 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_915, i64 0, i32 1), align 2
+  %788 = lshr i80 %787, 11
+  %789 = trunc i80 %788 to i64
+  %790 = and i64 %789, 1
+  call fastcc void @transparent_crc(i64 %790, ptr @.str.323, i32 signext undef)
+  %791 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_915, i64 0, i32 1), align 2
+  %792 = shl i80 %791, 69
+  %793 = ashr i80 %792, 72
+  %794 = shl nsw i80 %793, 32
+  %795 = trunc i80 %794 to i64
+  %796 = ashr exact i64 %795, 32
+  call fastcc void @transparent_crc(i64 %796, ptr @.str.324, i32 signext undef)
+  %797 = load volatile i80, ptr @g_916, align 8
+  %798 = lshr i80 %797, 57
+  %799 = trunc i80 %798 to i64
+  call fastcc void @transparent_crc(i64 %799, ptr @.str.325, i32 signext undef)
+  %800 = load volatile i80, ptr @g_916, align 8
+  %801 = shl i80 %800, 23
+  %802 = ashr i80 %801, 64
+  %803 = shl nsw i80 %802, 32
+  %804 = trunc i80 %803 to i64
+  %805 = ashr exact i64 %804, 32
+  call fastcc void @transparent_crc(i64 %805, ptr @.str.326, i32 signext undef)
+  %806 = load volatile i80, ptr @g_916, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.328, i32 signext undef)
+  %807 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_916, i64 0, i32 1), align 2
+  %808 = shl i80 %807, 69
+  %809 = ashr i80 %808, 72
+  %810 = shl nsw i80 %809, 32
+  %811 = trunc i80 %810 to i64
+  %812 = ashr exact i64 %811, 32
+  call fastcc void @transparent_crc(i64 %812, ptr @.str.333, i32 signext undef)
+  %813 = load volatile i80, ptr undef, align 2
+  %814 = lshr i80 %813, 57
+  %815 = trunc i80 %814 to i64
+  call fastcc void @transparent_crc(i64 %815, ptr @.str.334, i32 signext undef)
+  %816 = load volatile i80, ptr undef, align 2
+  %817 = shl i80 %816, 23
+  %818 = ashr i80 %817, 64
+  %819 = shl nsw i80 %818, 32
+  %820 = trunc i80 %819 to i64
+  %821 = ashr exact i64 %820, 32
+  call fastcc void @transparent_crc(i64 %821, ptr @.str.335, i32 signext undef)
+  %822 = load volatile i80, ptr undef, align 2
+  %823 = shl i80 %822, 39
+  %824 = ashr i80 %823, 62
+  %825 = shl nsw i80 %824, 32
+  %826 = trunc i80 %825 to i64
+  %827 = ashr exact i64 %826, 32
+  call fastcc void @transparent_crc(i64 %827, ptr @.str.336, i32 signext undef)
+  %828 = load volatile i80, ptr undef, align 2
+  %829 = shl i80 %828, 57
+  %830 = ashr i80 %829, 58
+  %831 = shl nsw i80 %830, 32
+  %832 = trunc i80 %831 to i64
+  %833 = ashr exact i64 %832, 32
+  call fastcc void @transparent_crc(i64 %833, ptr @.str.337, i32 signext undef)
+  %834 = getelementptr inbounds [6 x %4], ptr @g_917, i64 0, i64 0, i32 1
+  %835 = load i80, ptr %834, align 2
+  %836 = lshr i80 %835, 49
+  %837 = trunc i80 %836 to i64
+  call fastcc void @transparent_crc(i64 %837, ptr @.str.338, i32 signext undef)
+  %838 = load volatile i80, ptr %834, align 2
+  %839 = lshr i80 %838, 24
   %840 = trunc i80 %839 to i64
-  %841 = ashr exact i64 %840, 32
-  call fastcc void @transparent_crc(i64 %841, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.337, i64 0, i64 0), i32 signext undef)
-  %842 = getelementptr inbounds [6 x %4], [6 x %4]* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_917 to [6 x %4]*), i64 0, i64 0, i32 1
-  %843 = bitcast [10 x i8]* %842 to i80*
-  %844 = load i80, i80* %843, align 2
-  %845 = lshr i80 %844, 49
+  %841 = and i64 %840, 33554431
+  call fastcc void @transparent_crc(i64 %841, ptr @.str.339, i32 signext undef)
+  %842 = load i80, ptr %834, align 2
+  %843 = shl i80 %842, 56
+  %844 = ashr i80 %843, 68
+  %845 = shl nsw i80 %844, 32
   %846 = trunc i80 %845 to i64
-  call fastcc void @transparent_crc(i64 %846, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.338, i64 0, i64 0), i32 signext undef)
-  %847 = load volatile i80, i80* %843, align 2
-  %848 = lshr i80 %847, 24
-  %849 = trunc i80 %848 to i64
-  %850 = and i64 %849, 33554431
-  call fastcc void @transparent_crc(i64 %850, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.339, i64 0, i64 0), i32 signext undef)
-  %851 = load i80, i80* %843, align 2
-  %852 = shl i80 %851, 56
-  %853 = ashr i80 %852, 68
-  %854 = shl nsw i80 %853, 32
-  %855 = trunc i80 %854 to i64
-  %856 = ashr exact i64 %855, 32
-  call fastcc void @transparent_crc(i64 %856, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.340, i64 0, i64 0), i32 signext undef)
-  %857 = load i80, i80* %843, align 2
-  %858 = lshr i80 %857, 11
-  %859 = trunc i80 %858 to i64
-  %860 = and i64 %859, 1
-  call fastcc void @transparent_crc(i64 %860, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.341, i64 0, i64 0), i32 signext undef)
-  %861 = load volatile i80, i80* %843, align 2
-  %862 = shl i80 %861, 69
-  %863 = ashr i80 %862, 72
-  %864 = shl nsw i80 %863, 32
-  %865 = trunc i80 %864 to i64
-  %866 = ashr exact i64 %865, 32
-  call fastcc void @transparent_crc(i64 %866, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.342, i64 0, i64 0), i32 signext undef)
-  %867 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918 to i80*), align 8
-  %868 = lshr i80 %867, 57
-  %869 = trunc i80 %868 to i64
-  call fastcc void @transparent_crc(i64 %869, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.343, i64 0, i64 0), i32 signext undef)
-  %870 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.344, i64 0, i64 0), i32 signext undef)
-  %871 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918 to i80*), align 8
-  %872 = shl i80 %871, 39
-  %873 = ashr i80 %872, 62
-  %874 = shl nsw i80 %873, 32
-  %875 = trunc i80 %874 to i64
-  %876 = ashr exact i64 %875, 32
-  call fastcc void @transparent_crc(i64 %876, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.345, i64 0, i64 0), i32 signext undef)
-  %877 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918 to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.348, i64 0, i64 0), i32 signext undef)
-  %878 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918, i64 0, i32 1) to i80*), align 2
-  %879 = shl i80 %878, 56
-  %880 = ashr i80 %879, 68
-  %881 = shl nsw i80 %880, 32
-  %882 = trunc i80 %881 to i64
-  %883 = ashr exact i64 %882, 32
-  call fastcc void @transparent_crc(i64 %883, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.349, i64 0, i64 0), i32 signext undef)
-  %884 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918, i64 0, i32 1) to i80*), align 2
-  %885 = lshr i80 %884, 11
-  %886 = trunc i80 %885 to i64
-  %887 = and i64 %886, 1
-  call fastcc void @transparent_crc(i64 %887, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.350, i64 0, i64 0), i32 signext undef)
-  %888 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_918, i64 0, i32 1) to i80*), align 2
-  %889 = shl i80 %888, 69
-  %890 = ashr i80 %889, 72
+  %847 = ashr exact i64 %846, 32
+  call fastcc void @transparent_crc(i64 %847, ptr @.str.340, i32 signext undef)
+  %848 = load i80, ptr %834, align 2
+  %849 = lshr i80 %848, 11
+  %850 = trunc i80 %849 to i64
+  %851 = and i64 %850, 1
+  call fastcc void @transparent_crc(i64 %851, ptr @.str.341, i32 signext undef)
+  %852 = load volatile i80, ptr %834, align 2
+  %853 = shl i80 %852, 69
+  %854 = ashr i80 %853, 72
+  %855 = shl nsw i80 %854, 32
+  %856 = trunc i80 %855 to i64
+  %857 = ashr exact i64 %856, 32
+  call fastcc void @transparent_crc(i64 %857, ptr @.str.342, i32 signext undef)
+  %858 = load volatile i80, ptr @g_918, align 8
+  %859 = lshr i80 %858, 57
+  %860 = trunc i80 %859 to i64
+  call fastcc void @transparent_crc(i64 %860, ptr @.str.343, i32 signext undef)
+  %861 = load volatile i80, ptr @g_918, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.344, i32 signext undef)
+  %862 = load volatile i80, ptr @g_918, align 8
+  %863 = shl i80 %862, 39
+  %864 = ashr i80 %863, 62
+  %865 = shl nsw i80 %864, 32
+  %866 = trunc i80 %865 to i64
+  %867 = ashr exact i64 %866, 32
+  call fastcc void @transparent_crc(i64 %867, ptr @.str.345, i32 signext undef)
+  %868 = load volatile i80, ptr @g_918, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.348, i32 signext undef)
+  %869 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_918, i64 0, i32 1), align 2
+  %870 = shl i80 %869, 56
+  %871 = ashr i80 %870, 68
+  %872 = shl nsw i80 %871, 32
+  %873 = trunc i80 %872 to i64
+  %874 = ashr exact i64 %873, 32
+  call fastcc void @transparent_crc(i64 %874, ptr @.str.349, i32 signext undef)
+  %875 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_918, i64 0, i32 1), align 2
+  %876 = lshr i80 %875, 11
+  %877 = trunc i80 %876 to i64
+  %878 = and i64 %877, 1
+  call fastcc void @transparent_crc(i64 %878, ptr @.str.350, i32 signext undef)
+  %879 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_918, i64 0, i32 1), align 2
+  %880 = shl i80 %879, 69
+  %881 = ashr i80 %880, 72
+  %882 = shl nsw i80 %881, 32
+  %883 = trunc i80 %882 to i64
+  %884 = ashr exact i64 %883, 32
+  call fastcc void @transparent_crc(i64 %884, ptr @.str.351, i32 signext undef)
+  %885 = load volatile i80, ptr bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to ptr), align 8
+  %886 = lshr i80 %885, 57
+  %887 = trunc i80 %886 to i64
+  call fastcc void @transparent_crc(i64 %887, ptr @.str.352, i32 signext undef)
+  %888 = load volatile i80, ptr bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to ptr), align 8
+  %889 = shl i80 %888, 23
+  %890 = ashr i80 %889, 64
   %891 = shl nsw i80 %890, 32
   %892 = trunc i80 %891 to i64
   %893 = ashr exact i64 %892, 32
-  call fastcc void @transparent_crc(i64 %893, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.351, i64 0, i64 0), i32 signext undef)
-  %894 = load volatile i80, i80* bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to i80*), align 8
-  %895 = lshr i80 %894, 57
-  %896 = trunc i80 %895 to i64
-  call fastcc void @transparent_crc(i64 %896, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.352, i64 0, i64 0), i32 signext undef)
-  %897 = load volatile i80, i80* bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to i80*), align 8
-  %898 = shl i80 %897, 23
-  %899 = ashr i80 %898, 64
-  %900 = shl nsw i80 %899, 32
-  %901 = trunc i80 %900 to i64
-  %902 = ashr exact i64 %901, 32
-  call fastcc void @transparent_crc(i64 %902, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.353, i64 0, i64 0), i32 signext undef)
-  %903 = load volatile i80, i80* bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to i80*), align 8
-  %904 = shl i80 %903, 39
-  %905 = ashr i80 %904, 62
-  %906 = shl nsw i80 %905, 32
-  %907 = trunc i80 %906 to i64
-  %908 = ashr exact i64 %907, 32
-  call fastcc void @transparent_crc(i64 %908, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.354, i64 0, i64 0), i32 signext undef)
-  %909 = load volatile i80, i80* bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to i80*), align 8
-  %910 = shl i80 %909, 57
-  %911 = ashr i80 %910, 58
-  %912 = shl nsw i80 %911, 32
-  %913 = trunc i80 %912 to i64
-  %914 = ashr exact i64 %913, 32
-  call fastcc void @transparent_crc(i64 %914, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.355, i64 0, i64 0), i32 signext undef)
-  %915 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1) to i80*), align 2
-  %916 = lshr i80 %915, 49
+  call fastcc void @transparent_crc(i64 %893, ptr @.str.353, i32 signext undef)
+  %894 = load volatile i80, ptr bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to ptr), align 8
+  %895 = shl i80 %894, 39
+  %896 = ashr i80 %895, 62
+  %897 = shl nsw i80 %896, 32
+  %898 = trunc i80 %897 to i64
+  %899 = ashr exact i64 %898, 32
+  call fastcc void @transparent_crc(i64 %899, ptr @.str.354, i32 signext undef)
+  %900 = load volatile i80, ptr bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919 to ptr), align 8
+  %901 = shl i80 %900, 57
+  %902 = ashr i80 %901, 58
+  %903 = shl nsw i80 %902, 32
+  %904 = trunc i80 %903 to i64
+  %905 = ashr exact i64 %904, 32
+  call fastcc void @transparent_crc(i64 %905, ptr @.str.355, i32 signext undef)
+  %906 = load i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1), align 2
+  %907 = lshr i80 %906, 49
+  %908 = trunc i80 %907 to i64
+  call fastcc void @transparent_crc(i64 %908, ptr @.str.356, i32 signext undef)
+  %909 = load volatile i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1), align 2
+  %910 = lshr i80 %909, 24
+  %911 = trunc i80 %910 to i64
+  %912 = and i64 %911, 33554431
+  call fastcc void @transparent_crc(i64 %912, ptr @.str.357, i32 signext undef)
+  %913 = load i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1), align 2
+  %914 = shl i80 %913, 56
+  %915 = ashr i80 %914, 68
+  %916 = shl nsw i80 %915, 32
   %917 = trunc i80 %916 to i64
-  call fastcc void @transparent_crc(i64 %917, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.356, i64 0, i64 0), i32 signext undef)
-  %918 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1) to i80*), align 2
-  %919 = lshr i80 %918, 24
-  %920 = trunc i80 %919 to i64
-  %921 = and i64 %920, 33554431
-  call fastcc void @transparent_crc(i64 %921, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.357, i64 0, i64 0), i32 signext undef)
-  %922 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1) to i80*), align 2
-  %923 = shl i80 %922, 56
-  %924 = ashr i80 %923, 68
-  %925 = shl nsw i80 %924, 32
-  %926 = trunc i80 %925 to i64
-  %927 = ashr exact i64 %926, 32
-  call fastcc void @transparent_crc(i64 %927, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.358, i64 0, i64 0), i32 signext undef)
-  %928 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1) to i80*), align 2
-  %929 = lshr i80 %928, 11
-  %930 = trunc i80 %929 to i64
-  %931 = and i64 %930, 1
-  call fastcc void @transparent_crc(i64 %931, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.359, i64 0, i64 0), i32 signext undef)
-  %932 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1) to i80*), align 2
-  %933 = shl i80 %932, 69
-  %934 = ashr i80 %933, 72
+  %918 = ashr exact i64 %917, 32
+  call fastcc void @transparent_crc(i64 %918, ptr @.str.358, i32 signext undef)
+  %919 = load i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1), align 2
+  %920 = lshr i80 %919, 11
+  %921 = trunc i80 %920 to i64
+  %922 = and i64 %921, 1
+  call fastcc void @transparent_crc(i64 %922, ptr @.str.359, i32 signext undef)
+  %923 = load volatile i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 0, i32 1), align 2
+  %924 = shl i80 %923, 69
+  %925 = ashr i80 %924, 72
+  %926 = shl nsw i80 %925, 32
+  %927 = trunc i80 %926 to i64
+  %928 = ashr exact i64 %927, 32
+  call fastcc void @transparent_crc(i64 %928, ptr @.str.360, i32 signext undef)
+  %929 = load volatile i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0), align 4
+  %930 = lshr i80 %929, 57
+  %931 = trunc i80 %930 to i64
+  call fastcc void @transparent_crc(i64 %931, ptr @.str.352, i32 signext undef)
+  %932 = load volatile i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0), align 4
+  %933 = shl i80 %932, 23
+  %934 = ashr i80 %933, 64
   %935 = shl nsw i80 %934, 32
   %936 = trunc i80 %935 to i64
   %937 = ashr exact i64 %936, 32
-  call fastcc void @transparent_crc(i64 %937, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.360, i64 0, i64 0), i32 signext undef)
-  %938 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %939 = lshr i80 %938, 57
-  %940 = trunc i80 %939 to i64
-  call fastcc void @transparent_crc(i64 %940, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.352, i64 0, i64 0), i32 signext undef)
-  %941 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %942 = shl i80 %941, 23
-  %943 = ashr i80 %942, 64
-  %944 = shl nsw i80 %943, 32
-  %945 = trunc i80 %944 to i64
-  %946 = ashr exact i64 %945, 32
-  call fastcc void @transparent_crc(i64 %946, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.353, i64 0, i64 0), i32 signext undef)
-  %947 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0) to i80*), align 4
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.354, i64 0, i64 0), i32 signext undef)
-  %948 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0) to i80*), align 4
-  %949 = shl i80 %948, 57
-  %950 = ashr i80 %949, 58
-  %951 = shl nsw i80 %950, 32
-  %952 = trunc i80 %951 to i64
-  %953 = ashr exact i64 %952, 32
-  call fastcc void @transparent_crc(i64 %953, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.355, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.366, i64 0, i64 0), i32 signext undef)
-  %954 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_920, i64 0, i32 1) to i80*), align 2
-  %955 = shl i80 %954, 56
-  %956 = ashr i80 %955, 68
-  %957 = shl nsw i80 %956, 32
-  %958 = trunc i80 %957 to i64
-  %959 = ashr exact i64 %958, 32
-  call fastcc void @transparent_crc(i64 %959, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.367, i64 0, i64 0), i32 signext undef)
-  %960 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_920, i64 0, i32 1) to i80*), align 2
-  %961 = lshr i80 %960, 11
-  %962 = trunc i80 %961 to i64
-  %963 = and i64 %962, 1
-  call fastcc void @transparent_crc(i64 %963, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.368, i64 0, i64 0), i32 signext undef)
-  %964 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_920, i64 0, i32 1) to i80*), align 2
-  %965 = shl i80 %964, 69
-  %966 = ashr i80 %965, 72
+  call fastcc void @transparent_crc(i64 %937, ptr @.str.353, i32 signext undef)
+  %938 = load volatile i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0), align 4
+  call fastcc void @transparent_crc(i64 0, ptr @.str.354, i32 signext undef)
+  %939 = load volatile i80, ptr getelementptr inbounds (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_919, i64 0, i32 0, i32 1, i32 0, i32 0), align 4
+  %940 = shl i80 %939, 57
+  %941 = ashr i80 %940, 58
+  %942 = shl nsw i80 %941, 32
+  %943 = trunc i80 %942 to i64
+  %944 = ashr exact i64 %943, 32
+  call fastcc void @transparent_crc(i64 %944, ptr @.str.355, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.366, i32 signext undef)
+  %945 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_920, i64 0, i32 1), align 2
+  %946 = shl i80 %945, 56
+  %947 = ashr i80 %946, 68
+  %948 = shl nsw i80 %947, 32
+  %949 = trunc i80 %948 to i64
+  %950 = ashr exact i64 %949, 32
+  call fastcc void @transparent_crc(i64 %950, ptr @.str.367, i32 signext undef)
+  %951 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_920, i64 0, i32 1), align 2
+  %952 = lshr i80 %951, 11
+  %953 = trunc i80 %952 to i64
+  %954 = and i64 %953, 1
+  call fastcc void @transparent_crc(i64 %954, ptr @.str.368, i32 signext undef)
+  %955 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_920, i64 0, i32 1), align 2
+  %956 = shl i80 %955, 69
+  %957 = ashr i80 %956, 72
+  %958 = shl nsw i80 %957, 32
+  %959 = trunc i80 %958 to i64
+  %960 = ashr exact i64 %959, 32
+  call fastcc void @transparent_crc(i64 %960, ptr @.str.369, i32 signext undef)
+  %961 = load volatile i80, ptr @g_921, align 8
+  %962 = lshr i80 %961, 57
+  %963 = trunc i80 %962 to i64
+  call fastcc void @transparent_crc(i64 %963, ptr @.str.370, i32 signext undef)
+  %964 = load volatile i80, ptr @g_921, align 8
+  %965 = shl i80 %964, 23
+  %966 = ashr i80 %965, 64
   %967 = shl nsw i80 %966, 32
   %968 = trunc i80 %967 to i64
   %969 = ashr exact i64 %968, 32
-  call fastcc void @transparent_crc(i64 %969, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.369, i64 0, i64 0), i32 signext undef)
-  %970 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_921 to i80*), align 8
-  %971 = lshr i80 %970, 57
-  %972 = trunc i80 %971 to i64
-  call fastcc void @transparent_crc(i64 %972, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.370, i64 0, i64 0), i32 signext undef)
-  %973 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_921 to i80*), align 8
-  %974 = shl i80 %973, 23
-  %975 = ashr i80 %974, 64
-  %976 = shl nsw i80 %975, 32
-  %977 = trunc i80 %976 to i64
-  %978 = ashr exact i64 %977, 32
-  call fastcc void @transparent_crc(i64 %978, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.371, i64 0, i64 0), i32 signext undef)
-  %979 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_921 to i80*), align 8
-  %980 = shl i80 %979, 39
-  %981 = ashr i80 %980, 62
-  %982 = shl nsw i80 %981, 32
-  %983 = trunc i80 %982 to i64
-  %984 = ashr exact i64 %983, 32
-  call fastcc void @transparent_crc(i64 %984, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.372, i64 0, i64 0), i32 signext undef)
-  %985 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_921 to i80*), align 8
-  %986 = shl i80 %985, 57
-  %987 = ashr i80 %986, 58
-  %988 = shl nsw i80 %987, 32
-  %989 = trunc i80 %988 to i64
-  %990 = ashr exact i64 %989, 32
-  call fastcc void @transparent_crc(i64 %990, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.373, i64 0, i64 0), i32 signext undef)
-  %991 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_921, i64 0, i32 1) to i80*), align 2
-  %992 = lshr i80 %991, 49
-  %993 = trunc i80 %992 to i64
-  call fastcc void @transparent_crc(i64 %993, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.374, i64 0, i64 0), i32 signext undef)
-  %994 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_921, i64 0, i32 1) to i80*), align 2
-  %995 = lshr i80 %994, 24
-  %996 = trunc i80 %995 to i64
-  %997 = and i64 %996, 33554431
-  call fastcc void @transparent_crc(i64 %997, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.375, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.380, i64 0, i64 0), i32 signext undef)
-  %998 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_922 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.387, i64 0, i64 0), i32 signext undef)
-  %999 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_923 to i80*), align 8
-  %1000 = lshr i80 %999, 57
-  %1001 = trunc i80 %1000 to i64
-  call fastcc void @transparent_crc(i64 %1001, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.388, i64 0, i64 0), i32 signext undef)
-  %1002 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_923 to i80*), align 8
-  %1003 = shl i80 %1002, 23
-  %1004 = ashr i80 %1003, 64
-  %1005 = shl nsw i80 %1004, 32
-  %1006 = trunc i80 %1005 to i64
-  %1007 = ashr exact i64 %1006, 32
-  call fastcc void @transparent_crc(i64 %1007, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.389, i64 0, i64 0), i32 signext undef)
-  %1008 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_923 to i80*), align 8
-  %1009 = shl i80 %1008, 39
-  %1010 = ashr i80 %1009, 62
-  %1011 = shl nsw i80 %1010, 32
-  %1012 = trunc i80 %1011 to i64
-  %1013 = ashr exact i64 %1012, 32
-  call fastcc void @transparent_crc(i64 %1013, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.390, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.394, i64 0, i64 0), i32 signext undef)
-  %1014 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_923, i64 0, i32 1) to i80*), align 2
-  %1015 = lshr i80 %1014, 11
-  %1016 = trunc i80 %1015 to i64
-  %1017 = and i64 %1016, 1
-  call fastcc void @transparent_crc(i64 %1017, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.395, i64 0, i64 0), i32 signext undef)
-  %1018 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_923, i64 0, i32 1) to i80*), align 2
-  %1019 = shl i80 %1018, 69
-  %1020 = ashr i80 %1019, 72
+  call fastcc void @transparent_crc(i64 %969, ptr @.str.371, i32 signext undef)
+  %970 = load volatile i80, ptr @g_921, align 8
+  %971 = shl i80 %970, 39
+  %972 = ashr i80 %971, 62
+  %973 = shl nsw i80 %972, 32
+  %974 = trunc i80 %973 to i64
+  %975 = ashr exact i64 %974, 32
+  call fastcc void @transparent_crc(i64 %975, ptr @.str.372, i32 signext undef)
+  %976 = load volatile i80, ptr @g_921, align 8
+  %977 = shl i80 %976, 57
+  %978 = ashr i80 %977, 58
+  %979 = shl nsw i80 %978, 32
+  %980 = trunc i80 %979 to i64
+  %981 = ashr exact i64 %980, 32
+  call fastcc void @transparent_crc(i64 %981, ptr @.str.373, i32 signext undef)
+  %982 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_921, i64 0, i32 1), align 2
+  %983 = lshr i80 %982, 49
+  %984 = trunc i80 %983 to i64
+  call fastcc void @transparent_crc(i64 %984, ptr @.str.374, i32 signext undef)
+  %985 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_921, i64 0, i32 1), align 2
+  %986 = lshr i80 %985, 24
+  %987 = trunc i80 %986 to i64
+  %988 = and i64 %987, 33554431
+  call fastcc void @transparent_crc(i64 %988, ptr @.str.375, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.380, i32 signext undef)
+  %989 = load volatile i80, ptr @g_922, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.387, i32 signext undef)
+  %990 = load volatile i80, ptr @g_923, align 8
+  %991 = lshr i80 %990, 57
+  %992 = trunc i80 %991 to i64
+  call fastcc void @transparent_crc(i64 %992, ptr @.str.388, i32 signext undef)
+  %993 = load volatile i80, ptr @g_923, align 8
+  %994 = shl i80 %993, 23
+  %995 = ashr i80 %994, 64
+  %996 = shl nsw i80 %995, 32
+  %997 = trunc i80 %996 to i64
+  %998 = ashr exact i64 %997, 32
+  call fastcc void @transparent_crc(i64 %998, ptr @.str.389, i32 signext undef)
+  %999 = load volatile i80, ptr @g_923, align 8
+  %1000 = shl i80 %999, 39
+  %1001 = ashr i80 %1000, 62
+  %1002 = shl nsw i80 %1001, 32
+  %1003 = trunc i80 %1002 to i64
+  %1004 = ashr exact i64 %1003, 32
+  call fastcc void @transparent_crc(i64 %1004, ptr @.str.390, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.394, i32 signext undef)
+  %1005 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_923, i64 0, i32 1), align 2
+  %1006 = lshr i80 %1005, 11
+  %1007 = trunc i80 %1006 to i64
+  %1008 = and i64 %1007, 1
+  call fastcc void @transparent_crc(i64 %1008, ptr @.str.395, i32 signext undef)
+  %1009 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_923, i64 0, i32 1), align 2
+  %1010 = shl i80 %1009, 69
+  %1011 = ashr i80 %1010, 72
+  %1012 = shl nsw i80 %1011, 32
+  %1013 = trunc i80 %1012 to i64
+  %1014 = ashr exact i64 %1013, 32
+  call fastcc void @transparent_crc(i64 %1014, ptr @.str.396, i32 signext undef)
+  %1015 = load volatile i80, ptr @g_924, align 8
+  %1016 = lshr i80 %1015, 57
+  %1017 = trunc i80 %1016 to i64
+  call fastcc void @transparent_crc(i64 %1017, ptr @.str.397, i32 signext undef)
+  %1018 = load volatile i80, ptr @g_924, align 8
+  %1019 = shl i80 %1018, 23
+  %1020 = ashr i80 %1019, 64
   %1021 = shl nsw i80 %1020, 32
   %1022 = trunc i80 %1021 to i64
   %1023 = ashr exact i64 %1022, 32
-  call fastcc void @transparent_crc(i64 %1023, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.396, i64 0, i64 0), i32 signext undef)
-  %1024 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_924 to i80*), align 8
-  %1025 = lshr i80 %1024, 57
-  %1026 = trunc i80 %1025 to i64
-  call fastcc void @transparent_crc(i64 %1026, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.397, i64 0, i64 0), i32 signext undef)
-  %1027 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_924 to i80*), align 8
-  %1028 = shl i80 %1027, 23
-  %1029 = ashr i80 %1028, 64
-  %1030 = shl nsw i80 %1029, 32
-  %1031 = trunc i80 %1030 to i64
-  %1032 = ashr exact i64 %1031, 32
-  call fastcc void @transparent_crc(i64 %1032, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.398, i64 0, i64 0), i32 signext undef)
-  %1033 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_924 to i80*), align 8
-  %1034 = shl i80 %1033, 39
-  %1035 = ashr i80 %1034, 62
-  %1036 = shl nsw i80 %1035, 32
-  %1037 = trunc i80 %1036 to i64
-  %1038 = ashr exact i64 %1037, 32
-  call fastcc void @transparent_crc(i64 %1038, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.399, i64 0, i64 0), i32 signext undef)
-  %1039 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_924 to i80*), align 8
-  %1040 = shl i80 %1039, 57
-  %1041 = ashr i80 %1040, 58
-  %1042 = shl nsw i80 %1041, 32
-  %1043 = trunc i80 %1042 to i64
-  %1044 = ashr exact i64 %1043, 32
-  call fastcc void @transparent_crc(i64 %1044, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.400, i64 0, i64 0), i32 signext undef)
-  %1045 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_928 to i80*), align 8
-  %1046 = shl i80 %1045, 57
-  %1047 = ashr i80 %1046, 58
-  %1048 = shl nsw i80 %1047, 32
-  %1049 = trunc i80 %1048 to i64
-  %1050 = ashr exact i64 %1049, 32
-  call fastcc void @transparent_crc(i64 %1050, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.436, i64 0, i64 0), i32 signext undef)
-  %1051 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_928, i64 0, i32 1) to i80*), align 2
-  %1052 = lshr i80 %1051, 49
+  call fastcc void @transparent_crc(i64 %1023, ptr @.str.398, i32 signext undef)
+  %1024 = load volatile i80, ptr @g_924, align 8
+  %1025 = shl i80 %1024, 39
+  %1026 = ashr i80 %1025, 62
+  %1027 = shl nsw i80 %1026, 32
+  %1028 = trunc i80 %1027 to i64
+  %1029 = ashr exact i64 %1028, 32
+  call fastcc void @transparent_crc(i64 %1029, ptr @.str.399, i32 signext undef)
+  %1030 = load volatile i80, ptr @g_924, align 8
+  %1031 = shl i80 %1030, 57
+  %1032 = ashr i80 %1031, 58
+  %1033 = shl nsw i80 %1032, 32
+  %1034 = trunc i80 %1033 to i64
+  %1035 = ashr exact i64 %1034, 32
+  call fastcc void @transparent_crc(i64 %1035, ptr @.str.400, i32 signext undef)
+  %1036 = load volatile i80, ptr @g_928, align 8
+  %1037 = shl i80 %1036, 57
+  %1038 = ashr i80 %1037, 58
+  %1039 = shl nsw i80 %1038, 32
+  %1040 = trunc i80 %1039 to i64
+  %1041 = ashr exact i64 %1040, 32
+  call fastcc void @transparent_crc(i64 %1041, ptr @.str.436, i32 signext undef)
+  %1042 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_928, i64 0, i32 1), align 2
+  %1043 = lshr i80 %1042, 49
+  %1044 = trunc i80 %1043 to i64
+  call fastcc void @transparent_crc(i64 %1044, ptr @.str.437, i32 signext undef)
+  %1045 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_928, i64 0, i32 1), align 2
+  %1046 = lshr i80 %1045, 24
+  %1047 = trunc i80 %1046 to i64
+  %1048 = and i64 %1047, 33554431
+  call fastcc void @transparent_crc(i64 %1048, ptr @.str.438, i32 signext undef)
+  %1049 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_928, i64 0, i32 1), align 2
+  %1050 = shl i80 %1049, 56
+  %1051 = ashr i80 %1050, 68
+  %1052 = shl nsw i80 %1051, 32
   %1053 = trunc i80 %1052 to i64
-  call fastcc void @transparent_crc(i64 %1053, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.437, i64 0, i64 0), i32 signext undef)
-  %1054 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_928, i64 0, i32 1) to i80*), align 2
-  %1055 = lshr i80 %1054, 24
-  %1056 = trunc i80 %1055 to i64
-  %1057 = and i64 %1056, 33554431
-  call fastcc void @transparent_crc(i64 %1057, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.438, i64 0, i64 0), i32 signext undef)
-  %1058 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_928, i64 0, i32 1) to i80*), align 2
-  %1059 = shl i80 %1058, 56
-  %1060 = ashr i80 %1059, 68
-  %1061 = shl nsw i80 %1060, 32
-  %1062 = trunc i80 %1061 to i64
-  %1063 = ashr exact i64 %1062, 32
-  call fastcc void @transparent_crc(i64 %1063, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.439, i64 0, i64 0), i32 signext undef)
-  %1064 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_928, i64 0, i32 1) to i80*), align 2
-  %1065 = lshr i80 %1064, 11
-  %1066 = trunc i80 %1065 to i64
-  %1067 = and i64 %1066, 1
-  call fastcc void @transparent_crc(i64 %1067, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.440, i64 0, i64 0), i32 signext undef)
-  %1068 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_928, i64 0, i32 1) to i80*), align 2
-  %1069 = shl i80 %1068, 69
-  %1070 = ashr i80 %1069, 72
+  %1054 = ashr exact i64 %1053, 32
+  call fastcc void @transparent_crc(i64 %1054, ptr @.str.439, i32 signext undef)
+  %1055 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_928, i64 0, i32 1), align 2
+  %1056 = lshr i80 %1055, 11
+  %1057 = trunc i80 %1056 to i64
+  %1058 = and i64 %1057, 1
+  call fastcc void @transparent_crc(i64 %1058, ptr @.str.440, i32 signext undef)
+  %1059 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_928, i64 0, i32 1), align 2
+  %1060 = shl i80 %1059, 69
+  %1061 = ashr i80 %1060, 72
+  %1062 = shl nsw i80 %1061, 32
+  %1063 = trunc i80 %1062 to i64
+  %1064 = ashr exact i64 %1063, 32
+  call fastcc void @transparent_crc(i64 %1064, ptr @.str.441, i32 signext undef)
+  %1065 = load volatile i80, ptr @g_929, align 2
+  %1066 = lshr i80 %1065, 57
+  %1067 = trunc i80 %1066 to i64
+  call fastcc void @transparent_crc(i64 %1067, ptr @.str.442, i32 signext undef)
+  %1068 = load volatile i80, ptr @g_929, align 2
+  %1069 = shl i80 %1068, 23
+  %1070 = ashr i80 %1069, 64
   %1071 = shl nsw i80 %1070, 32
   %1072 = trunc i80 %1071 to i64
   %1073 = ashr exact i64 %1072, 32
-  call fastcc void @transparent_crc(i64 %1073, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.441, i64 0, i64 0), i32 signext undef)
-  %1074 = getelementptr inbounds [10 x %4], [10 x %4]* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_929 to [10 x %4]*), i64 0, i64 0
-  %1075 = bitcast %4* %1074 to i80*
-  %1076 = load volatile i80, i80* %1075, align 2
-  %1077 = lshr i80 %1076, 57
+  call fastcc void @transparent_crc(i64 %1073, ptr @.str.443, i32 signext undef)
+  %1074 = load volatile i80, ptr @g_929, align 2
+  %1075 = shl i80 %1074, 39
+  %1076 = ashr i80 %1075, 62
+  %1077 = shl nsw i80 %1076, 32
   %1078 = trunc i80 %1077 to i64
-  call fastcc void @transparent_crc(i64 %1078, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.442, i64 0, i64 0), i32 signext undef)
-  %1079 = load volatile i80, i80* %1075, align 2
-  %1080 = shl i80 %1079, 23
-  %1081 = ashr i80 %1080, 64
-  %1082 = shl nsw i80 %1081, 32
-  %1083 = trunc i80 %1082 to i64
-  %1084 = ashr exact i64 %1083, 32
-  call fastcc void @transparent_crc(i64 %1084, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.443, i64 0, i64 0), i32 signext undef)
-  %1085 = load volatile i80, i80* %1075, align 2
-  %1086 = shl i80 %1085, 39
-  %1087 = ashr i80 %1086, 62
-  %1088 = shl nsw i80 %1087, 32
-  %1089 = trunc i80 %1088 to i64
-  %1090 = ashr exact i64 %1089, 32
-  call fastcc void @transparent_crc(i64 %1090, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.444, i64 0, i64 0), i32 signext undef)
-  %1091 = load volatile i80, i80* %1075, align 2
-  %1092 = shl i80 %1091, 57
-  %1093 = ashr i80 %1092, 58
-  %1094 = shl nsw i80 %1093, 32
-  %1095 = trunc i80 %1094 to i64
-  %1096 = ashr exact i64 %1095, 32
-  call fastcc void @transparent_crc(i64 %1096, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.445, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.449, i64 0, i64 0), i32 signext undef)
-  %1097 = load volatile i80, i80* undef, align 2
-  %1098 = shl i80 %1097, 69
-  %1099 = ashr i80 %1098, 72
-  %1100 = shl nsw i80 %1099, 32
-  %1101 = trunc i80 %1100 to i64
-  %1102 = ashr exact i64 %1101, 32
-  call fastcc void @transparent_crc(i64 %1102, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.450, i64 0, i64 0), i32 signext undef)
-  %1103 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930 to i80*), align 8
-  %1104 = lshr i80 %1103, 57
+  %1079 = ashr exact i64 %1078, 32
+  call fastcc void @transparent_crc(i64 %1079, ptr @.str.444, i32 signext undef)
+  %1080 = load volatile i80, ptr @g_929, align 2
+  %1081 = shl i80 %1080, 57
+  %1082 = ashr i80 %1081, 58
+  %1083 = shl nsw i80 %1082, 32
+  %1084 = trunc i80 %1083 to i64
+  %1085 = ashr exact i64 %1084, 32
+  call fastcc void @transparent_crc(i64 %1085, ptr @.str.445, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.449, i32 signext undef)
+  %1086 = load volatile i80, ptr undef, align 2
+  %1087 = shl i80 %1086, 69
+  %1088 = ashr i80 %1087, 72
+  %1089 = shl nsw i80 %1088, 32
+  %1090 = trunc i80 %1089 to i64
+  %1091 = ashr exact i64 %1090, 32
+  call fastcc void @transparent_crc(i64 %1091, ptr @.str.450, i32 signext undef)
+  %1092 = load volatile i80, ptr @g_930, align 8
+  %1093 = lshr i80 %1092, 57
+  %1094 = trunc i80 %1093 to i64
+  call fastcc void @transparent_crc(i64 %1094, ptr @.str.451, i32 signext undef)
+  %1095 = load volatile i80, ptr @g_930, align 8
+  %1096 = shl i80 %1095, 23
+  %1097 = ashr i80 %1096, 64
+  %1098 = shl nsw i80 %1097, 32
+  %1099 = trunc i80 %1098 to i64
+  %1100 = ashr exact i64 %1099, 32
+  call fastcc void @transparent_crc(i64 %1100, ptr @.str.452, i32 signext undef)
+  %1101 = load volatile i80, ptr @g_930, align 8
+  %1102 = shl i80 %1101, 39
+  %1103 = ashr i80 %1102, 62
+  %1104 = shl nsw i80 %1103, 32
   %1105 = trunc i80 %1104 to i64
-  call fastcc void @transparent_crc(i64 %1105, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.451, i64 0, i64 0), i32 signext undef)
-  %1106 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930 to i80*), align 8
-  %1107 = shl i80 %1106, 23
-  %1108 = ashr i80 %1107, 64
-  %1109 = shl nsw i80 %1108, 32
-  %1110 = trunc i80 %1109 to i64
-  %1111 = ashr exact i64 %1110, 32
-  call fastcc void @transparent_crc(i64 %1111, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.452, i64 0, i64 0), i32 signext undef)
-  %1112 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930 to i80*), align 8
-  %1113 = shl i80 %1112, 39
-  %1114 = ashr i80 %1113, 62
-  %1115 = shl nsw i80 %1114, 32
-  %1116 = trunc i80 %1115 to i64
-  %1117 = ashr exact i64 %1116, 32
-  call fastcc void @transparent_crc(i64 %1117, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.453, i64 0, i64 0), i32 signext undef)
-  %1118 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930 to i80*), align 8
-  %1119 = shl i80 %1118, 57
-  %1120 = ashr i80 %1119, 58
-  %1121 = shl nsw i80 %1120, 32
-  %1122 = trunc i80 %1121 to i64
-  %1123 = ashr exact i64 %1122, 32
-  call fastcc void @transparent_crc(i64 %1123, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.454, i64 0, i64 0), i32 signext undef)
-  %1124 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930, i64 0, i32 1) to i80*), align 2
-  %1125 = lshr i80 %1124, 49
-  %1126 = trunc i80 %1125 to i64
-  call fastcc void @transparent_crc(i64 %1126, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.455, i64 0, i64 0), i32 signext undef)
-  %1127 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930, i64 0, i32 1) to i80*), align 2
-  %1128 = lshr i80 %1127, 24
-  %1129 = trunc i80 %1128 to i64
-  %1130 = and i64 %1129, 33554431
-  call fastcc void @transparent_crc(i64 %1130, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.456, i64 0, i64 0), i32 signext undef)
-  %1131 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_930, i64 0, i32 1) to i80*), align 2
-  %1132 = shl i80 %1131, 56
-  %1133 = ashr i80 %1132, 68
-  %1134 = shl nsw i80 %1133, 32
-  %1135 = trunc i80 %1134 to i64
-  %1136 = ashr exact i64 %1135, 32
-  call fastcc void @transparent_crc(i64 %1136, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.457, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.462, i64 0, i64 0), i32 signext undef)
-  %1137 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_931 to i80*), align 8
-  %1138 = shl i80 %1137, 57
-  %1139 = ashr i80 %1138, 58
-  %1140 = shl nsw i80 %1139, 32
-  %1141 = trunc i80 %1140 to i64
-  %1142 = ashr exact i64 %1141, 32
-  call fastcc void @transparent_crc(i64 %1142, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.463, i64 0, i64 0), i32 signext undef)
-  %1143 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_931, i64 0, i32 1) to i80*), align 2
-  %1144 = lshr i80 %1143, 49
-  %1145 = trunc i80 %1144 to i64
-  call fastcc void @transparent_crc(i64 %1145, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.464, i64 0, i64 0), i32 signext undef)
-  %1146 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_931, i64 0, i32 1) to i80*), align 2
-  %1147 = lshr i80 %1146, 24
-  %1148 = trunc i80 %1147 to i64
-  %1149 = and i64 %1148, 33554431
-  call fastcc void @transparent_crc(i64 %1149, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.465, i64 0, i64 0), i32 signext undef)
-  %1150 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_931, i64 0, i32 1) to i80*), align 2
-  %1151 = shl i80 %1150, 56
-  %1152 = ashr i80 %1151, 68
-  %1153 = shl nsw i80 %1152, 32
-  %1154 = trunc i80 %1153 to i64
-  %1155 = ashr exact i64 %1154, 32
-  call fastcc void @transparent_crc(i64 %1155, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.466, i64 0, i64 0), i32 signext undef)
-  %1156 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_931, i64 0, i32 1) to i80*), align 2
-  %1157 = lshr i80 %1156, 11
-  %1158 = trunc i80 %1157 to i64
-  %1159 = and i64 %1158, 1
-  call fastcc void @transparent_crc(i64 %1159, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.467, i64 0, i64 0), i32 signext undef)
-  %1160 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_931, i64 0, i32 1) to i80*), align 2
-  %1161 = shl i80 %1160, 69
-  %1162 = ashr i80 %1161, 72
-  %1163 = shl nsw i80 %1162, 32
+  %1106 = ashr exact i64 %1105, 32
+  call fastcc void @transparent_crc(i64 %1106, ptr @.str.453, i32 signext undef)
+  %1107 = load volatile i80, ptr @g_930, align 8
+  %1108 = shl i80 %1107, 57
+  %1109 = ashr i80 %1108, 58
+  %1110 = shl nsw i80 %1109, 32
+  %1111 = trunc i80 %1110 to i64
+  %1112 = ashr exact i64 %1111, 32
+  call fastcc void @transparent_crc(i64 %1112, ptr @.str.454, i32 signext undef)
+  %1113 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_930, i64 0, i32 1), align 2
+  %1114 = lshr i80 %1113, 49
+  %1115 = trunc i80 %1114 to i64
+  call fastcc void @transparent_crc(i64 %1115, ptr @.str.455, i32 signext undef)
+  %1116 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_930, i64 0, i32 1), align 2
+  %1117 = lshr i80 %1116, 24
+  %1118 = trunc i80 %1117 to i64
+  %1119 = and i64 %1118, 33554431
+  call fastcc void @transparent_crc(i64 %1119, ptr @.str.456, i32 signext undef)
+  %1120 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_930, i64 0, i32 1), align 2
+  %1121 = shl i80 %1120, 56
+  %1122 = ashr i80 %1121, 68
+  %1123 = shl nsw i80 %1122, 32
+  %1124 = trunc i80 %1123 to i64
+  %1125 = ashr exact i64 %1124, 32
+  call fastcc void @transparent_crc(i64 %1125, ptr @.str.457, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.462, i32 signext undef)
+  %1126 = load volatile i80, ptr @g_931, align 8
+  %1127 = shl i80 %1126, 57
+  %1128 = ashr i80 %1127, 58
+  %1129 = shl nsw i80 %1128, 32
+  %1130 = trunc i80 %1129 to i64
+  %1131 = ashr exact i64 %1130, 32
+  call fastcc void @transparent_crc(i64 %1131, ptr @.str.463, i32 signext undef)
+  %1132 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_931, i64 0, i32 1), align 2
+  %1133 = lshr i80 %1132, 49
+  %1134 = trunc i80 %1133 to i64
+  call fastcc void @transparent_crc(i64 %1134, ptr @.str.464, i32 signext undef)
+  %1135 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_931, i64 0, i32 1), align 2
+  %1136 = lshr i80 %1135, 24
+  %1137 = trunc i80 %1136 to i64
+  %1138 = and i64 %1137, 33554431
+  call fastcc void @transparent_crc(i64 %1138, ptr @.str.465, i32 signext undef)
+  %1139 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_931, i64 0, i32 1), align 2
+  %1140 = shl i80 %1139, 56
+  %1141 = ashr i80 %1140, 68
+  %1142 = shl nsw i80 %1141, 32
+  %1143 = trunc i80 %1142 to i64
+  %1144 = ashr exact i64 %1143, 32
+  call fastcc void @transparent_crc(i64 %1144, ptr @.str.466, i32 signext undef)
+  %1145 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_931, i64 0, i32 1), align 2
+  %1146 = lshr i80 %1145, 11
+  %1147 = trunc i80 %1146 to i64
+  %1148 = and i64 %1147, 1
+  call fastcc void @transparent_crc(i64 %1148, ptr @.str.467, i32 signext undef)
+  %1149 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_931, i64 0, i32 1), align 2
+  %1150 = shl i80 %1149, 69
+  %1151 = ashr i80 %1150, 72
+  %1152 = shl nsw i80 %1151, 32
+  %1153 = trunc i80 %1152 to i64
+  %1154 = ashr exact i64 %1153, 32
+  call fastcc void @transparent_crc(i64 %1154, ptr @.str.468, i32 signext undef)
+  %1155 = load volatile i80, ptr @g_932, align 8
+  %1156 = lshr i80 %1155, 57
+  %1157 = trunc i80 %1156 to i64
+  call fastcc void @transparent_crc(i64 %1157, ptr @.str.469, i32 signext undef)
+  %1158 = load volatile i80, ptr @g_932, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.490, i32 signext undef)
+  %1159 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_934, i64 0, i32 1), align 2
+  %1160 = lshr i80 %1159, 49
+  %1161 = trunc i80 %1160 to i64
+  call fastcc void @transparent_crc(i64 %1161, ptr @.str.491, i32 signext undef)
+  %1162 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_934, i64 0, i32 1), align 2
+  %1163 = lshr i80 %1162, 24
   %1164 = trunc i80 %1163 to i64
-  %1165 = ashr exact i64 %1164, 32
-  call fastcc void @transparent_crc(i64 %1165, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.468, i64 0, i64 0), i32 signext undef)
-  %1166 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_932 to i80*), align 8
-  %1167 = lshr i80 %1166, 57
-  %1168 = trunc i80 %1167 to i64
-  call fastcc void @transparent_crc(i64 %1168, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.469, i64 0, i64 0), i32 signext undef)
-  %1169 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_932 to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.490, i64 0, i64 0), i32 signext undef)
-  %1170 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_934, i64 0, i32 1) to i80*), align 2
-  %1171 = lshr i80 %1170, 49
-  %1172 = trunc i80 %1171 to i64
-  call fastcc void @transparent_crc(i64 %1172, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.491, i64 0, i64 0), i32 signext undef)
-  %1173 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_934, i64 0, i32 1) to i80*), align 2
-  %1174 = lshr i80 %1173, 24
-  %1175 = trunc i80 %1174 to i64
-  %1176 = and i64 %1175, 33554431
-  call fastcc void @transparent_crc(i64 %1176, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.492, i64 0, i64 0), i32 signext undef)
-  %1177 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_934, i64 0, i32 1) to i80*), align 2
-  %1178 = shl i80 %1177, 56
-  %1179 = ashr i80 %1178, 68
-  %1180 = shl nsw i80 %1179, 32
-  %1181 = trunc i80 %1180 to i64
-  %1182 = ashr exact i64 %1181, 32
-  call fastcc void @transparent_crc(i64 %1182, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.493, i64 0, i64 0), i32 signext undef)
-  %1183 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_934, i64 0, i32 1) to i80*), align 2
-  %1184 = lshr i80 %1183, 11
+  %1165 = and i64 %1164, 33554431
+  call fastcc void @transparent_crc(i64 %1165, ptr @.str.492, i32 signext undef)
+  %1166 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_934, i64 0, i32 1), align 2
+  %1167 = shl i80 %1166, 56
+  %1168 = ashr i80 %1167, 68
+  %1169 = shl nsw i80 %1168, 32
+  %1170 = trunc i80 %1169 to i64
+  %1171 = ashr exact i64 %1170, 32
+  call fastcc void @transparent_crc(i64 %1171, ptr @.str.493, i32 signext undef)
+  %1172 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_934, i64 0, i32 1), align 2
+  %1173 = lshr i80 %1172, 11
+  %1174 = trunc i80 %1173 to i64
+  %1175 = and i64 %1174, 1
+  call fastcc void @transparent_crc(i64 %1175, ptr @.str.494, i32 signext undef)
+  %1176 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_934, i64 0, i32 1), align 2
+  %1177 = shl i80 %1176, 69
+  %1178 = ashr i80 %1177, 72
+  %1179 = shl nsw i80 %1178, 32
+  %1180 = trunc i80 %1179 to i64
+  %1181 = ashr exact i64 %1180, 32
+  call fastcc void @transparent_crc(i64 %1181, ptr @.str.495, i32 signext undef)
+  %1182 = getelementptr inbounds [10 x [6 x [4 x %4]]], ptr bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_935 to ptr), i64 0, i64 0, i64 0, i64 0
+  %1183 = load volatile i80, ptr %1182, align 2
+  %1184 = lshr i80 %1183, 57
   %1185 = trunc i80 %1184 to i64
-  %1186 = and i64 %1185, 1
-  call fastcc void @transparent_crc(i64 %1186, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.494, i64 0, i64 0), i32 signext undef)
-  %1187 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_934, i64 0, i32 1) to i80*), align 2
-  %1188 = shl i80 %1187, 69
-  %1189 = ashr i80 %1188, 72
-  %1190 = shl nsw i80 %1189, 32
-  %1191 = trunc i80 %1190 to i64
-  %1192 = ashr exact i64 %1191, 32
-  call fastcc void @transparent_crc(i64 %1192, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.495, i64 0, i64 0), i32 signext undef)
-  %1193 = getelementptr inbounds [10 x [6 x [4 x %4]]], [10 x [6 x [4 x %4]]]* bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_935 to [10 x [6 x [4 x %4]]]*), i64 0, i64 0, i64 0, i64 0
-  %1194 = bitcast %4* %1193 to i80*
-  %1195 = load volatile i80, i80* %1194, align 2
-  %1196 = lshr i80 %1195, 57
-  %1197 = trunc i80 %1196 to i64
-  call fastcc void @transparent_crc(i64 %1197, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.496, i64 0, i64 0), i32 signext undef)
-  %1198 = load volatile i80, i80* %1194, align 2
-  %1199 = shl i80 %1198, 23
-  %1200 = ashr i80 %1199, 64
+  call fastcc void @transparent_crc(i64 %1185, ptr @.str.496, i32 signext undef)
+  %1186 = load volatile i80, ptr %1182, align 2
+  %1187 = shl i80 %1186, 23
+  %1188 = ashr i80 %1187, 64
+  %1189 = shl nsw i80 %1188, 32
+  %1190 = trunc i80 %1189 to i64
+  %1191 = ashr exact i64 %1190, 32
+  call fastcc void @transparent_crc(i64 %1191, ptr @.str.497, i32 signext undef)
+  %1192 = load volatile i80, ptr %1182, align 2
+  %1193 = shl i80 %1192, 39
+  %1194 = ashr i80 %1193, 62
+  %1195 = shl nsw i80 %1194, 32
+  %1196 = trunc i80 %1195 to i64
+  %1197 = ashr exact i64 %1196, 32
+  call fastcc void @transparent_crc(i64 %1197, ptr @.str.498, i32 signext undef)
+  %1198 = load volatile i80, ptr %1182, align 2
+  %1199 = shl i80 %1198, 57
+  %1200 = ashr i80 %1199, 58
   %1201 = shl nsw i80 %1200, 32
   %1202 = trunc i80 %1201 to i64
   %1203 = ashr exact i64 %1202, 32
-  call fastcc void @transparent_crc(i64 %1203, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.497, i64 0, i64 0), i32 signext undef)
-  %1204 = load volatile i80, i80* %1194, align 2
-  %1205 = shl i80 %1204, 39
-  %1206 = ashr i80 %1205, 62
-  %1207 = shl nsw i80 %1206, 32
-  %1208 = trunc i80 %1207 to i64
-  %1209 = ashr exact i64 %1208, 32
-  call fastcc void @transparent_crc(i64 %1209, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.498, i64 0, i64 0), i32 signext undef)
-  %1210 = load volatile i80, i80* %1194, align 2
-  %1211 = shl i80 %1210, 57
-  %1212 = ashr i80 %1211, 58
-  %1213 = shl nsw i80 %1212, 32
-  %1214 = trunc i80 %1213 to i64
-  %1215 = ashr exact i64 %1214, 32
-  call fastcc void @transparent_crc(i64 %1215, i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str.499, i64 0, i64 0), i32 signext undef)
-  %1216 = load i80, i80* undef, align 2
-  %1217 = lshr i80 %1216, 49
-  %1218 = trunc i80 %1217 to i64
-  call fastcc void @transparent_crc(i64 %1218, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.500, i64 0, i64 0), i32 signext undef)
-  %1219 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.501, i64 0, i64 0), i32 signext undef)
-  %1220 = load i80, i80* undef, align 2
-  %1221 = shl i80 %1220, 56
-  %1222 = ashr i80 %1221, 68
-  %1223 = shl nsw i80 %1222, 32
-  %1224 = trunc i80 %1223 to i64
-  %1225 = ashr exact i64 %1224, 32
-  call fastcc void @transparent_crc(i64 %1225, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.502, i64 0, i64 0), i32 signext undef)
-  %1226 = load i80, i80* undef, align 2
-  %1227 = lshr i80 %1226, 11
-  %1228 = trunc i80 %1227 to i64
-  %1229 = and i64 %1228, 1
-  call fastcc void @transparent_crc(i64 %1229, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.503, i64 0, i64 0), i32 signext undef)
-  %1230 = load volatile i80, i80* undef, align 2
-  %1231 = shl i80 %1230, 69
-  %1232 = ashr i80 %1231, 72
-  %1233 = shl nsw i80 %1232, 32
-  %1234 = trunc i80 %1233 to i64
-  %1235 = ashr exact i64 %1234, 32
-  call fastcc void @transparent_crc(i64 %1235, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.504, i64 0, i64 0), i32 signext undef)
-  %1236 = getelementptr inbounds [4 x %4], [4 x %4]* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_936 to [4 x %4]*), i64 0, i64 0
-  %1237 = bitcast %4* %1236 to i80*
-  %1238 = load volatile i80, i80* %1237, align 2
-  %1239 = lshr i80 %1238, 57
-  %1240 = trunc i80 %1239 to i64
-  call fastcc void @transparent_crc(i64 %1240, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.505, i64 0, i64 0), i32 signext undef)
-  %1241 = load volatile i80, i80* %1237, align 2
-  %1242 = shl i80 %1241, 23
-  %1243 = ashr i80 %1242, 64
-  %1244 = shl nsw i80 %1243, 32
-  %1245 = trunc i80 %1244 to i64
-  %1246 = ashr exact i64 %1245, 32
-  call fastcc void @transparent_crc(i64 %1246, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.506, i64 0, i64 0), i32 signext undef)
-  %1247 = load volatile i80, i80* %1237, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.507, i64 0, i64 0), i32 signext undef)
-  %1248 = load volatile i80, i80* %1237, align 2
-  %1249 = shl i80 %1248, 57
-  %1250 = ashr i80 %1249, 58
-  %1251 = shl nsw i80 %1250, 32
+  call fastcc void @transparent_crc(i64 %1203, ptr @.str.499, i32 signext undef)
+  %1204 = load i80, ptr undef, align 2
+  %1205 = lshr i80 %1204, 49
+  %1206 = trunc i80 %1205 to i64
+  call fastcc void @transparent_crc(i64 %1206, ptr @.str.500, i32 signext undef)
+  %1207 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.501, i32 signext undef)
+  %1208 = load i80, ptr undef, align 2
+  %1209 = shl i80 %1208, 56
+  %1210 = ashr i80 %1209, 68
+  %1211 = shl nsw i80 %1210, 32
+  %1212 = trunc i80 %1211 to i64
+  %1213 = ashr exact i64 %1212, 32
+  call fastcc void @transparent_crc(i64 %1213, ptr @.str.502, i32 signext undef)
+  %1214 = load i80, ptr undef, align 2
+  %1215 = lshr i80 %1214, 11
+  %1216 = trunc i80 %1215 to i64
+  %1217 = and i64 %1216, 1
+  call fastcc void @transparent_crc(i64 %1217, ptr @.str.503, i32 signext undef)
+  %1218 = load volatile i80, ptr undef, align 2
+  %1219 = shl i80 %1218, 69
+  %1220 = ashr i80 %1219, 72
+  %1221 = shl nsw i80 %1220, 32
+  %1222 = trunc i80 %1221 to i64
+  %1223 = ashr exact i64 %1222, 32
+  call fastcc void @transparent_crc(i64 %1223, ptr @.str.504, i32 signext undef)
+  %1224 = load volatile i80, ptr @g_936, align 2
+  %1225 = lshr i80 %1224, 57
+  %1226 = trunc i80 %1225 to i64
+  call fastcc void @transparent_crc(i64 %1226, ptr @.str.505, i32 signext undef)
+  %1227 = load volatile i80, ptr @g_936, align 2
+  %1228 = shl i80 %1227, 23
+  %1229 = ashr i80 %1228, 64
+  %1230 = shl nsw i80 %1229, 32
+  %1231 = trunc i80 %1230 to i64
+  %1232 = ashr exact i64 %1231, 32
+  call fastcc void @transparent_crc(i64 %1232, ptr @.str.506, i32 signext undef)
+  %1233 = load volatile i80, ptr @g_936, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.507, i32 signext undef)
+  %1234 = load volatile i80, ptr @g_936, align 2
+  %1235 = shl i80 %1234, 57
+  %1236 = ashr i80 %1235, 58
+  %1237 = shl nsw i80 %1236, 32
+  %1238 = trunc i80 %1237 to i64
+  %1239 = ashr exact i64 %1238, 32
+  call fastcc void @transparent_crc(i64 %1239, ptr @.str.508, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.547, i32 signext undef)
+  %1240 = load i80, ptr undef, align 2
+  %1241 = lshr i80 %1240, 11
+  %1242 = trunc i80 %1241 to i64
+  %1243 = and i64 %1242, 1
+  call fastcc void @transparent_crc(i64 %1243, ptr @.str.548, i32 signext undef)
+  %1244 = load volatile i80, ptr undef, align 2
+  %1245 = shl i80 %1244, 69
+  %1246 = ashr i80 %1245, 72
+  %1247 = shl nsw i80 %1246, 32
+  %1248 = trunc i80 %1247 to i64
+  %1249 = ashr exact i64 %1248, 32
+  call fastcc void @transparent_crc(i64 %1249, ptr @.str.549, i32 signext undef)
+  %1250 = load volatile i80, ptr @g_941, align 8
+  %1251 = lshr i80 %1250, 57
   %1252 = trunc i80 %1251 to i64
-  %1253 = ashr exact i64 %1252, 32
-  call fastcc void @transparent_crc(i64 %1253, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.508, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.547, i64 0, i64 0), i32 signext undef)
-  %1254 = load i80, i80* undef, align 2
-  %1255 = lshr i80 %1254, 11
-  %1256 = trunc i80 %1255 to i64
-  %1257 = and i64 %1256, 1
-  call fastcc void @transparent_crc(i64 %1257, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.548, i64 0, i64 0), i32 signext undef)
-  %1258 = load volatile i80, i80* undef, align 2
-  %1259 = shl i80 %1258, 69
-  %1260 = ashr i80 %1259, 72
-  %1261 = shl nsw i80 %1260, 32
-  %1262 = trunc i80 %1261 to i64
-  %1263 = ashr exact i64 %1262, 32
-  call fastcc void @transparent_crc(i64 %1263, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.549, i64 0, i64 0), i32 signext undef)
-  %1264 = load volatile i80, i80* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_941 to i80*), align 8
-  %1265 = lshr i80 %1264, 57
-  %1266 = trunc i80 %1265 to i64
-  call fastcc void @transparent_crc(i64 %1266, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.550, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.589, i64 0, i64 0), i32 signext undef)
-  %1267 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_945, i64 0, i32 1) to i80*), align 2
-  %1268 = lshr i80 %1267, 49
-  %1269 = trunc i80 %1268 to i64
-  call fastcc void @transparent_crc(i64 %1269, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.590, i64 0, i64 0), i32 signext undef)
-  %1270 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_945, i64 0, i32 1) to i80*), align 2
-  %1271 = lshr i80 %1270, 24
-  %1272 = trunc i80 %1271 to i64
-  %1273 = and i64 %1272, 33554431
-  call fastcc void @transparent_crc(i64 %1273, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.591, i64 0, i64 0), i32 signext undef)
-  %1274 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_945, i64 0, i32 1) to i80*), align 2
-  %1275 = shl i80 %1274, 56
-  %1276 = ashr i80 %1275, 68
-  %1277 = shl nsw i80 %1276, 32
+  call fastcc void @transparent_crc(i64 %1252, ptr @.str.550, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.589, i32 signext undef)
+  %1253 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_945, i64 0, i32 1), align 2
+  %1254 = lshr i80 %1253, 49
+  %1255 = trunc i80 %1254 to i64
+  call fastcc void @transparent_crc(i64 %1255, ptr @.str.590, i32 signext undef)
+  %1256 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_945, i64 0, i32 1), align 2
+  %1257 = lshr i80 %1256, 24
+  %1258 = trunc i80 %1257 to i64
+  %1259 = and i64 %1258, 33554431
+  call fastcc void @transparent_crc(i64 %1259, ptr @.str.591, i32 signext undef)
+  %1260 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_945, i64 0, i32 1), align 2
+  %1261 = shl i80 %1260, 56
+  %1262 = ashr i80 %1261, 68
+  %1263 = shl nsw i80 %1262, 32
+  %1264 = trunc i80 %1263 to i64
+  %1265 = ashr exact i64 %1264, 32
+  call fastcc void @transparent_crc(i64 %1265, ptr @.str.592, i32 signext undef)
+  %1266 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_945, i64 0, i32 1), align 2
+  %1267 = lshr i80 %1266, 11
+  %1268 = trunc i80 %1267 to i64
+  %1269 = and i64 %1268, 1
+  call fastcc void @transparent_crc(i64 %1269, ptr @.str.593, i32 signext undef)
+  %1270 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_945, i64 0, i32 1), align 2
+  %1271 = shl i80 %1270, 69
+  %1272 = ashr i80 %1271, 72
+  %1273 = shl nsw i80 %1272, 32
+  %1274 = trunc i80 %1273 to i64
+  %1275 = ashr exact i64 %1274, 32
+  call fastcc void @transparent_crc(i64 %1275, ptr @.str.594, i32 signext undef)
+  %1276 = load volatile i80, ptr @g_946, align 8
+  %1277 = lshr i80 %1276, 57
   %1278 = trunc i80 %1277 to i64
-  %1279 = ashr exact i64 %1278, 32
-  call fastcc void @transparent_crc(i64 %1279, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.592, i64 0, i64 0), i32 signext undef)
-  %1280 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_945, i64 0, i32 1) to i80*), align 2
-  %1281 = lshr i80 %1280, 11
-  %1282 = trunc i80 %1281 to i64
-  %1283 = and i64 %1282, 1
-  call fastcc void @transparent_crc(i64 %1283, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.593, i64 0, i64 0), i32 signext undef)
-  %1284 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_945, i64 0, i32 1) to i80*), align 2
-  %1285 = shl i80 %1284, 69
-  %1286 = ashr i80 %1285, 72
-  %1287 = shl nsw i80 %1286, 32
-  %1288 = trunc i80 %1287 to i64
-  %1289 = ashr exact i64 %1288, 32
-  call fastcc void @transparent_crc(i64 %1289, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.594, i64 0, i64 0), i32 signext undef)
-  %1290 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946 to i80*), align 8
-  %1291 = lshr i80 %1290, 57
-  %1292 = trunc i80 %1291 to i64
-  call fastcc void @transparent_crc(i64 %1292, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.595, i64 0, i64 0), i32 signext undef)
-  %1293 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946 to i80*), align 8
-  %1294 = shl i80 %1293, 23
-  %1295 = ashr i80 %1294, 64
-  %1296 = shl nsw i80 %1295, 32
-  %1297 = trunc i80 %1296 to i64
-  %1298 = ashr exact i64 %1297, 32
-  call fastcc void @transparent_crc(i64 %1298, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.596, i64 0, i64 0), i32 signext undef)
-  %1299 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946 to i80*), align 8
-  %1300 = shl i80 %1299, 39
-  %1301 = ashr i80 %1300, 62
-  %1302 = shl nsw i80 %1301, 32
-  %1303 = trunc i80 %1302 to i64
-  %1304 = ashr exact i64 %1303, 32
-  call fastcc void @transparent_crc(i64 %1304, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.597, i64 0, i64 0), i32 signext undef)
-  %1305 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946 to i80*), align 8
-  %1306 = shl i80 %1305, 57
-  %1307 = ashr i80 %1306, 58
-  %1308 = shl nsw i80 %1307, 32
-  %1309 = trunc i80 %1308 to i64
-  %1310 = ashr exact i64 %1309, 32
-  call fastcc void @transparent_crc(i64 %1310, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.598, i64 0, i64 0), i32 signext undef)
-  %1311 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946, i64 0, i32 1) to i80*), align 2
-  %1312 = lshr i80 %1311, 49
-  %1313 = trunc i80 %1312 to i64
-  call fastcc void @transparent_crc(i64 %1313, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.599, i64 0, i64 0), i32 signext undef)
-  %1314 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946, i64 0, i32 1) to i80*), align 2
-  %1315 = lshr i80 %1314, 24
-  %1316 = trunc i80 %1315 to i64
-  %1317 = and i64 %1316, 33554431
-  call fastcc void @transparent_crc(i64 %1317, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.600, i64 0, i64 0), i32 signext undef)
-  %1318 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946, i64 0, i32 1) to i80*), align 2
-  %1319 = shl i80 %1318, 56
-  %1320 = ashr i80 %1319, 68
-  %1321 = shl nsw i80 %1320, 32
-  %1322 = trunc i80 %1321 to i64
-  %1323 = ashr exact i64 %1322, 32
-  call fastcc void @transparent_crc(i64 %1323, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.601, i64 0, i64 0), i32 signext undef)
-  %1324 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946, i64 0, i32 1) to i80*), align 2
-  %1325 = lshr i80 %1324, 11
-  %1326 = trunc i80 %1325 to i64
-  %1327 = and i64 %1326, 1
-  call fastcc void @transparent_crc(i64 %1327, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.602, i64 0, i64 0), i32 signext undef)
-  %1328 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_946, i64 0, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.610, i64 0, i64 0), i32 signext undef)
-  %1329 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_947, i64 0, i32 1) to i80*), align 2
-  %1330 = lshr i80 %1329, 11
-  %1331 = trunc i80 %1330 to i64
-  %1332 = and i64 %1331, 1
-  call fastcc void @transparent_crc(i64 %1332, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.611, i64 0, i64 0), i32 signext undef)
-  %1333 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_947, i64 0, i32 1) to i80*), align 2
-  %1334 = shl i80 %1333, 69
-  %1335 = ashr i80 %1334, 72
-  %1336 = shl nsw i80 %1335, 32
+  call fastcc void @transparent_crc(i64 %1278, ptr @.str.595, i32 signext undef)
+  %1279 = load volatile i80, ptr @g_946, align 8
+  %1280 = shl i80 %1279, 23
+  %1281 = ashr i80 %1280, 64
+  %1282 = shl nsw i80 %1281, 32
+  %1283 = trunc i80 %1282 to i64
+  %1284 = ashr exact i64 %1283, 32
+  call fastcc void @transparent_crc(i64 %1284, ptr @.str.596, i32 signext undef)
+  %1285 = load volatile i80, ptr @g_946, align 8
+  %1286 = shl i80 %1285, 39
+  %1287 = ashr i80 %1286, 62
+  %1288 = shl nsw i80 %1287, 32
+  %1289 = trunc i80 %1288 to i64
+  %1290 = ashr exact i64 %1289, 32
+  call fastcc void @transparent_crc(i64 %1290, ptr @.str.597, i32 signext undef)
+  %1291 = load volatile i80, ptr @g_946, align 8
+  %1292 = shl i80 %1291, 57
+  %1293 = ashr i80 %1292, 58
+  %1294 = shl nsw i80 %1293, 32
+  %1295 = trunc i80 %1294 to i64
+  %1296 = ashr exact i64 %1295, 32
+  call fastcc void @transparent_crc(i64 %1296, ptr @.str.598, i32 signext undef)
+  %1297 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_946, i64 0, i32 1), align 2
+  %1298 = lshr i80 %1297, 49
+  %1299 = trunc i80 %1298 to i64
+  call fastcc void @transparent_crc(i64 %1299, ptr @.str.599, i32 signext undef)
+  %1300 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_946, i64 0, i32 1), align 2
+  %1301 = lshr i80 %1300, 24
+  %1302 = trunc i80 %1301 to i64
+  %1303 = and i64 %1302, 33554431
+  call fastcc void @transparent_crc(i64 %1303, ptr @.str.600, i32 signext undef)
+  %1304 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_946, i64 0, i32 1), align 2
+  %1305 = shl i80 %1304, 56
+  %1306 = ashr i80 %1305, 68
+  %1307 = shl nsw i80 %1306, 32
+  %1308 = trunc i80 %1307 to i64
+  %1309 = ashr exact i64 %1308, 32
+  call fastcc void @transparent_crc(i64 %1309, ptr @.str.601, i32 signext undef)
+  %1310 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_946, i64 0, i32 1), align 2
+  %1311 = lshr i80 %1310, 11
+  %1312 = trunc i80 %1311 to i64
+  %1313 = and i64 %1312, 1
+  call fastcc void @transparent_crc(i64 %1313, ptr @.str.602, i32 signext undef)
+  %1314 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_946, i64 0, i32 1), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.610, i32 signext undef)
+  %1315 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_947, i64 0, i32 1), align 2
+  %1316 = lshr i80 %1315, 11
+  %1317 = trunc i80 %1316 to i64
+  %1318 = and i64 %1317, 1
+  call fastcc void @transparent_crc(i64 %1318, ptr @.str.611, i32 signext undef)
+  %1319 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_947, i64 0, i32 1), align 2
+  %1320 = shl i80 %1319, 69
+  %1321 = ashr i80 %1320, 72
+  %1322 = shl nsw i80 %1321, 32
+  %1323 = trunc i80 %1322 to i64
+  %1324 = ashr exact i64 %1323, 32
+  call fastcc void @transparent_crc(i64 %1324, ptr @.str.612, i32 signext undef)
+  %1325 = load volatile i80, ptr @g_948, align 8
+  %1326 = lshr i80 %1325, 57
+  %1327 = trunc i80 %1326 to i64
+  call fastcc void @transparent_crc(i64 %1327, ptr @.str.613, i32 signext undef)
+  %1328 = load volatile i80, ptr @g_948, align 8
+  %1329 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_949, i64 0, i32 1), align 2
+  %1330 = shl i80 %1329, 56
+  %1331 = ashr i80 %1330, 68
+  %1332 = shl nsw i80 %1331, 32
+  %1333 = trunc i80 %1332 to i64
+  %1334 = ashr exact i64 %1333, 32
+  call fastcc void @transparent_crc(i64 %1334, ptr @.str.628, i32 signext undef)
+  %1335 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_949, i64 0, i32 1), align 2
+  %1336 = lshr i80 %1335, 11
   %1337 = trunc i80 %1336 to i64
-  %1338 = ashr exact i64 %1337, 32
-  call fastcc void @transparent_crc(i64 %1338, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.612, i64 0, i64 0), i32 signext undef)
-  %1339 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_948 to i80*), align 8
-  %1340 = lshr i80 %1339, 57
-  %1341 = trunc i80 %1340 to i64
-  call fastcc void @transparent_crc(i64 %1341, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.613, i64 0, i64 0), i32 signext undef)
-  %1342 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_948 to i80*), align 8
-  %1343 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_949, i64 0, i32 1) to i80*), align 2
-  %1344 = shl i80 %1343, 56
-  %1345 = ashr i80 %1344, 68
-  %1346 = shl nsw i80 %1345, 32
+  %1338 = and i64 %1337, 1
+  call fastcc void @transparent_crc(i64 %1338, ptr @.str.629, i32 signext undef)
+  %1339 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_949, i64 0, i32 1), align 2
+  %1340 = shl i80 %1339, 69
+  %1341 = ashr i80 %1340, 72
+  %1342 = shl nsw i80 %1341, 32
+  %1343 = trunc i80 %1342 to i64
+  %1344 = ashr exact i64 %1343, 32
+  call fastcc void @transparent_crc(i64 %1344, ptr @.str.630, i32 signext undef)
+  %1345 = load volatile i80, ptr undef, align 2
+  %1346 = lshr i80 %1345, 57
   %1347 = trunc i80 %1346 to i64
-  %1348 = ashr exact i64 %1347, 32
-  call fastcc void @transparent_crc(i64 %1348, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.628, i64 0, i64 0), i32 signext undef)
-  %1349 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_949, i64 0, i32 1) to i80*), align 2
-  %1350 = lshr i80 %1349, 11
-  %1351 = trunc i80 %1350 to i64
-  %1352 = and i64 %1351, 1
-  call fastcc void @transparent_crc(i64 %1352, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.629, i64 0, i64 0), i32 signext undef)
-  %1353 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_949, i64 0, i32 1) to i80*), align 2
-  %1354 = shl i80 %1353, 69
-  %1355 = ashr i80 %1354, 72
-  %1356 = shl nsw i80 %1355, 32
-  %1357 = trunc i80 %1356 to i64
-  %1358 = ashr exact i64 %1357, 32
-  call fastcc void @transparent_crc(i64 %1358, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.630, i64 0, i64 0), i32 signext undef)
-  %1359 = load volatile i80, i80* undef, align 2
-  %1360 = lshr i80 %1359, 57
-  %1361 = trunc i80 %1360 to i64
-  call fastcc void @transparent_crc(i64 %1361, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.631, i64 0, i64 0), i32 signext undef)
-  %1362 = load volatile i80, i80* undef, align 2
-  %1363 = shl i80 %1362, 23
-  %1364 = ashr i80 %1363, 64
-  %1365 = shl nsw i80 %1364, 32
-  %1366 = trunc i80 %1365 to i64
-  %1367 = ashr exact i64 %1366, 32
-  call fastcc void @transparent_crc(i64 %1367, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.632, i64 0, i64 0), i32 signext undef)
-  %1368 = load volatile i80, i80* undef, align 2
-  %1369 = shl i80 %1368, 39
-  %1370 = ashr i80 %1369, 62
-  %1371 = shl nsw i80 %1370, 32
+  call fastcc void @transparent_crc(i64 %1347, ptr @.str.631, i32 signext undef)
+  %1348 = load volatile i80, ptr undef, align 2
+  %1349 = shl i80 %1348, 23
+  %1350 = ashr i80 %1349, 64
+  %1351 = shl nsw i80 %1350, 32
+  %1352 = trunc i80 %1351 to i64
+  %1353 = ashr exact i64 %1352, 32
+  call fastcc void @transparent_crc(i64 %1353, ptr @.str.632, i32 signext undef)
+  %1354 = load volatile i80, ptr undef, align 2
+  %1355 = shl i80 %1354, 39
+  %1356 = ashr i80 %1355, 62
+  %1357 = shl nsw i80 %1356, 32
+  %1358 = trunc i80 %1357 to i64
+  %1359 = ashr exact i64 %1358, 32
+  call fastcc void @transparent_crc(i64 %1359, ptr @.str.633, i32 signext undef)
+  %1360 = load volatile i80, ptr undef, align 2
+  %1361 = shl i80 %1360, 57
+  %1362 = ashr i80 %1361, 58
+  %1363 = shl nsw i80 %1362, 32
+  %1364 = trunc i80 %1363 to i64
+  %1365 = ashr exact i64 %1364, 32
+  call fastcc void @transparent_crc(i64 %1365, ptr @.str.634, i32 signext undef)
+  %1366 = getelementptr inbounds [10 x %4], ptr @g_950, i64 0, i64 0, i32 1
+  %1367 = load i80, ptr %1366, align 2
+  %1368 = lshr i80 %1367, 49
+  %1369 = trunc i80 %1368 to i64
+  call fastcc void @transparent_crc(i64 %1369, ptr @.str.635, i32 signext undef)
+  %1370 = load volatile i80, ptr %1366, align 2
+  %1371 = lshr i80 %1370, 24
   %1372 = trunc i80 %1371 to i64
-  %1373 = ashr exact i64 %1372, 32
-  call fastcc void @transparent_crc(i64 %1373, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.633, i64 0, i64 0), i32 signext undef)
-  %1374 = load volatile i80, i80* undef, align 2
-  %1375 = shl i80 %1374, 57
-  %1376 = ashr i80 %1375, 58
+  %1373 = and i64 %1372, 33554431
+  call fastcc void @transparent_crc(i64 %1373, ptr @.str.636, i32 signext undef)
+  %1374 = load i80, ptr %1366, align 2
+  %1375 = shl i80 %1374, 56
+  %1376 = ashr i80 %1375, 68
   %1377 = shl nsw i80 %1376, 32
   %1378 = trunc i80 %1377 to i64
   %1379 = ashr exact i64 %1378, 32
-  call fastcc void @transparent_crc(i64 %1379, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.634, i64 0, i64 0), i32 signext undef)
-  %1380 = getelementptr inbounds [10 x %4], [10 x %4]* bitcast (<{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_950 to [10 x %4]*), i64 0, i64 0, i32 1
-  %1381 = bitcast [10 x i8]* %1380 to i80*
-  %1382 = load i80, i80* %1381, align 2
-  %1383 = lshr i80 %1382, 49
-  %1384 = trunc i80 %1383 to i64
-  call fastcc void @transparent_crc(i64 %1384, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.635, i64 0, i64 0), i32 signext undef)
-  %1385 = load volatile i80, i80* %1381, align 2
-  %1386 = lshr i80 %1385, 24
+  call fastcc void @transparent_crc(i64 %1379, ptr @.str.637, i32 signext undef)
+  %1380 = load i80, ptr %1366, align 2
+  %1381 = lshr i80 %1380, 11
+  %1382 = trunc i80 %1381 to i64
+  %1383 = and i64 %1382, 1
+  call fastcc void @transparent_crc(i64 %1383, ptr @.str.638, i32 signext undef)
+  %1384 = load volatile i80, ptr %1366, align 2
+  %1385 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_951, i64 0, i32 1), align 2
+  %1386 = lshr i80 %1385, 49
   %1387 = trunc i80 %1386 to i64
-  %1388 = and i64 %1387, 33554431
-  call fastcc void @transparent_crc(i64 %1388, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.636, i64 0, i64 0), i32 signext undef)
-  %1389 = load i80, i80* %1381, align 2
-  %1390 = shl i80 %1389, 56
-  %1391 = ashr i80 %1390, 68
-  %1392 = shl nsw i80 %1391, 32
-  %1393 = trunc i80 %1392 to i64
-  %1394 = ashr exact i64 %1393, 32
-  call fastcc void @transparent_crc(i64 %1394, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.637, i64 0, i64 0), i32 signext undef)
-  %1395 = load i80, i80* %1381, align 2
-  %1396 = lshr i80 %1395, 11
-  %1397 = trunc i80 %1396 to i64
-  %1398 = and i64 %1397, 1
-  call fastcc void @transparent_crc(i64 %1398, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.638, i64 0, i64 0), i32 signext undef)
-  %1399 = load volatile i80, i80* %1381, align 2
-  %1400 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_951, i64 0, i32 1) to i80*), align 2
-  %1401 = lshr i80 %1400, 49
-  %1402 = trunc i80 %1401 to i64
-  call fastcc void @transparent_crc(i64 %1402, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.644, i64 0, i64 0), i32 signext undef)
-  %1403 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_951, i64 0, i32 1) to i80*), align 2
-  %1404 = lshr i80 %1403, 24
-  %1405 = trunc i80 %1404 to i64
-  %1406 = and i64 %1405, 33554431
-  call fastcc void @transparent_crc(i64 %1406, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.645, i64 0, i64 0), i32 signext undef)
-  %1407 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_951, i64 0, i32 1) to i80*), align 2
-  %1408 = shl i80 %1407, 56
-  %1409 = ashr i80 %1408, 68
-  %1410 = shl nsw i80 %1409, 32
-  %1411 = trunc i80 %1410 to i64
-  %1412 = ashr exact i64 %1411, 32
-  call fastcc void @transparent_crc(i64 %1412, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.646, i64 0, i64 0), i32 signext undef)
-  %1413 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_951, i64 0, i32 1) to i80*), align 2
-  %1414 = lshr i80 %1413, 11
+  call fastcc void @transparent_crc(i64 %1387, ptr @.str.644, i32 signext undef)
+  %1388 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_951, i64 0, i32 1), align 2
+  %1389 = lshr i80 %1388, 24
+  %1390 = trunc i80 %1389 to i64
+  %1391 = and i64 %1390, 33554431
+  call fastcc void @transparent_crc(i64 %1391, ptr @.str.645, i32 signext undef)
+  %1392 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_951, i64 0, i32 1), align 2
+  %1393 = shl i80 %1392, 56
+  %1394 = ashr i80 %1393, 68
+  %1395 = shl nsw i80 %1394, 32
+  %1396 = trunc i80 %1395 to i64
+  %1397 = ashr exact i64 %1396, 32
+  call fastcc void @transparent_crc(i64 %1397, ptr @.str.646, i32 signext undef)
+  %1398 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_951, i64 0, i32 1), align 2
+  %1399 = lshr i80 %1398, 11
+  %1400 = trunc i80 %1399 to i64
+  %1401 = and i64 %1400, 1
+  call fastcc void @transparent_crc(i64 %1401, ptr @.str.647, i32 signext undef)
+  %1402 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_951, i64 0, i32 1), align 2
+  %1403 = shl i80 %1402, 69
+  %1404 = ashr i80 %1403, 72
+  %1405 = shl nsw i80 %1404, 32
+  %1406 = trunc i80 %1405 to i64
+  %1407 = ashr exact i64 %1406, 32
+  call fastcc void @transparent_crc(i64 %1407, ptr @.str.648, i32 signext undef)
+  %1408 = load volatile i80, ptr @g_952, align 8
+  %1409 = lshr i80 %1408, 57
+  %1410 = trunc i80 %1409 to i64
+  call fastcc void @transparent_crc(i64 %1410, ptr @.str.649, i32 signext undef)
+  %1411 = load volatile i80, ptr @g_952, align 8
+  %1412 = shl i80 %1411, 23
+  %1413 = ashr i80 %1412, 64
+  %1414 = shl nsw i80 %1413, 32
   %1415 = trunc i80 %1414 to i64
-  %1416 = and i64 %1415, 1
-  call fastcc void @transparent_crc(i64 %1416, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.647, i64 0, i64 0), i32 signext undef)
-  %1417 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_951, i64 0, i32 1) to i80*), align 2
-  %1418 = shl i80 %1417, 69
-  %1419 = ashr i80 %1418, 72
+  %1416 = ashr exact i64 %1415, 32
+  call fastcc void @transparent_crc(i64 %1416, ptr @.str.650, i32 signext undef)
+  %1417 = load volatile i80, ptr @g_952, align 8
+  %1418 = shl i80 %1417, 39
+  %1419 = ashr i80 %1418, 62
   %1420 = shl nsw i80 %1419, 32
   %1421 = trunc i80 %1420 to i64
   %1422 = ashr exact i64 %1421, 32
-  call fastcc void @transparent_crc(i64 %1422, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.648, i64 0, i64 0), i32 signext undef)
-  %1423 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952 to i80*), align 8
-  %1424 = lshr i80 %1423, 57
-  %1425 = trunc i80 %1424 to i64
-  call fastcc void @transparent_crc(i64 %1425, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.649, i64 0, i64 0), i32 signext undef)
-  %1426 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952 to i80*), align 8
-  %1427 = shl i80 %1426, 23
-  %1428 = ashr i80 %1427, 64
-  %1429 = shl nsw i80 %1428, 32
-  %1430 = trunc i80 %1429 to i64
-  %1431 = ashr exact i64 %1430, 32
-  call fastcc void @transparent_crc(i64 %1431, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.650, i64 0, i64 0), i32 signext undef)
-  %1432 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952 to i80*), align 8
-  %1433 = shl i80 %1432, 39
-  %1434 = ashr i80 %1433, 62
-  %1435 = shl nsw i80 %1434, 32
-  %1436 = trunc i80 %1435 to i64
-  %1437 = ashr exact i64 %1436, 32
-  call fastcc void @transparent_crc(i64 %1437, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.651, i64 0, i64 0), i32 signext undef)
-  %1438 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952 to i80*), align 8
-  %1439 = shl i80 %1438, 57
-  %1440 = ashr i80 %1439, 58
-  %1441 = shl nsw i80 %1440, 32
-  %1442 = trunc i80 %1441 to i64
-  %1443 = ashr exact i64 %1442, 32
-  call fastcc void @transparent_crc(i64 %1443, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.652, i64 0, i64 0), i32 signext undef)
-  %1444 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952, i64 0, i32 1) to i80*), align 2
-  %1445 = lshr i80 %1444, 49
-  %1446 = trunc i80 %1445 to i64
-  call fastcc void @transparent_crc(i64 %1446, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.653, i64 0, i64 0), i32 signext undef)
-  %1447 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952, i64 0, i32 1) to i80*), align 2
-  %1448 = lshr i80 %1447, 24
-  %1449 = trunc i80 %1448 to i64
-  %1450 = and i64 %1449, 33554431
-  call fastcc void @transparent_crc(i64 %1450, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.654, i64 0, i64 0), i32 signext undef)
-  %1451 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952, i64 0, i32 1) to i80*), align 2
-  %1452 = shl i80 %1451, 56
-  %1453 = ashr i80 %1452, 68
-  %1454 = shl nsw i80 %1453, 32
-  %1455 = trunc i80 %1454 to i64
-  %1456 = ashr exact i64 %1455, 32
-  call fastcc void @transparent_crc(i64 %1456, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.655, i64 0, i64 0), i32 signext undef)
-  %1457 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952, i64 0, i32 1) to i80*), align 2
-  %1458 = lshr i80 %1457, 11
+  call fastcc void @transparent_crc(i64 %1422, ptr @.str.651, i32 signext undef)
+  %1423 = load volatile i80, ptr @g_952, align 8
+  %1424 = shl i80 %1423, 57
+  %1425 = ashr i80 %1424, 58
+  %1426 = shl nsw i80 %1425, 32
+  %1427 = trunc i80 %1426 to i64
+  %1428 = ashr exact i64 %1427, 32
+  call fastcc void @transparent_crc(i64 %1428, ptr @.str.652, i32 signext undef)
+  %1429 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_952, i64 0, i32 1), align 2
+  %1430 = lshr i80 %1429, 49
+  %1431 = trunc i80 %1430 to i64
+  call fastcc void @transparent_crc(i64 %1431, ptr @.str.653, i32 signext undef)
+  %1432 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_952, i64 0, i32 1), align 2
+  %1433 = lshr i80 %1432, 24
+  %1434 = trunc i80 %1433 to i64
+  %1435 = and i64 %1434, 33554431
+  call fastcc void @transparent_crc(i64 %1435, ptr @.str.654, i32 signext undef)
+  %1436 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_952, i64 0, i32 1), align 2
+  %1437 = shl i80 %1436, 56
+  %1438 = ashr i80 %1437, 68
+  %1439 = shl nsw i80 %1438, 32
+  %1440 = trunc i80 %1439 to i64
+  %1441 = ashr exact i64 %1440, 32
+  call fastcc void @transparent_crc(i64 %1441, ptr @.str.655, i32 signext undef)
+  %1442 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_952, i64 0, i32 1), align 2
+  %1443 = lshr i80 %1442, 11
+  %1444 = trunc i80 %1443 to i64
+  %1445 = and i64 %1444, 1
+  call fastcc void @transparent_crc(i64 %1445, ptr @.str.656, i32 signext undef)
+  %1446 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_952, i64 0, i32 1), align 2
+  %1447 = shl i80 %1446, 69
+  %1448 = ashr i80 %1447, 72
+  %1449 = shl nsw i80 %1448, 32
+  %1450 = trunc i80 %1449 to i64
+  %1451 = ashr exact i64 %1450, 32
+  call fastcc void @transparent_crc(i64 %1451, ptr @.str.657, i32 signext undef)
+  %1452 = load volatile i80, ptr @g_953, align 8
+  %1453 = lshr i80 %1452, 57
+  %1454 = trunc i80 %1453 to i64
+  call fastcc void @transparent_crc(i64 %1454, ptr @.str.658, i32 signext undef)
+  %1455 = load volatile i80, ptr @g_953, align 8
+  %1456 = shl i80 %1455, 23
+  %1457 = ashr i80 %1456, 64
+  %1458 = shl nsw i80 %1457, 32
   %1459 = trunc i80 %1458 to i64
-  %1460 = and i64 %1459, 1
-  call fastcc void @transparent_crc(i64 %1460, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.656, i64 0, i64 0), i32 signext undef)
-  %1461 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_952, i64 0, i32 1) to i80*), align 2
-  %1462 = shl i80 %1461, 69
-  %1463 = ashr i80 %1462, 72
+  %1460 = ashr exact i64 %1459, 32
+  call fastcc void @transparent_crc(i64 %1460, ptr @.str.659, i32 signext undef)
+  %1461 = load volatile i80, ptr @g_953, align 8
+  %1462 = shl i80 %1461, 39
+  %1463 = ashr i80 %1462, 62
   %1464 = shl nsw i80 %1463, 32
   %1465 = trunc i80 %1464 to i64
   %1466 = ashr exact i64 %1465, 32
-  call fastcc void @transparent_crc(i64 %1466, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.657, i64 0, i64 0), i32 signext undef)
-  %1467 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953 to i80*), align 8
-  %1468 = lshr i80 %1467, 57
-  %1469 = trunc i80 %1468 to i64
-  call fastcc void @transparent_crc(i64 %1469, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.658, i64 0, i64 0), i32 signext undef)
-  %1470 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953 to i80*), align 8
-  %1471 = shl i80 %1470, 23
-  %1472 = ashr i80 %1471, 64
-  %1473 = shl nsw i80 %1472, 32
-  %1474 = trunc i80 %1473 to i64
-  %1475 = ashr exact i64 %1474, 32
-  call fastcc void @transparent_crc(i64 %1475, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.659, i64 0, i64 0), i32 signext undef)
-  %1476 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953 to i80*), align 8
-  %1477 = shl i80 %1476, 39
-  %1478 = ashr i80 %1477, 62
-  %1479 = shl nsw i80 %1478, 32
-  %1480 = trunc i80 %1479 to i64
-  %1481 = ashr exact i64 %1480, 32
-  call fastcc void @transparent_crc(i64 %1481, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.660, i64 0, i64 0), i32 signext undef)
-  %1482 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953 to i80*), align 8
-  %1483 = shl i80 %1482, 57
-  %1484 = ashr i80 %1483, 58
-  %1485 = shl nsw i80 %1484, 32
-  %1486 = trunc i80 %1485 to i64
-  %1487 = ashr exact i64 %1486, 32
-  call fastcc void @transparent_crc(i64 %1487, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.661, i64 0, i64 0), i32 signext undef)
-  %1488 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953, i64 0, i32 1) to i80*), align 2
-  %1489 = lshr i80 %1488, 49
-  %1490 = trunc i80 %1489 to i64
-  call fastcc void @transparent_crc(i64 %1490, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.662, i64 0, i64 0), i32 signext undef)
-  %1491 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953, i64 0, i32 1) to i80*), align 2
-  %1492 = lshr i80 %1491, 24
-  %1493 = trunc i80 %1492 to i64
-  %1494 = and i64 %1493, 33554431
-  call fastcc void @transparent_crc(i64 %1494, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.663, i64 0, i64 0), i32 signext undef)
-  %1495 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953, i64 0, i32 1) to i80*), align 2
-  %1496 = shl i80 %1495, 56
-  %1497 = ashr i80 %1496, 68
-  %1498 = shl nsw i80 %1497, 32
-  %1499 = trunc i80 %1498 to i64
-  %1500 = ashr exact i64 %1499, 32
-  call fastcc void @transparent_crc(i64 %1500, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.664, i64 0, i64 0), i32 signext undef)
-  %1501 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953, i64 0, i32 1) to i80*), align 2
-  %1502 = lshr i80 %1501, 11
+  call fastcc void @transparent_crc(i64 %1466, ptr @.str.660, i32 signext undef)
+  %1467 = load volatile i80, ptr @g_953, align 8
+  %1468 = shl i80 %1467, 57
+  %1469 = ashr i80 %1468, 58
+  %1470 = shl nsw i80 %1469, 32
+  %1471 = trunc i80 %1470 to i64
+  %1472 = ashr exact i64 %1471, 32
+  call fastcc void @transparent_crc(i64 %1472, ptr @.str.661, i32 signext undef)
+  %1473 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_953, i64 0, i32 1), align 2
+  %1474 = lshr i80 %1473, 49
+  %1475 = trunc i80 %1474 to i64
+  call fastcc void @transparent_crc(i64 %1475, ptr @.str.662, i32 signext undef)
+  %1476 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_953, i64 0, i32 1), align 2
+  %1477 = lshr i80 %1476, 24
+  %1478 = trunc i80 %1477 to i64
+  %1479 = and i64 %1478, 33554431
+  call fastcc void @transparent_crc(i64 %1479, ptr @.str.663, i32 signext undef)
+  %1480 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_953, i64 0, i32 1), align 2
+  %1481 = shl i80 %1480, 56
+  %1482 = ashr i80 %1481, 68
+  %1483 = shl nsw i80 %1482, 32
+  %1484 = trunc i80 %1483 to i64
+  %1485 = ashr exact i64 %1484, 32
+  call fastcc void @transparent_crc(i64 %1485, ptr @.str.664, i32 signext undef)
+  %1486 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_953, i64 0, i32 1), align 2
+  %1487 = lshr i80 %1486, 11
+  %1488 = trunc i80 %1487 to i64
+  %1489 = and i64 %1488, 1
+  call fastcc void @transparent_crc(i64 %1489, ptr @.str.665, i32 signext undef)
+  %1490 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_953, i64 0, i32 1), align 2
+  %1491 = shl i80 %1490, 69
+  %1492 = ashr i80 %1491, 72
+  %1493 = shl nsw i80 %1492, 32
+  %1494 = trunc i80 %1493 to i64
+  %1495 = ashr exact i64 %1494, 32
+  call fastcc void @transparent_crc(i64 %1495, ptr @.str.666, i32 signext undef)
+  %1496 = load volatile i80, ptr @g_954, align 8
+  %1497 = lshr i80 %1496, 57
+  %1498 = trunc i80 %1497 to i64
+  call fastcc void @transparent_crc(i64 %1498, ptr @.str.667, i32 signext undef)
+  %1499 = load volatile i80, ptr @g_954, align 8
+  %1500 = shl i80 %1499, 23
+  %1501 = ashr i80 %1500, 64
+  %1502 = shl nsw i80 %1501, 32
   %1503 = trunc i80 %1502 to i64
-  %1504 = and i64 %1503, 1
-  call fastcc void @transparent_crc(i64 %1504, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.665, i64 0, i64 0), i32 signext undef)
-  %1505 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_953, i64 0, i32 1) to i80*), align 2
-  %1506 = shl i80 %1505, 69
-  %1507 = ashr i80 %1506, 72
+  %1504 = ashr exact i64 %1503, 32
+  call fastcc void @transparent_crc(i64 %1504, ptr @.str.668, i32 signext undef)
+  %1505 = load volatile i80, ptr @g_954, align 8
+  %1506 = shl i80 %1505, 39
+  %1507 = ashr i80 %1506, 62
   %1508 = shl nsw i80 %1507, 32
   %1509 = trunc i80 %1508 to i64
   %1510 = ashr exact i64 %1509, 32
-  call fastcc void @transparent_crc(i64 %1510, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.666, i64 0, i64 0), i32 signext undef)
-  %1511 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954 to i80*), align 8
-  %1512 = lshr i80 %1511, 57
-  %1513 = trunc i80 %1512 to i64
-  call fastcc void @transparent_crc(i64 %1513, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.667, i64 0, i64 0), i32 signext undef)
-  %1514 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954 to i80*), align 8
-  %1515 = shl i80 %1514, 23
-  %1516 = ashr i80 %1515, 64
-  %1517 = shl nsw i80 %1516, 32
-  %1518 = trunc i80 %1517 to i64
-  %1519 = ashr exact i64 %1518, 32
-  call fastcc void @transparent_crc(i64 %1519, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.668, i64 0, i64 0), i32 signext undef)
-  %1520 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954 to i80*), align 8
-  %1521 = shl i80 %1520, 39
-  %1522 = ashr i80 %1521, 62
-  %1523 = shl nsw i80 %1522, 32
-  %1524 = trunc i80 %1523 to i64
-  %1525 = ashr exact i64 %1524, 32
-  call fastcc void @transparent_crc(i64 %1525, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.669, i64 0, i64 0), i32 signext undef)
-  %1526 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954 to i80*), align 8
-  %1527 = shl i80 %1526, 57
-  %1528 = ashr i80 %1527, 58
-  %1529 = shl nsw i80 %1528, 32
-  %1530 = trunc i80 %1529 to i64
-  %1531 = ashr exact i64 %1530, 32
-  call fastcc void @transparent_crc(i64 %1531, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.670, i64 0, i64 0), i32 signext undef)
-  %1532 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954, i64 0, i32 1) to i80*), align 2
-  %1533 = lshr i80 %1532, 49
-  %1534 = trunc i80 %1533 to i64
-  call fastcc void @transparent_crc(i64 %1534, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.671, i64 0, i64 0), i32 signext undef)
-  %1535 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954, i64 0, i32 1) to i80*), align 2
-  %1536 = lshr i80 %1535, 24
-  %1537 = trunc i80 %1536 to i64
-  %1538 = and i64 %1537, 33554431
-  call fastcc void @transparent_crc(i64 %1538, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.672, i64 0, i64 0), i32 signext undef)
-  %1539 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954, i64 0, i32 1) to i80*), align 2
-  %1540 = shl i80 %1539, 56
-  %1541 = ashr i80 %1540, 68
-  %1542 = shl nsw i80 %1541, 32
-  %1543 = trunc i80 %1542 to i64
-  %1544 = ashr exact i64 %1543, 32
-  call fastcc void @transparent_crc(i64 %1544, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.673, i64 0, i64 0), i32 signext undef)
-  %1545 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954, i64 0, i32 1) to i80*), align 2
-  %1546 = lshr i80 %1545, 11
+  call fastcc void @transparent_crc(i64 %1510, ptr @.str.669, i32 signext undef)
+  %1511 = load volatile i80, ptr @g_954, align 8
+  %1512 = shl i80 %1511, 57
+  %1513 = ashr i80 %1512, 58
+  %1514 = shl nsw i80 %1513, 32
+  %1515 = trunc i80 %1514 to i64
+  %1516 = ashr exact i64 %1515, 32
+  call fastcc void @transparent_crc(i64 %1516, ptr @.str.670, i32 signext undef)
+  %1517 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_954, i64 0, i32 1), align 2
+  %1518 = lshr i80 %1517, 49
+  %1519 = trunc i80 %1518 to i64
+  call fastcc void @transparent_crc(i64 %1519, ptr @.str.671, i32 signext undef)
+  %1520 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_954, i64 0, i32 1), align 2
+  %1521 = lshr i80 %1520, 24
+  %1522 = trunc i80 %1521 to i64
+  %1523 = and i64 %1522, 33554431
+  call fastcc void @transparent_crc(i64 %1523, ptr @.str.672, i32 signext undef)
+  %1524 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_954, i64 0, i32 1), align 2
+  %1525 = shl i80 %1524, 56
+  %1526 = ashr i80 %1525, 68
+  %1527 = shl nsw i80 %1526, 32
+  %1528 = trunc i80 %1527 to i64
+  %1529 = ashr exact i64 %1528, 32
+  call fastcc void @transparent_crc(i64 %1529, ptr @.str.673, i32 signext undef)
+  %1530 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_954, i64 0, i32 1), align 2
+  %1531 = lshr i80 %1530, 11
+  %1532 = trunc i80 %1531 to i64
+  %1533 = and i64 %1532, 1
+  call fastcc void @transparent_crc(i64 %1533, ptr @.str.674, i32 signext undef)
+  %1534 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_954, i64 0, i32 1), align 2
+  %1535 = shl i80 %1534, 69
+  %1536 = ashr i80 %1535, 72
+  %1537 = shl nsw i80 %1536, 32
+  %1538 = trunc i80 %1537 to i64
+  %1539 = ashr exact i64 %1538, 32
+  call fastcc void @transparent_crc(i64 %1539, ptr @.str.675, i32 signext undef)
+  %1540 = load volatile i80, ptr @g_955, align 8
+  %1541 = lshr i80 %1540, 57
+  %1542 = trunc i80 %1541 to i64
+  call fastcc void @transparent_crc(i64 %1542, ptr @.str.676, i32 signext undef)
+  %1543 = load volatile i80, ptr @g_955, align 8
+  %1544 = shl i80 %1543, 23
+  %1545 = ashr i80 %1544, 64
+  %1546 = shl nsw i80 %1545, 32
   %1547 = trunc i80 %1546 to i64
-  %1548 = and i64 %1547, 1
-  call fastcc void @transparent_crc(i64 %1548, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.674, i64 0, i64 0), i32 signext undef)
-  %1549 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_954, i64 0, i32 1) to i80*), align 2
-  %1550 = shl i80 %1549, 69
-  %1551 = ashr i80 %1550, 72
+  %1548 = ashr exact i64 %1547, 32
+  call fastcc void @transparent_crc(i64 %1548, ptr @.str.677, i32 signext undef)
+  %1549 = load volatile i80, ptr @g_955, align 8
+  %1550 = shl i80 %1549, 39
+  %1551 = ashr i80 %1550, 62
   %1552 = shl nsw i80 %1551, 32
   %1553 = trunc i80 %1552 to i64
   %1554 = ashr exact i64 %1553, 32
-  call fastcc void @transparent_crc(i64 %1554, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.675, i64 0, i64 0), i32 signext undef)
-  %1555 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955 to i80*), align 8
-  %1556 = lshr i80 %1555, 57
-  %1557 = trunc i80 %1556 to i64
-  call fastcc void @transparent_crc(i64 %1557, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.676, i64 0, i64 0), i32 signext undef)
-  %1558 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955 to i80*), align 8
-  %1559 = shl i80 %1558, 23
-  %1560 = ashr i80 %1559, 64
-  %1561 = shl nsw i80 %1560, 32
-  %1562 = trunc i80 %1561 to i64
-  %1563 = ashr exact i64 %1562, 32
-  call fastcc void @transparent_crc(i64 %1563, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.677, i64 0, i64 0), i32 signext undef)
-  %1564 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955 to i80*), align 8
-  %1565 = shl i80 %1564, 39
-  %1566 = ashr i80 %1565, 62
-  %1567 = shl nsw i80 %1566, 32
-  %1568 = trunc i80 %1567 to i64
-  %1569 = ashr exact i64 %1568, 32
-  call fastcc void @transparent_crc(i64 %1569, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.678, i64 0, i64 0), i32 signext undef)
-  %1570 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955 to i80*), align 8
-  %1571 = shl i80 %1570, 57
-  %1572 = ashr i80 %1571, 58
-  %1573 = shl nsw i80 %1572, 32
-  %1574 = trunc i80 %1573 to i64
-  %1575 = ashr exact i64 %1574, 32
-  call fastcc void @transparent_crc(i64 %1575, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.679, i64 0, i64 0), i32 signext undef)
-  %1576 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955, i64 0, i32 1) to i80*), align 2
-  %1577 = lshr i80 %1576, 49
-  %1578 = trunc i80 %1577 to i64
-  call fastcc void @transparent_crc(i64 %1578, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.680, i64 0, i64 0), i32 signext undef)
-  %1579 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955, i64 0, i32 1) to i80*), align 2
-  %1580 = lshr i80 %1579, 24
-  %1581 = trunc i80 %1580 to i64
-  %1582 = and i64 %1581, 33554431
-  call fastcc void @transparent_crc(i64 %1582, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.681, i64 0, i64 0), i32 signext undef)
-  %1583 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955, i64 0, i32 1) to i80*), align 2
-  %1584 = shl i80 %1583, 56
-  %1585 = ashr i80 %1584, 68
-  %1586 = shl nsw i80 %1585, 32
-  %1587 = trunc i80 %1586 to i64
-  %1588 = ashr exact i64 %1587, 32
-  call fastcc void @transparent_crc(i64 %1588, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.682, i64 0, i64 0), i32 signext undef)
-  %1589 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955, i64 0, i32 1) to i80*), align 2
-  %1590 = lshr i80 %1589, 11
+  call fastcc void @transparent_crc(i64 %1554, ptr @.str.678, i32 signext undef)
+  %1555 = load volatile i80, ptr @g_955, align 8
+  %1556 = shl i80 %1555, 57
+  %1557 = ashr i80 %1556, 58
+  %1558 = shl nsw i80 %1557, 32
+  %1559 = trunc i80 %1558 to i64
+  %1560 = ashr exact i64 %1559, 32
+  call fastcc void @transparent_crc(i64 %1560, ptr @.str.679, i32 signext undef)
+  %1561 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_955, i64 0, i32 1), align 2
+  %1562 = lshr i80 %1561, 49
+  %1563 = trunc i80 %1562 to i64
+  call fastcc void @transparent_crc(i64 %1563, ptr @.str.680, i32 signext undef)
+  %1564 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_955, i64 0, i32 1), align 2
+  %1565 = lshr i80 %1564, 24
+  %1566 = trunc i80 %1565 to i64
+  %1567 = and i64 %1566, 33554431
+  call fastcc void @transparent_crc(i64 %1567, ptr @.str.681, i32 signext undef)
+  %1568 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_955, i64 0, i32 1), align 2
+  %1569 = shl i80 %1568, 56
+  %1570 = ashr i80 %1569, 68
+  %1571 = shl nsw i80 %1570, 32
+  %1572 = trunc i80 %1571 to i64
+  %1573 = ashr exact i64 %1572, 32
+  call fastcc void @transparent_crc(i64 %1573, ptr @.str.682, i32 signext undef)
+  %1574 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_955, i64 0, i32 1), align 2
+  %1575 = lshr i80 %1574, 11
+  %1576 = trunc i80 %1575 to i64
+  %1577 = and i64 %1576, 1
+  call fastcc void @transparent_crc(i64 %1577, ptr @.str.683, i32 signext undef)
+  %1578 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_955, i64 0, i32 1), align 2
+  %1579 = shl i80 %1578, 69
+  %1580 = ashr i80 %1579, 72
+  %1581 = shl nsw i80 %1580, 32
+  %1582 = trunc i80 %1581 to i64
+  %1583 = ashr exact i64 %1582, 32
+  call fastcc void @transparent_crc(i64 %1583, ptr @.str.684, i32 signext undef)
+  %1584 = load volatile i80, ptr @g_956, align 8
+  %1585 = lshr i80 %1584, 57
+  %1586 = trunc i80 %1585 to i64
+  call fastcc void @transparent_crc(i64 %1586, ptr @.str.685, i32 signext undef)
+  %1587 = load volatile i80, ptr @g_956, align 8
+  %1588 = shl i80 %1587, 23
+  %1589 = ashr i80 %1588, 64
+  %1590 = shl nsw i80 %1589, 32
   %1591 = trunc i80 %1590 to i64
-  %1592 = and i64 %1591, 1
-  call fastcc void @transparent_crc(i64 %1592, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.683, i64 0, i64 0), i32 signext undef)
-  %1593 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_955, i64 0, i32 1) to i80*), align 2
-  %1594 = shl i80 %1593, 69
-  %1595 = ashr i80 %1594, 72
+  %1592 = ashr exact i64 %1591, 32
+  call fastcc void @transparent_crc(i64 %1592, ptr @.str.686, i32 signext undef)
+  %1593 = load volatile i80, ptr @g_956, align 8
+  %1594 = shl i80 %1593, 39
+  %1595 = ashr i80 %1594, 62
   %1596 = shl nsw i80 %1595, 32
   %1597 = trunc i80 %1596 to i64
   %1598 = ashr exact i64 %1597, 32
-  call fastcc void @transparent_crc(i64 %1598, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.684, i64 0, i64 0), i32 signext undef)
-  %1599 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956 to i80*), align 8
-  %1600 = lshr i80 %1599, 57
-  %1601 = trunc i80 %1600 to i64
-  call fastcc void @transparent_crc(i64 %1601, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.685, i64 0, i64 0), i32 signext undef)
-  %1602 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956 to i80*), align 8
-  %1603 = shl i80 %1602, 23
-  %1604 = ashr i80 %1603, 64
-  %1605 = shl nsw i80 %1604, 32
-  %1606 = trunc i80 %1605 to i64
-  %1607 = ashr exact i64 %1606, 32
-  call fastcc void @transparent_crc(i64 %1607, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.686, i64 0, i64 0), i32 signext undef)
-  %1608 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956 to i80*), align 8
-  %1609 = shl i80 %1608, 39
-  %1610 = ashr i80 %1609, 62
-  %1611 = shl nsw i80 %1610, 32
-  %1612 = trunc i80 %1611 to i64
-  %1613 = ashr exact i64 %1612, 32
-  call fastcc void @transparent_crc(i64 %1613, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.687, i64 0, i64 0), i32 signext undef)
-  %1614 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956 to i80*), align 8
-  %1615 = shl i80 %1614, 57
-  %1616 = ashr i80 %1615, 58
-  %1617 = shl nsw i80 %1616, 32
-  %1618 = trunc i80 %1617 to i64
-  %1619 = ashr exact i64 %1618, 32
-  call fastcc void @transparent_crc(i64 %1619, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.688, i64 0, i64 0), i32 signext undef)
-  %1620 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956, i64 0, i32 1) to i80*), align 2
-  %1621 = lshr i80 %1620, 49
-  %1622 = trunc i80 %1621 to i64
-  call fastcc void @transparent_crc(i64 %1622, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.689, i64 0, i64 0), i32 signext undef)
-  %1623 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956, i64 0, i32 1) to i80*), align 2
-  %1624 = lshr i80 %1623, 24
-  %1625 = trunc i80 %1624 to i64
-  %1626 = and i64 %1625, 33554431
-  call fastcc void @transparent_crc(i64 %1626, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.690, i64 0, i64 0), i32 signext undef)
-  %1627 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956, i64 0, i32 1) to i80*), align 2
-  %1628 = shl i80 %1627, 56
-  %1629 = ashr i80 %1628, 68
-  %1630 = shl nsw i80 %1629, 32
-  %1631 = trunc i80 %1630 to i64
-  %1632 = ashr exact i64 %1631, 32
-  call fastcc void @transparent_crc(i64 %1632, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.691, i64 0, i64 0), i32 signext undef)
-  %1633 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956, i64 0, i32 1) to i80*), align 2
-  %1634 = lshr i80 %1633, 11
+  call fastcc void @transparent_crc(i64 %1598, ptr @.str.687, i32 signext undef)
+  %1599 = load volatile i80, ptr @g_956, align 8
+  %1600 = shl i80 %1599, 57
+  %1601 = ashr i80 %1600, 58
+  %1602 = shl nsw i80 %1601, 32
+  %1603 = trunc i80 %1602 to i64
+  %1604 = ashr exact i64 %1603, 32
+  call fastcc void @transparent_crc(i64 %1604, ptr @.str.688, i32 signext undef)
+  %1605 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_956, i64 0, i32 1), align 2
+  %1606 = lshr i80 %1605, 49
+  %1607 = trunc i80 %1606 to i64
+  call fastcc void @transparent_crc(i64 %1607, ptr @.str.689, i32 signext undef)
+  %1608 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_956, i64 0, i32 1), align 2
+  %1609 = lshr i80 %1608, 24
+  %1610 = trunc i80 %1609 to i64
+  %1611 = and i64 %1610, 33554431
+  call fastcc void @transparent_crc(i64 %1611, ptr @.str.690, i32 signext undef)
+  %1612 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_956, i64 0, i32 1), align 2
+  %1613 = shl i80 %1612, 56
+  %1614 = ashr i80 %1613, 68
+  %1615 = shl nsw i80 %1614, 32
+  %1616 = trunc i80 %1615 to i64
+  %1617 = ashr exact i64 %1616, 32
+  call fastcc void @transparent_crc(i64 %1617, ptr @.str.691, i32 signext undef)
+  %1618 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_956, i64 0, i32 1), align 2
+  %1619 = lshr i80 %1618, 11
+  %1620 = trunc i80 %1619 to i64
+  %1621 = and i64 %1620, 1
+  call fastcc void @transparent_crc(i64 %1621, ptr @.str.692, i32 signext undef)
+  %1622 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_956, i64 0, i32 1), align 2
+  %1623 = shl i80 %1622, 69
+  %1624 = ashr i80 %1623, 72
+  %1625 = shl nsw i80 %1624, 32
+  %1626 = trunc i80 %1625 to i64
+  %1627 = ashr exact i64 %1626, 32
+  call fastcc void @transparent_crc(i64 %1627, ptr @.str.693, i32 signext undef)
+  %1628 = load volatile i80, ptr @g_957, align 8
+  %1629 = lshr i80 %1628, 57
+  %1630 = trunc i80 %1629 to i64
+  call fastcc void @transparent_crc(i64 %1630, ptr @.str.694, i32 signext undef)
+  %1631 = load volatile i80, ptr @g_957, align 8
+  %1632 = shl i80 %1631, 23
+  %1633 = ashr i80 %1632, 64
+  %1634 = shl nsw i80 %1633, 32
   %1635 = trunc i80 %1634 to i64
-  %1636 = and i64 %1635, 1
-  call fastcc void @transparent_crc(i64 %1636, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.692, i64 0, i64 0), i32 signext undef)
-  %1637 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_956, i64 0, i32 1) to i80*), align 2
-  %1638 = shl i80 %1637, 69
-  %1639 = ashr i80 %1638, 72
-  %1640 = shl nsw i80 %1639, 32
-  %1641 = trunc i80 %1640 to i64
-  %1642 = ashr exact i64 %1641, 32
-  call fastcc void @transparent_crc(i64 %1642, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.693, i64 0, i64 0), i32 signext undef)
-  %1643 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_957 to i80*), align 8
-  %1644 = lshr i80 %1643, 57
-  %1645 = trunc i80 %1644 to i64
-  call fastcc void @transparent_crc(i64 %1645, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.694, i64 0, i64 0), i32 signext undef)
-  %1646 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_957 to i80*), align 8
-  %1647 = shl i80 %1646, 23
-  %1648 = ashr i80 %1647, 64
-  %1649 = shl nsw i80 %1648, 32
-  %1650 = trunc i80 %1649 to i64
-  %1651 = ashr exact i64 %1650, 32
-  call fastcc void @transparent_crc(i64 %1651, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.695, i64 0, i64 0), i32 signext undef)
-  %1652 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_957 to i80*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.736, i64 0, i64 0), i32 signext undef)
-  %1653 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 4, i32 0) to i80*), align 2
-  %1654 = shl i80 %1653, 57
-  %1655 = ashr i80 %1654, 58
+  %1636 = ashr exact i64 %1635, 32
+  call fastcc void @transparent_crc(i64 %1636, ptr @.str.695, i32 signext undef)
+  %1637 = load volatile i80, ptr @g_957, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.736, i32 signext undef)
+  %1638 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 4, i32 0), align 2
+  %1639 = shl i80 %1638, 57
+  %1640 = ashr i80 %1639, 58
+  %1641 = shl nsw i80 %1640, 32
+  %1642 = trunc i80 %1641 to i64
+  %1643 = ashr exact i64 %1642, 32
+  call fastcc void @transparent_crc(i64 %1643, ptr @.str.737, i32 signext undef)
+  %1644 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 5, i32 0), align 2
+  %1645 = ashr i80 %1644, 73
+  %1646 = shl nsw i80 %1645, 32
+  %1647 = trunc i80 %1646 to i64
+  %1648 = ashr exact i64 %1647, 32
+  call fastcc void @transparent_crc(i64 %1648, ptr @.str.738, i32 signext undef)
+  %1649 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 5, i32 0), align 2
+  %1650 = lshr i80 %1649, 61
+  %1651 = trunc i80 %1650 to i64
+  %1652 = and i64 %1651, 4095
+  call fastcc void @transparent_crc(i64 %1652, ptr @.str.739, i32 signext undef)
+  %1653 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 5, i32 0), align 2
+  %1654 = shl i80 %1653, 19
+  %1655 = ashr i80 %1654, 59
   %1656 = shl nsw i80 %1655, 32
   %1657 = trunc i80 %1656 to i64
   %1658 = ashr exact i64 %1657, 32
-  call fastcc void @transparent_crc(i64 %1658, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.737, i64 0, i64 0), i32 signext undef)
-  %1659 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 5, i32 0) to i80*), align 2
-  %1660 = ashr i80 %1659, 73
-  %1661 = shl nsw i80 %1660, 32
-  %1662 = trunc i80 %1661 to i64
-  %1663 = ashr exact i64 %1662, 32
-  call fastcc void @transparent_crc(i64 %1663, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.738, i64 0, i64 0), i32 signext undef)
-  %1664 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 5, i32 0) to i80*), align 2
-  %1665 = lshr i80 %1664, 61
-  %1666 = trunc i80 %1665 to i64
-  %1667 = and i64 %1666, 4095
-  call fastcc void @transparent_crc(i64 %1667, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.739, i64 0, i64 0), i32 signext undef)
-  %1668 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 5, i32 0) to i80*), align 2
-  %1669 = shl i80 %1668, 19
-  %1670 = ashr i80 %1669, 59
+  call fastcc void @transparent_crc(i64 %1658, ptr @.str.740, i32 signext undef)
+  %1659 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 5, i32 0), align 2
+  %1660 = shl i80 %1659, 40
+  %1661 = ashr i80 %1660, 62
+  %1662 = shl nsw i80 %1661, 32
+  %1663 = trunc i80 %1662 to i64
+  %1664 = ashr exact i64 %1663, 32
+  call fastcc void @transparent_crc(i64 %1664, ptr @.str.741, i32 signext undef)
+  %1665 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 5, i32 0), align 2
+  %1666 = lshr i80 %1665, 4
+  %1667 = trunc i80 %1666 to i64
+  %1668 = and i64 %1667, 262143
+  call fastcc void @transparent_crc(i64 %1668, ptr @.str.742, i32 signext undef)
+  %1669 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 6, i32 0), align 2
+  %1670 = ashr i80 %1669, 73
   %1671 = shl nsw i80 %1670, 32
   %1672 = trunc i80 %1671 to i64
   %1673 = ashr exact i64 %1672, 32
-  call fastcc void @transparent_crc(i64 %1673, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.740, i64 0, i64 0), i32 signext undef)
-  %1674 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 5, i32 0) to i80*), align 2
-  %1675 = shl i80 %1674, 40
-  %1676 = ashr i80 %1675, 62
-  %1677 = shl nsw i80 %1676, 32
-  %1678 = trunc i80 %1677 to i64
-  %1679 = ashr exact i64 %1678, 32
-  call fastcc void @transparent_crc(i64 %1679, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.741, i64 0, i64 0), i32 signext undef)
-  %1680 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 5, i32 0) to i80*), align 2
-  %1681 = lshr i80 %1680, 4
+  call fastcc void @transparent_crc(i64 %1673, ptr @.str.743, i32 signext undef)
+  %1674 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 6, i32 0), align 2
+  %1675 = lshr i80 %1674, 61
+  %1676 = trunc i80 %1675 to i64
+  %1677 = and i64 %1676, 4095
+  call fastcc void @transparent_crc(i64 %1677, ptr @.str.744, i32 signext undef)
+  %1678 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 6, i32 0), align 2
+  %1679 = shl i80 %1678, 19
+  %1680 = ashr i80 %1679, 59
+  %1681 = shl nsw i80 %1680, 32
   %1682 = trunc i80 %1681 to i64
-  %1683 = and i64 %1682, 262143
-  call fastcc void @transparent_crc(i64 %1683, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.742, i64 0, i64 0), i32 signext undef)
-  %1684 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 6, i32 0) to i80*), align 2
-  %1685 = ashr i80 %1684, 73
-  %1686 = shl nsw i80 %1685, 32
-  %1687 = trunc i80 %1686 to i64
-  %1688 = ashr exact i64 %1687, 32
-  call fastcc void @transparent_crc(i64 %1688, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.743, i64 0, i64 0), i32 signext undef)
-  %1689 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 6, i32 0) to i80*), align 2
-  %1690 = lshr i80 %1689, 61
-  %1691 = trunc i80 %1690 to i64
-  %1692 = and i64 %1691, 4095
-  call fastcc void @transparent_crc(i64 %1692, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.744, i64 0, i64 0), i32 signext undef)
-  %1693 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 6, i32 0) to i80*), align 2
-  %1694 = shl i80 %1693, 19
-  %1695 = ashr i80 %1694, 59
-  %1696 = shl nsw i80 %1695, 32
-  %1697 = trunc i80 %1696 to i64
-  %1698 = ashr exact i64 %1697, 32
-  call fastcc void @transparent_crc(i64 %1698, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.745, i64 0, i64 0), i32 signext undef)
-  %1699 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 6, i32 0) to i80*), align 2
-  %1700 = shl i80 %1699, 40
-  %1701 = ashr i80 %1700, 62
-  %1702 = shl nsw i80 %1701, 32
-  %1703 = trunc i80 %1702 to i64
-  %1704 = ashr exact i64 %1703, 32
-  call fastcc void @transparent_crc(i64 %1704, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.746, i64 0, i64 0), i32 signext undef)
-  %1705 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 6, i32 0) to i80*), align 2
-  %1706 = lshr i80 %1705, 4
-  %1707 = trunc i80 %1706 to i64
-  %1708 = and i64 %1707, 262143
-  call fastcc void @transparent_crc(i64 %1708, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.747, i64 0, i64 0), i32 signext undef)
-  %1709 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1710 = lshr i120 %1709, 107
+  %1683 = ashr exact i64 %1682, 32
+  call fastcc void @transparent_crc(i64 %1683, ptr @.str.745, i32 signext undef)
+  %1684 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 6, i32 0), align 2
+  %1685 = shl i80 %1684, 40
+  %1686 = ashr i80 %1685, 62
+  %1687 = shl nsw i80 %1686, 32
+  %1688 = trunc i80 %1687 to i64
+  %1689 = ashr exact i64 %1688, 32
+  call fastcc void @transparent_crc(i64 %1689, ptr @.str.746, i32 signext undef)
+  %1690 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 6, i32 0), align 2
+  %1691 = lshr i80 %1690, 4
+  %1692 = trunc i80 %1691 to i64
+  %1693 = and i64 %1692, 262143
+  call fastcc void @transparent_crc(i64 %1693, ptr @.str.747, i32 signext undef)
+  %1694 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1695 = lshr i120 %1694, 107
+  %1696 = trunc i120 %1695 to i64
+  call fastcc void @transparent_crc(i64 %1696, ptr @.str.748, i32 signext undef)
+  %1697 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1698 = lshr i120 %1697, 78
+  %1699 = trunc i120 %1698 to i64
+  %1700 = and i64 %1699, 536870911
+  call fastcc void @transparent_crc(i64 %1700, ptr @.str.749, i32 signext undef)
+  %1701 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1702 = shl i120 %1701, 42
+  %1703 = ashr i120 %1702, 104
+  %1704 = shl nsw i120 %1703, 32
+  %1705 = trunc i120 %1704 to i64
+  %1706 = ashr exact i64 %1705, 32
+  call fastcc void @transparent_crc(i64 %1706, ptr @.str.750, i32 signext undef)
+  %1707 = load volatile i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1708 = shl i120 %1707, 58
+  %1709 = ashr i120 %1708, 105
+  %1710 = shl nsw i120 %1709, 32
   %1711 = trunc i120 %1710 to i64
-  call fastcc void @transparent_crc(i64 %1711, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.748, i64 0, i64 0), i32 signext undef)
-  %1712 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1713 = lshr i120 %1712, 78
-  %1714 = trunc i120 %1713 to i64
-  %1715 = and i64 %1714, 536870911
-  call fastcc void @transparent_crc(i64 %1715, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.749, i64 0, i64 0), i32 signext undef)
-  %1716 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1717 = shl i120 %1716, 42
-  %1718 = ashr i120 %1717, 104
-  %1719 = shl nsw i120 %1718, 32
-  %1720 = trunc i120 %1719 to i64
-  %1721 = ashr exact i64 %1720, 32
-  call fastcc void @transparent_crc(i64 %1721, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.750, i64 0, i64 0), i32 signext undef)
-  %1722 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1723 = shl i120 %1722, 58
-  %1724 = ashr i120 %1723, 105
-  %1725 = shl nsw i120 %1724, 32
-  %1726 = trunc i120 %1725 to i64
-  %1727 = ashr exact i64 %1726, 32
-  call fastcc void @transparent_crc(i64 %1727, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.751, i64 0, i64 0), i32 signext undef)
-  %1728 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1729 = lshr i120 %1728, 41
-  %1730 = trunc i120 %1729 to i64
-  %1731 = and i64 %1730, 63
-  call fastcc void @transparent_crc(i64 %1731, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.752, i64 0, i64 0), i32 signext undef)
-  %1732 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1733 = lshr i120 %1732, 19
-  %1734 = trunc i120 %1733 to i64
-  %1735 = and i64 %1734, 4194303
-  call fastcc void @transparent_crc(i64 %1735, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.753, i64 0, i64 0), i32 signext undef)
-  %1736 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_967, i64 0, i32 7, i32 0) to i120*), align 2
-  %1737 = shl i120 %1736, 101
-  %1738 = ashr exact i120 %1737, 69
-  %1739 = trunc i120 %1738 to i64
-  %1740 = ashr exact i64 %1739, 32
-  call fastcc void @transparent_crc(i64 %1740, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.754, i64 0, i64 0), i32 signext undef)
-  %1741 = load i32, i32* undef, align 4, !tbaa !34
-  %1742 = zext i32 %1741 to i64
-  call fastcc void @transparent_crc(i64 %1742, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.755, i64 0, i64 0), i32 signext undef)
-  %1743 = load i8, i8* undef, align 4, !tbaa !6
-  %1744 = sext i8 %1743 to i64
-  call fastcc void @transparent_crc(i64 %1744, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.756, i64 0, i64 0), i32 signext undef)
-  %1745 = getelementptr inbounds [3 x %3], [3 x %3]* bitcast (<{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>* @g_991 to [3 x %3]*), i64 0, i64 0, i32 2
-  %1746 = load volatile i16, i16* %1745, align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.757, i64 0, i64 0), i32 signext undef)
-  %1747 = load i32, i32* undef, align 4, !tbaa !33
-  %1748 = zext i32 %1747 to i64
-  call fastcc void @transparent_crc(i64 %1748, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.758, i64 0, i64 0), i32 signext undef)
-  %1749 = load volatile i80, i80* undef, align 4
-  %1750 = lshr i80 %1749, 57
-  %1751 = trunc i80 %1750 to i64
-  call fastcc void @transparent_crc(i64 %1751, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.759, i64 0, i64 0), i32 signext undef)
-  %1752 = load volatile i80, i80* undef, align 4
-  %1753 = shl i80 %1752, 23
-  %1754 = ashr i80 %1753, 64
-  %1755 = shl nsw i80 %1754, 32
-  %1756 = trunc i80 %1755 to i64
-  %1757 = ashr exact i64 %1756, 32
-  call fastcc void @transparent_crc(i64 %1757, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.760, i64 0, i64 0), i32 signext undef)
-  %1758 = load volatile i80, i80* undef, align 4
-  %1759 = shl i80 %1758, 39
-  %1760 = ashr i80 %1759, 62
-  %1761 = shl nsw i80 %1760, 32
-  %1762 = trunc i80 %1761 to i64
-  %1763 = ashr exact i64 %1762, 32
-  call fastcc void @transparent_crc(i64 %1763, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.761, i64 0, i64 0), i32 signext undef)
-  %1764 = load volatile i80, i80* undef, align 4
-  %1765 = shl i80 %1764, 57
-  %1766 = ashr i80 %1765, 58
-  %1767 = shl nsw i80 %1766, 32
-  %1768 = trunc i80 %1767 to i64
-  %1769 = ashr exact i64 %1768, 32
-  call fastcc void @transparent_crc(i64 %1769, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.762, i64 0, i64 0), i32 signext undef)
-  %1770 = getelementptr inbounds [3 x %3], [3 x %3]* bitcast (<{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>* @g_991 to [3 x %3]*), i64 0, i64 0, i32 4, i32 1
-  %1771 = bitcast [10 x i8]* %1770 to i80*
-  %1772 = load i80, i80* %1771, align 2
-  %1773 = lshr i80 %1772, 49
-  %1774 = trunc i80 %1773 to i64
-  call fastcc void @transparent_crc(i64 %1774, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.763, i64 0, i64 0), i32 signext undef)
-  %1775 = load volatile i80, i80* %1771, align 2
-  %1776 = lshr i80 %1775, 24
+  %1712 = ashr exact i64 %1711, 32
+  call fastcc void @transparent_crc(i64 %1712, ptr @.str.751, i32 signext undef)
+  %1713 = load volatile i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1714 = lshr i120 %1713, 41
+  %1715 = trunc i120 %1714 to i64
+  %1716 = and i64 %1715, 63
+  call fastcc void @transparent_crc(i64 %1716, ptr @.str.752, i32 signext undef)
+  %1717 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1718 = lshr i120 %1717, 19
+  %1719 = trunc i120 %1718 to i64
+  %1720 = and i64 %1719, 4194303
+  call fastcc void @transparent_crc(i64 %1720, ptr @.str.753, i32 signext undef)
+  %1721 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_967, i64 0, i32 7, i32 0), align 2
+  %1722 = shl i120 %1721, 101
+  %1723 = ashr exact i120 %1722, 69
+  %1724 = trunc i120 %1723 to i64
+  %1725 = ashr exact i64 %1724, 32
+  call fastcc void @transparent_crc(i64 %1725, ptr @.str.754, i32 signext undef)
+  %1726 = load i32, ptr undef, align 4, !tbaa !34
+  %1727 = zext i32 %1726 to i64
+  call fastcc void @transparent_crc(i64 %1727, ptr @.str.755, i32 signext undef)
+  %1728 = load i8, ptr undef, align 4, !tbaa !6
+  %1729 = sext i8 %1728 to i64
+  call fastcc void @transparent_crc(i64 %1729, ptr @.str.756, i32 signext undef)
+  %1730 = getelementptr inbounds [3 x %3], ptr @g_991, i64 0, i64 0, i32 2
+  %1731 = load volatile i16, ptr %1730, align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.757, i32 signext undef)
+  %1732 = load i32, ptr undef, align 4, !tbaa !33
+  %1733 = zext i32 %1732 to i64
+  call fastcc void @transparent_crc(i64 %1733, ptr @.str.758, i32 signext undef)
+  %1734 = load volatile i80, ptr undef, align 4
+  %1735 = lshr i80 %1734, 57
+  %1736 = trunc i80 %1735 to i64
+  call fastcc void @transparent_crc(i64 %1736, ptr @.str.759, i32 signext undef)
+  %1737 = load volatile i80, ptr undef, align 4
+  %1738 = shl i80 %1737, 23
+  %1739 = ashr i80 %1738, 64
+  %1740 = shl nsw i80 %1739, 32
+  %1741 = trunc i80 %1740 to i64
+  %1742 = ashr exact i64 %1741, 32
+  call fastcc void @transparent_crc(i64 %1742, ptr @.str.760, i32 signext undef)
+  %1743 = load volatile i80, ptr undef, align 4
+  %1744 = shl i80 %1743, 39
+  %1745 = ashr i80 %1744, 62
+  %1746 = shl nsw i80 %1745, 32
+  %1747 = trunc i80 %1746 to i64
+  %1748 = ashr exact i64 %1747, 32
+  call fastcc void @transparent_crc(i64 %1748, ptr @.str.761, i32 signext undef)
+  %1749 = load volatile i80, ptr undef, align 4
+  %1750 = shl i80 %1749, 57
+  %1751 = ashr i80 %1750, 58
+  %1752 = shl nsw i80 %1751, 32
+  %1753 = trunc i80 %1752 to i64
+  %1754 = ashr exact i64 %1753, 32
+  call fastcc void @transparent_crc(i64 %1754, ptr @.str.762, i32 signext undef)
+  %1755 = getelementptr inbounds [3 x %3], ptr @g_991, i64 0, i64 0, i32 4, i32 1
+  %1756 = load i80, ptr %1755, align 2
+  %1757 = lshr i80 %1756, 49
+  %1758 = trunc i80 %1757 to i64
+  call fastcc void @transparent_crc(i64 %1758, ptr @.str.763, i32 signext undef)
+  %1759 = load volatile i80, ptr %1755, align 2
+  %1760 = lshr i80 %1759, 24
+  %1761 = trunc i80 %1760 to i64
+  %1762 = and i64 %1761, 33554431
+  call fastcc void @transparent_crc(i64 %1762, ptr @.str.764, i32 signext undef)
+  %1763 = load i80, ptr %1755, align 2
+  %1764 = shl i80 %1763, 56
+  %1765 = ashr i80 %1764, 68
+  %1766 = shl nsw i80 %1765, 32
+  %1767 = trunc i80 %1766 to i64
+  %1768 = ashr exact i64 %1767, 32
+  call fastcc void @transparent_crc(i64 %1768, ptr @.str.765, i32 signext undef)
+  %1769 = load i80, ptr %1755, align 2
+  %1770 = lshr i80 %1769, 11
+  %1771 = trunc i80 %1770 to i64
+  %1772 = and i64 %1771, 1
+  call fastcc void @transparent_crc(i64 %1772, ptr @.str.766, i32 signext undef)
+  %1773 = load volatile i80, ptr %1755, align 2
+  %1774 = shl i80 %1773, 69
+  %1775 = ashr i80 %1774, 72
+  %1776 = shl nsw i80 %1775, 32
   %1777 = trunc i80 %1776 to i64
-  %1778 = and i64 %1777, 33554431
-  call fastcc void @transparent_crc(i64 %1778, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.764, i64 0, i64 0), i32 signext undef)
-  %1779 = load i80, i80* %1771, align 2
-  %1780 = shl i80 %1779, 56
-  %1781 = ashr i80 %1780, 68
-  %1782 = shl nsw i80 %1781, 32
-  %1783 = trunc i80 %1782 to i64
-  %1784 = ashr exact i64 %1783, 32
-  call fastcc void @transparent_crc(i64 %1784, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.765, i64 0, i64 0), i32 signext undef)
-  %1785 = load i80, i80* %1771, align 2
-  %1786 = lshr i80 %1785, 11
-  %1787 = trunc i80 %1786 to i64
-  %1788 = and i64 %1787, 1
-  call fastcc void @transparent_crc(i64 %1788, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.766, i64 0, i64 0), i32 signext undef)
-  %1789 = load volatile i80, i80* %1771, align 2
-  %1790 = shl i80 %1789, 69
-  %1791 = ashr i80 %1790, 72
+  %1778 = ashr exact i64 %1777, 32
+  call fastcc void @transparent_crc(i64 %1778, ptr @.str.767, i32 signext undef)
+  %1779 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 0), align 4, !tbaa !34
+  %1780 = zext i32 %1779 to i64
+  call fastcc void @transparent_crc(i64 %1780, ptr @.str.768, i32 signext undef)
+  %1781 = load i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 1), align 4, !tbaa !6
+  %1782 = sext i8 %1781 to i64
+  call fastcc void @transparent_crc(i64 %1782, ptr @.str.769, i32 signext undef)
+  %1783 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.770, i32 signext undef)
+  %1784 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 3), align 4, !tbaa !33
+  %1785 = zext i32 %1784 to i64
+  call fastcc void @transparent_crc(i64 %1785, ptr @.str.771, i32 signext undef)
+  %1786 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 0, i32 0), align 4
+  %1787 = lshr i80 %1786, 57
+  %1788 = trunc i80 %1787 to i64
+  call fastcc void @transparent_crc(i64 %1788, ptr @.str.772, i32 signext undef)
+  %1789 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 0, i32 0), align 4
+  %1790 = shl i80 %1789, 23
+  %1791 = ashr i80 %1790, 64
   %1792 = shl nsw i80 %1791, 32
   %1793 = trunc i80 %1792 to i64
   %1794 = ashr exact i64 %1793, 32
-  call fastcc void @transparent_crc(i64 %1794, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.767, i64 0, i64 0), i32 signext undef)
-  %1795 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 0), align 4, !tbaa !34
-  %1796 = zext i32 %1795 to i64
-  call fastcc void @transparent_crc(i64 %1796, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.768, i64 0, i64 0), i32 signext undef)
-  %1797 = load i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 1), align 4, !tbaa !6
-  %1798 = sext i8 %1797 to i64
-  call fastcc void @transparent_crc(i64 %1798, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.769, i64 0, i64 0), i32 signext undef)
-  %1799 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.770, i64 0, i64 0), i32 signext undef)
-  %1800 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 3), align 4, !tbaa !33
-  %1801 = zext i32 %1800 to i64
-  call fastcc void @transparent_crc(i64 %1801, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.771, i64 0, i64 0), i32 signext undef)
-  %1802 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1803 = lshr i80 %1802, 57
-  %1804 = trunc i80 %1803 to i64
-  call fastcc void @transparent_crc(i64 %1804, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.772, i64 0, i64 0), i32 signext undef)
-  %1805 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1806 = shl i80 %1805, 23
-  %1807 = ashr i80 %1806, 64
-  %1808 = shl nsw i80 %1807, 32
+  call fastcc void @transparent_crc(i64 %1794, ptr @.str.773, i32 signext undef)
+  %1795 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 0, i32 0), align 4
+  %1796 = shl i80 %1795, 39
+  %1797 = ashr i80 %1796, 62
+  %1798 = shl nsw i80 %1797, 32
+  %1799 = trunc i80 %1798 to i64
+  %1800 = ashr exact i64 %1799, 32
+  call fastcc void @transparent_crc(i64 %1800, ptr @.str.774, i32 signext undef)
+  %1801 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 0, i32 0), align 4
+  %1802 = shl i80 %1801, 57
+  %1803 = ashr i80 %1802, 58
+  %1804 = shl nsw i80 %1803, 32
+  %1805 = trunc i80 %1804 to i64
+  %1806 = ashr exact i64 %1805, 32
+  call fastcc void @transparent_crc(i64 %1806, ptr @.str.775, i32 signext undef)
+  %1807 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 1), align 2
+  %1808 = lshr i80 %1807, 49
   %1809 = trunc i80 %1808 to i64
-  %1810 = ashr exact i64 %1809, 32
-  call fastcc void @transparent_crc(i64 %1810, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.773, i64 0, i64 0), i32 signext undef)
-  %1811 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1812 = shl i80 %1811, 39
-  %1813 = ashr i80 %1812, 62
-  %1814 = shl nsw i80 %1813, 32
-  %1815 = trunc i80 %1814 to i64
-  %1816 = ashr exact i64 %1815, 32
-  call fastcc void @transparent_crc(i64 %1816, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.774, i64 0, i64 0), i32 signext undef)
-  %1817 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1818 = shl i80 %1817, 57
-  %1819 = ashr i80 %1818, 58
-  %1820 = shl nsw i80 %1819, 32
-  %1821 = trunc i80 %1820 to i64
-  %1822 = ashr exact i64 %1821, 32
-  call fastcc void @transparent_crc(i64 %1822, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.775, i64 0, i64 0), i32 signext undef)
-  %1823 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 1) to i80*), align 2
-  %1824 = lshr i80 %1823, 49
-  %1825 = trunc i80 %1824 to i64
-  call fastcc void @transparent_crc(i64 %1825, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.776, i64 0, i64 0), i32 signext undef)
-  %1826 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 1) to i80*), align 2
-  %1827 = lshr i80 %1826, 24
+  call fastcc void @transparent_crc(i64 %1809, ptr @.str.776, i32 signext undef)
+  %1810 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 1), align 2
+  %1811 = lshr i80 %1810, 24
+  %1812 = trunc i80 %1811 to i64
+  %1813 = and i64 %1812, 33554431
+  call fastcc void @transparent_crc(i64 %1813, ptr @.str.777, i32 signext undef)
+  %1814 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 1), align 2
+  %1815 = shl i80 %1814, 56
+  %1816 = ashr i80 %1815, 68
+  %1817 = shl nsw i80 %1816, 32
+  %1818 = trunc i80 %1817 to i64
+  %1819 = ashr exact i64 %1818, 32
+  call fastcc void @transparent_crc(i64 %1819, ptr @.str.778, i32 signext undef)
+  %1820 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 1), align 2
+  %1821 = lshr i80 %1820, 11
+  %1822 = trunc i80 %1821 to i64
+  %1823 = and i64 %1822, 1
+  call fastcc void @transparent_crc(i64 %1823, ptr @.str.779, i32 signext undef)
+  %1824 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_992, i64 0, i32 4, i32 1), align 2
+  %1825 = shl i80 %1824, 69
+  %1826 = ashr i80 %1825, 72
+  %1827 = shl nsw i80 %1826, 32
   %1828 = trunc i80 %1827 to i64
-  %1829 = and i64 %1828, 33554431
-  call fastcc void @transparent_crc(i64 %1829, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.777, i64 0, i64 0), i32 signext undef)
-  %1830 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 1) to i80*), align 2
-  %1831 = shl i80 %1830, 56
-  %1832 = ashr i80 %1831, 68
-  %1833 = shl nsw i80 %1832, 32
-  %1834 = trunc i80 %1833 to i64
-  %1835 = ashr exact i64 %1834, 32
-  call fastcc void @transparent_crc(i64 %1835, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.778, i64 0, i64 0), i32 signext undef)
-  %1836 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 1) to i80*), align 2
-  %1837 = lshr i80 %1836, 11
+  %1829 = ashr exact i64 %1828, 32
+  call fastcc void @transparent_crc(i64 %1829, ptr @.str.780, i32 signext undef)
+  %1830 = load i32, ptr undef, align 4, !tbaa !34
+  %1831 = zext i32 %1830 to i64
+  call fastcc void @transparent_crc(i64 %1831, ptr @.str.781, i32 signext undef)
+  %1832 = getelementptr inbounds [5 x %3], ptr @g_993, i64 0, i64 0, i32 1
+  %1833 = load i8, ptr %1832, align 4, !tbaa !6
+  %1834 = sext i8 %1833 to i64
+  call fastcc void @transparent_crc(i64 %1834, ptr @.str.782, i32 signext undef)
+  %1835 = load volatile i16, ptr undef, align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 0, ptr @.str.783, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.784, i32 signext undef)
+  %1836 = load volatile i80, ptr undef, align 4
+  %1837 = lshr i80 %1836, 57
   %1838 = trunc i80 %1837 to i64
-  %1839 = and i64 %1838, 1
-  call fastcc void @transparent_crc(i64 %1839, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.779, i64 0, i64 0), i32 signext undef)
-  %1840 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_992, i64 0, i32 4, i32 1) to i80*), align 2
-  %1841 = shl i80 %1840, 69
-  %1842 = ashr i80 %1841, 72
-  %1843 = shl nsw i80 %1842, 32
-  %1844 = trunc i80 %1843 to i64
-  %1845 = ashr exact i64 %1844, 32
-  call fastcc void @transparent_crc(i64 %1845, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.780, i64 0, i64 0), i32 signext undef)
-  %1846 = load i32, i32* undef, align 4, !tbaa !34
-  %1847 = zext i32 %1846 to i64
-  call fastcc void @transparent_crc(i64 %1847, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.781, i64 0, i64 0), i32 signext undef)
-  %1848 = getelementptr inbounds [5 x %3], [5 x %3]* bitcast (<{ { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } } }>* @g_993 to [5 x %3]*), i64 0, i64 0, i32 1
-  %1849 = load i8, i8* %1848, align 4, !tbaa !6
-  %1850 = sext i8 %1849 to i64
-  call fastcc void @transparent_crc(i64 %1850, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.782, i64 0, i64 0), i32 signext undef)
-  %1851 = load volatile i16, i16* undef, align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.783, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.784, i64 0, i64 0), i32 signext undef)
-  %1852 = load volatile i80, i80* undef, align 4
-  %1853 = lshr i80 %1852, 57
-  %1854 = trunc i80 %1853 to i64
-  call fastcc void @transparent_crc(i64 %1854, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.785, i64 0, i64 0), i32 signext undef)
-  %1855 = load volatile i80, i80* undef, align 4
-  %1856 = shl i80 %1855, 23
-  %1857 = ashr i80 %1856, 64
-  %1858 = shl nsw i80 %1857, 32
+  call fastcc void @transparent_crc(i64 %1838, ptr @.str.785, i32 signext undef)
+  %1839 = load volatile i80, ptr undef, align 4
+  %1840 = shl i80 %1839, 23
+  %1841 = ashr i80 %1840, 64
+  %1842 = shl nsw i80 %1841, 32
+  %1843 = trunc i80 %1842 to i64
+  %1844 = ashr exact i64 %1843, 32
+  call fastcc void @transparent_crc(i64 %1844, ptr @.str.786, i32 signext undef)
+  %1845 = load volatile i80, ptr undef, align 4
+  %1846 = shl i80 %1845, 39
+  %1847 = ashr i80 %1846, 62
+  %1848 = shl nsw i80 %1847, 32
+  %1849 = trunc i80 %1848 to i64
+  %1850 = ashr exact i64 %1849, 32
+  call fastcc void @transparent_crc(i64 %1850, ptr @.str.787, i32 signext undef)
+  %1851 = load volatile i80, ptr undef, align 4
+  %1852 = shl i80 %1851, 57
+  %1853 = ashr i80 %1852, 58
+  %1854 = shl nsw i80 %1853, 32
+  %1855 = trunc i80 %1854 to i64
+  %1856 = ashr exact i64 %1855, 32
+  call fastcc void @transparent_crc(i64 %1856, ptr @.str.788, i32 signext undef)
+  %1857 = load i80, ptr undef, align 2
+  %1858 = lshr i80 %1857, 49
   %1859 = trunc i80 %1858 to i64
-  %1860 = ashr exact i64 %1859, 32
-  call fastcc void @transparent_crc(i64 %1860, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.786, i64 0, i64 0), i32 signext undef)
-  %1861 = load volatile i80, i80* undef, align 4
-  %1862 = shl i80 %1861, 39
-  %1863 = ashr i80 %1862, 62
-  %1864 = shl nsw i80 %1863, 32
-  %1865 = trunc i80 %1864 to i64
-  %1866 = ashr exact i64 %1865, 32
-  call fastcc void @transparent_crc(i64 %1866, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.787, i64 0, i64 0), i32 signext undef)
-  %1867 = load volatile i80, i80* undef, align 4
-  %1868 = shl i80 %1867, 57
-  %1869 = ashr i80 %1868, 58
-  %1870 = shl nsw i80 %1869, 32
-  %1871 = trunc i80 %1870 to i64
-  %1872 = ashr exact i64 %1871, 32
-  call fastcc void @transparent_crc(i64 %1872, i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str.788, i64 0, i64 0), i32 signext undef)
-  %1873 = load i80, i80* undef, align 2
-  %1874 = lshr i80 %1873, 49
-  %1875 = trunc i80 %1874 to i64
-  call fastcc void @transparent_crc(i64 %1875, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.789, i64 0, i64 0), i32 signext undef)
-  %1876 = load volatile i80, i80* undef, align 2
-  %1877 = lshr i80 %1876, 24
+  call fastcc void @transparent_crc(i64 %1859, ptr @.str.789, i32 signext undef)
+  %1860 = load volatile i80, ptr undef, align 2
+  %1861 = lshr i80 %1860, 24
+  %1862 = trunc i80 %1861 to i64
+  %1863 = and i64 %1862, 33554431
+  call fastcc void @transparent_crc(i64 %1863, ptr @.str.790, i32 signext undef)
+  %1864 = load i80, ptr undef, align 2
+  %1865 = shl i80 %1864, 56
+  %1866 = ashr i80 %1865, 68
+  %1867 = shl nsw i80 %1866, 32
+  %1868 = trunc i80 %1867 to i64
+  %1869 = ashr exact i64 %1868, 32
+  call fastcc void @transparent_crc(i64 %1869, ptr @.str.791, i32 signext undef)
+  %1870 = load i80, ptr undef, align 2
+  %1871 = lshr i80 %1870, 11
+  %1872 = trunc i80 %1871 to i64
+  %1873 = and i64 %1872, 1
+  call fastcc void @transparent_crc(i64 %1873, ptr @.str.792, i32 signext undef)
+  %1874 = load volatile i80, ptr undef, align 2
+  %1875 = shl i80 %1874, 69
+  %1876 = ashr i80 %1875, 72
+  %1877 = shl nsw i80 %1876, 32
   %1878 = trunc i80 %1877 to i64
-  %1879 = and i64 %1878, 33554431
-  call fastcc void @transparent_crc(i64 %1879, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.790, i64 0, i64 0), i32 signext undef)
-  %1880 = load i80, i80* undef, align 2
-  %1881 = shl i80 %1880, 56
-  %1882 = ashr i80 %1881, 68
-  %1883 = shl nsw i80 %1882, 32
-  %1884 = trunc i80 %1883 to i64
-  %1885 = ashr exact i64 %1884, 32
-  call fastcc void @transparent_crc(i64 %1885, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.791, i64 0, i64 0), i32 signext undef)
-  %1886 = load i80, i80* undef, align 2
-  %1887 = lshr i80 %1886, 11
-  %1888 = trunc i80 %1887 to i64
-  %1889 = and i64 %1888, 1
-  call fastcc void @transparent_crc(i64 %1889, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.792, i64 0, i64 0), i32 signext undef)
-  %1890 = load volatile i80, i80* undef, align 2
-  %1891 = shl i80 %1890, 69
-  %1892 = ashr i80 %1891, 72
-  %1893 = shl nsw i80 %1892, 32
-  %1894 = trunc i80 %1893 to i64
-  %1895 = ashr exact i64 %1894, 32
-  call fastcc void @transparent_crc(i64 %1895, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.793, i64 0, i64 0), i32 signext undef)
-  %1896 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 0), align 4, !tbaa !34
-  %1897 = zext i32 %1896 to i64
-  call fastcc void @transparent_crc(i64 %1897, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.794, i64 0, i64 0), i32 signext undef)
-  %1898 = load i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 1), align 4, !tbaa !6
-  %1899 = sext i8 %1898 to i64
-  call fastcc void @transparent_crc(i64 %1899, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.795, i64 0, i64 0), i32 signext undef)
-  %1900 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.796, i64 0, i64 0), i32 signext undef)
-  %1901 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 3), align 4, !tbaa !33
-  %1902 = zext i32 %1901 to i64
-  call fastcc void @transparent_crc(i64 %1902, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.797, i64 0, i64 0), i32 signext undef)
-  %1903 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1904 = lshr i80 %1903, 57
+  %1879 = ashr exact i64 %1878, 32
+  call fastcc void @transparent_crc(i64 %1879, ptr @.str.793, i32 signext undef)
+  %1880 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 0), align 4, !tbaa !34
+  %1881 = zext i32 %1880 to i64
+  call fastcc void @transparent_crc(i64 %1881, ptr @.str.794, i32 signext undef)
+  %1882 = load i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 1), align 4, !tbaa !6
+  %1883 = sext i8 %1882 to i64
+  call fastcc void @transparent_crc(i64 %1883, ptr @.str.795, i32 signext undef)
+  %1884 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.796, i32 signext undef)
+  %1885 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 3), align 4, !tbaa !33
+  %1886 = zext i32 %1885 to i64
+  call fastcc void @transparent_crc(i64 %1886, ptr @.str.797, i32 signext undef)
+  %1887 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 0, i32 0), align 4
+  %1888 = lshr i80 %1887, 57
+  %1889 = trunc i80 %1888 to i64
+  call fastcc void @transparent_crc(i64 %1889, ptr @.str.798, i32 signext undef)
+  %1890 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 0, i32 0), align 4
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.799, i32 signext undef)
+  %1891 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 0, i32 0), align 4
+  %1892 = shl i80 %1891, 39
+  %1893 = ashr i80 %1892, 62
+  %1894 = shl nsw i80 %1893, 32
+  %1895 = trunc i80 %1894 to i64
+  %1896 = ashr exact i64 %1895, 32
+  call fastcc void @transparent_crc(i64 %1896, ptr @.str.800, i32 signext undef)
+  %1897 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 0, i32 0), align 4
+  %1898 = shl i80 %1897, 57
+  %1899 = ashr i80 %1898, 58
+  %1900 = shl nsw i80 %1899, 32
+  %1901 = trunc i80 %1900 to i64
+  %1902 = ashr exact i64 %1901, 32
+  call fastcc void @transparent_crc(i64 %1902, ptr @.str.801, i32 signext undef)
+  %1903 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 1), align 2
+  %1904 = lshr i80 %1903, 49
   %1905 = trunc i80 %1904 to i64
-  call fastcc void @transparent_crc(i64 %1905, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.798, i64 0, i64 0), i32 signext undef)
-  %1906 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.799, i64 0, i64 0), i32 signext undef)
-  %1907 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1908 = shl i80 %1907, 39
-  %1909 = ashr i80 %1908, 62
-  %1910 = shl nsw i80 %1909, 32
-  %1911 = trunc i80 %1910 to i64
-  %1912 = ashr exact i64 %1911, 32
-  call fastcc void @transparent_crc(i64 %1912, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.800, i64 0, i64 0), i32 signext undef)
-  %1913 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1914 = shl i80 %1913, 57
-  %1915 = ashr i80 %1914, 58
-  %1916 = shl nsw i80 %1915, 32
-  %1917 = trunc i80 %1916 to i64
-  %1918 = ashr exact i64 %1917, 32
-  call fastcc void @transparent_crc(i64 %1918, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.801, i64 0, i64 0), i32 signext undef)
-  %1919 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 1) to i80*), align 2
-  %1920 = lshr i80 %1919, 49
-  %1921 = trunc i80 %1920 to i64
-  call fastcc void @transparent_crc(i64 %1921, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.802, i64 0, i64 0), i32 signext undef)
-  %1922 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 1) to i80*), align 2
-  %1923 = lshr i80 %1922, 24
+  call fastcc void @transparent_crc(i64 %1905, ptr @.str.802, i32 signext undef)
+  %1906 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 1), align 2
+  %1907 = lshr i80 %1906, 24
+  %1908 = trunc i80 %1907 to i64
+  %1909 = and i64 %1908, 33554431
+  call fastcc void @transparent_crc(i64 %1909, ptr @.str.803, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.804, i32 signext undef)
+  %1910 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 1), align 2
+  %1911 = lshr i80 %1910, 11
+  %1912 = trunc i80 %1911 to i64
+  %1913 = and i64 %1912, 1
+  call fastcc void @transparent_crc(i64 %1913, ptr @.str.805, i32 signext undef)
+  %1914 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_994, i64 0, i32 4, i32 1), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.806, i32 signext undef)
+  %1915 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 0), align 4, !tbaa !34
+  %1916 = zext i32 %1915 to i64
+  call fastcc void @transparent_crc(i64 %1916, ptr @.str.807, i32 signext undef)
+  %1917 = load i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 1), align 4, !tbaa !6
+  %1918 = sext i8 %1917 to i64
+  call fastcc void @transparent_crc(i64 %1918, ptr @.str.808, i32 signext undef)
+  %1919 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.809, i32 signext undef)
+  %1920 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 3), align 4, !tbaa !33
+  %1921 = zext i32 %1920 to i64
+  call fastcc void @transparent_crc(i64 %1921, ptr @.str.810, i32 signext undef)
+  %1922 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 4, i32 0, i32 0), align 4
+  %1923 = lshr i80 %1922, 57
   %1924 = trunc i80 %1923 to i64
-  %1925 = and i64 %1924, 33554431
-  call fastcc void @transparent_crc(i64 %1925, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.803, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.804, i64 0, i64 0), i32 signext undef)
-  %1926 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 1) to i80*), align 2
-  %1927 = lshr i80 %1926, 11
-  %1928 = trunc i80 %1927 to i64
-  %1929 = and i64 %1928, 1
-  call fastcc void @transparent_crc(i64 %1929, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.805, i64 0, i64 0), i32 signext undef)
-  %1930 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_994, i64 0, i32 4, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([12 x i8], [12 x i8]* @.str.806, i64 0, i64 0), i32 signext undef)
-  %1931 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 0), align 4, !tbaa !34
-  %1932 = zext i32 %1931 to i64
-  call fastcc void @transparent_crc(i64 %1932, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.807, i64 0, i64 0), i32 signext undef)
-  %1933 = load i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 1), align 4, !tbaa !6
-  %1934 = sext i8 %1933 to i64
-  call fastcc void @transparent_crc(i64 %1934, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.808, i64 0, i64 0), i32 signext undef)
-  %1935 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.809, i64 0, i64 0), i32 signext undef)
-  %1936 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 3), align 4, !tbaa !33
-  %1937 = zext i32 %1936 to i64
-  call fastcc void @transparent_crc(i64 %1937, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.810, i64 0, i64 0), i32 signext undef)
-  %1938 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1939 = lshr i80 %1938, 57
-  %1940 = trunc i80 %1939 to i64
-  call fastcc void @transparent_crc(i64 %1940, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.811, i64 0, i64 0), i32 signext undef)
-  %1941 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1942 = shl i80 %1941, 23
-  %1943 = ashr i80 %1942, 64
-  %1944 = shl nsw i80 %1943, 32
-  %1945 = trunc i80 %1944 to i64
-  %1946 = ashr exact i64 %1945, 32
-  call fastcc void @transparent_crc(i64 %1946, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.812, i64 0, i64 0), i32 signext undef)
-  %1947 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %1948 = shl i80 %1947, 39
-  %1949 = ashr i80 %1948, 62
-  %1950 = shl nsw i80 %1949, 32
-  %1951 = trunc i80 %1950 to i64
-  %1952 = ashr exact i64 %1951, 32
-  call fastcc void @transparent_crc(i64 %1952, i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.813, i64 0, i64 0), i32 signext undef)
-  %1953 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_995, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.871, i64 0, i64 0), i32 signext undef)
-  %1954 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 1, i32 0) to i80*), align 4
-  %1955 = shl i80 %1954, 57
-  %1956 = ashr i80 %1955, 58
-  %1957 = shl nsw i80 %1956, 32
-  %1958 = trunc i80 %1957 to i64
-  %1959 = ashr exact i64 %1958, 32
-  call fastcc void @transparent_crc(i64 %1959, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.872, i64 0, i64 0), i32 signext undef)
-  %1960 = load i16, i16* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 2), align 2, !tbaa !35
-  %1961 = zext i16 %1960 to i64
-  call fastcc void @transparent_crc(i64 %1961, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.873, i64 0, i64 0), i32 signext undef)
-  %1962 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %1963 = lshr i80 %1962, 57
-  %1964 = trunc i80 %1963 to i64
-  call fastcc void @transparent_crc(i64 %1964, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.874, i64 0, i64 0), i32 signext undef)
-  %1965 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %1966 = shl i80 %1965, 23
-  %1967 = ashr i80 %1966, 64
-  %1968 = shl nsw i80 %1967, 32
+  call fastcc void @transparent_crc(i64 %1924, ptr @.str.811, i32 signext undef)
+  %1925 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 4, i32 0, i32 0), align 4
+  %1926 = shl i80 %1925, 23
+  %1927 = ashr i80 %1926, 64
+  %1928 = shl nsw i80 %1927, 32
+  %1929 = trunc i80 %1928 to i64
+  %1930 = ashr exact i64 %1929, 32
+  call fastcc void @transparent_crc(i64 %1930, ptr @.str.812, i32 signext undef)
+  %1931 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 4, i32 0, i32 0), align 4
+  %1932 = shl i80 %1931, 39
+  %1933 = ashr i80 %1932, 62
+  %1934 = shl nsw i80 %1933, 32
+  %1935 = trunc i80 %1934 to i64
+  %1936 = ashr exact i64 %1935, 32
+  call fastcc void @transparent_crc(i64 %1936, ptr @.str.813, i32 signext undef)
+  %1937 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_995, i64 0, i32 4, i32 0, i32 0), align 4
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.871, i32 signext undef)
+  %1938 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 1, i32 0), align 4
+  %1939 = shl i80 %1938, 57
+  %1940 = ashr i80 %1939, 58
+  %1941 = shl nsw i80 %1940, 32
+  %1942 = trunc i80 %1941 to i64
+  %1943 = ashr exact i64 %1942, 32
+  call fastcc void @transparent_crc(i64 %1943, ptr @.str.872, i32 signext undef)
+  %1944 = load i16, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 2), align 2, !tbaa !35
+  %1945 = zext i16 %1944 to i64
+  call fastcc void @transparent_crc(i64 %1945, ptr @.str.873, i32 signext undef)
+  %1946 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 0, i32 0), align 8
+  %1947 = lshr i80 %1946, 57
+  %1948 = trunc i80 %1947 to i64
+  call fastcc void @transparent_crc(i64 %1948, ptr @.str.874, i32 signext undef)
+  %1949 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 0, i32 0), align 8
+  %1950 = shl i80 %1949, 23
+  %1951 = ashr i80 %1950, 64
+  %1952 = shl nsw i80 %1951, 32
+  %1953 = trunc i80 %1952 to i64
+  %1954 = ashr exact i64 %1953, 32
+  call fastcc void @transparent_crc(i64 %1954, ptr @.str.875, i32 signext undef)
+  %1955 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 0, i32 0), align 8
+  %1956 = shl i80 %1955, 39
+  %1957 = ashr i80 %1956, 62
+  %1958 = shl nsw i80 %1957, 32
+  %1959 = trunc i80 %1958 to i64
+  %1960 = ashr exact i64 %1959, 32
+  call fastcc void @transparent_crc(i64 %1960, ptr @.str.876, i32 signext undef)
+  %1961 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 0, i32 0), align 8
+  %1962 = shl i80 %1961, 57
+  %1963 = ashr i80 %1962, 58
+  %1964 = shl nsw i80 %1963, 32
+  %1965 = trunc i80 %1964 to i64
+  %1966 = ashr exact i64 %1965, 32
+  call fastcc void @transparent_crc(i64 %1966, ptr @.str.877, i32 signext undef)
+  %1967 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 1), align 2
+  %1968 = lshr i80 %1967, 49
   %1969 = trunc i80 %1968 to i64
-  %1970 = ashr exact i64 %1969, 32
-  call fastcc void @transparent_crc(i64 %1970, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.875, i64 0, i64 0), i32 signext undef)
-  %1971 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %1972 = shl i80 %1971, 39
-  %1973 = ashr i80 %1972, 62
-  %1974 = shl nsw i80 %1973, 32
-  %1975 = trunc i80 %1974 to i64
-  %1976 = ashr exact i64 %1975, 32
-  call fastcc void @transparent_crc(i64 %1976, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.876, i64 0, i64 0), i32 signext undef)
-  %1977 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %1978 = shl i80 %1977, 57
-  %1979 = ashr i80 %1978, 58
-  %1980 = shl nsw i80 %1979, 32
-  %1981 = trunc i80 %1980 to i64
-  %1982 = ashr exact i64 %1981, 32
-  call fastcc void @transparent_crc(i64 %1982, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.877, i64 0, i64 0), i32 signext undef)
-  %1983 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 1) to i80*), align 2
-  %1984 = lshr i80 %1983, 49
-  %1985 = trunc i80 %1984 to i64
-  call fastcc void @transparent_crc(i64 %1985, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.878, i64 0, i64 0), i32 signext undef)
-  %1986 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 1) to i80*), align 2
-  %1987 = lshr i80 %1986, 24
+  call fastcc void @transparent_crc(i64 %1969, ptr @.str.878, i32 signext undef)
+  %1970 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 1), align 2
+  %1971 = lshr i80 %1970, 24
+  %1972 = trunc i80 %1971 to i64
+  %1973 = and i64 %1972, 33554431
+  call fastcc void @transparent_crc(i64 %1973, ptr @.str.879, i32 signext undef)
+  %1974 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 1), align 2
+  %1975 = shl i80 %1974, 56
+  %1976 = ashr i80 %1975, 68
+  %1977 = shl nsw i80 %1976, 32
+  %1978 = trunc i80 %1977 to i64
+  %1979 = ashr exact i64 %1978, 32
+  call fastcc void @transparent_crc(i64 %1979, ptr @.str.880, i32 signext undef)
+  %1980 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 1), align 2
+  %1981 = lshr i80 %1980, 11
+  %1982 = trunc i80 %1981 to i64
+  %1983 = and i64 %1982, 1
+  call fastcc void @transparent_crc(i64 %1983, ptr @.str.881, i32 signext undef)
+  %1984 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 3, i32 1), align 2
+  %1985 = shl i80 %1984, 69
+  %1986 = ashr i80 %1985, 72
+  %1987 = shl nsw i80 %1986, 32
   %1988 = trunc i80 %1987 to i64
-  %1989 = and i64 %1988, 33554431
-  call fastcc void @transparent_crc(i64 %1989, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.879, i64 0, i64 0), i32 signext undef)
-  %1990 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 1) to i80*), align 2
-  %1991 = shl i80 %1990, 56
-  %1992 = ashr i80 %1991, 68
-  %1993 = shl nsw i80 %1992, 32
-  %1994 = trunc i80 %1993 to i64
-  %1995 = ashr exact i64 %1994, 32
-  call fastcc void @transparent_crc(i64 %1995, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.880, i64 0, i64 0), i32 signext undef)
-  %1996 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 1) to i80*), align 2
-  %1997 = lshr i80 %1996, 11
-  %1998 = trunc i80 %1997 to i64
-  %1999 = and i64 %1998, 1
-  call fastcc void @transparent_crc(i64 %1999, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.881, i64 0, i64 0), i32 signext undef)
-  %2000 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 3, i32 1) to i80*), align 2
-  %2001 = shl i80 %2000, 69
-  %2002 = ashr i80 %2001, 72
-  %2003 = shl nsw i80 %2002, 32
+  %1989 = ashr exact i64 %1988, 32
+  call fastcc void @transparent_crc(i64 %1989, ptr @.str.882, i32 signext undef)
+  %1990 = load volatile i8, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 4), align 4, !tbaa !38
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.883, i32 signext undef)
+  %1991 = load volatile i32, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 5), align 8, !tbaa !39
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.884, i32 signext undef)
+  %1992 = load volatile i8, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 6, i32 0), align 8, !tbaa !40
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.885, i32 signext undef)
+  %1993 = load volatile i8, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 6, i32 1), align 1, !tbaa !41
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.886, i32 signext undef)
+  %1994 = load volatile i16, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 6, i32 2), align 2, !tbaa !42
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.887, i32 signext undef)
+  %1995 = load volatile i64, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 6, i32 3), align 8, !tbaa !43
+  call fastcc void @transparent_crc(i64 %1995, ptr @.str.888, i32 signext undef)
+  %1996 = load volatile i32, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 6, i32 4), align 8, !tbaa !44
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.889, i32 signext undef)
+  %1997 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 7, i32 0), align 8
+  %1998 = ashr i80 %1997, 73
+  %1999 = shl nsw i80 %1998, 32
+  %2000 = trunc i80 %1999 to i64
+  %2001 = ashr exact i64 %2000, 32
+  call fastcc void @transparent_crc(i64 %2001, ptr @.str.890, i32 signext undef)
+  %2002 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 7, i32 0), align 8
+  %2003 = lshr i80 %2002, 61
   %2004 = trunc i80 %2003 to i64
-  %2005 = ashr exact i64 %2004, 32
-  call fastcc void @transparent_crc(i64 %2005, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.882, i64 0, i64 0), i32 signext undef)
-  %2006 = load volatile i8, i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 4), align 4, !tbaa !38
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.883, i64 0, i64 0), i32 signext undef)
-  %2007 = load volatile i32, i32* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 5), align 8, !tbaa !39
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.884, i64 0, i64 0), i32 signext undef)
-  %2008 = load volatile i8, i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 6, i32 0), align 8, !tbaa !40
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.885, i64 0, i64 0), i32 signext undef)
-  %2009 = load volatile i8, i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 6, i32 1), align 1, !tbaa !41
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.886, i64 0, i64 0), i32 signext undef)
-  %2010 = load volatile i16, i16* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 6, i32 2), align 2, !tbaa !42
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.887, i64 0, i64 0), i32 signext undef)
-  %2011 = load volatile i64, i64* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 6, i32 3), align 8, !tbaa !43
-  call fastcc void @transparent_crc(i64 %2011, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.888, i64 0, i64 0), i32 signext undef)
-  %2012 = load volatile i32, i32* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 6, i32 4), align 8, !tbaa !44
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.889, i64 0, i64 0), i32 signext undef)
-  %2013 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 7, i32 0) to i80*), align 8
-  %2014 = ashr i80 %2013, 73
-  %2015 = shl nsw i80 %2014, 32
-  %2016 = trunc i80 %2015 to i64
-  %2017 = ashr exact i64 %2016, 32
-  call fastcc void @transparent_crc(i64 %2017, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.890, i64 0, i64 0), i32 signext undef)
-  %2018 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 7, i32 0) to i80*), align 8
-  %2019 = lshr i80 %2018, 61
-  %2020 = trunc i80 %2019 to i64
-  %2021 = and i64 %2020, 4095
-  call fastcc void @transparent_crc(i64 %2021, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.891, i64 0, i64 0), i32 signext undef)
-  %2022 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1121, i64 0, i32 7, i32 0) to i80*), align 8
-  %2023 = shl i80 %2022, 19
-  %2024 = ashr i80 %2023, 59
-  %2025 = shl nsw i80 %2024, 32
-  %2026 = trunc i80 %2025 to i64
-  %2027 = ashr exact i64 %2026, 32
-  call fastcc void @transparent_crc(i64 %2027, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.892, i64 0, i64 0), i32 signext undef)
-  %2028 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 2, i32 0) to i120*), align 1
-  %2029 = lshr i120 %2028, 41
-  %2030 = trunc i120 %2029 to i64
-  %2031 = and i64 %2030, 63
-  call fastcc void @transparent_crc(i64 %2031, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.908, i64 0, i64 0), i32 signext undef)
-  %2032 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 2, i32 0) to i120*), align 1
-  %2033 = lshr i120 %2032, 19
-  %2034 = trunc i120 %2033 to i64
-  %2035 = and i64 %2034, 4194303
-  call fastcc void @transparent_crc(i64 %2035, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.909, i64 0, i64 0), i32 signext undef)
-  %2036 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 2, i32 0) to i120*), align 1
-  %2037 = shl i120 %2036, 101
-  %2038 = ashr exact i120 %2037, 69
-  %2039 = trunc i120 %2038 to i64
-  %2040 = ashr exact i64 %2039, 32
-  call fastcc void @transparent_crc(i64 %2040, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.910, i64 0, i64 0), i32 signext undef)
-  %2041 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %2042 = zext i8 %2041 to i64
-  call fastcc void @transparent_crc(i64 %2042, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.911, i64 0, i64 0), i32 signext undef)
-  %2043 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %2044 = sext i8 %2043 to i64
-  call fastcc void @transparent_crc(i64 %2044, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.912, i64 0, i64 0), i32 signext undef)
-  %2045 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %2046 = sext i16 %2045 to i64
-  call fastcc void @transparent_crc(i64 %2046, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.913, i64 0, i64 0), i32 signext undef)
-  %2047 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %2047, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.914, i64 0, i64 0), i32 signext undef)
-  %2048 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %2049 = sext i32 %2048 to i64
-  call fastcc void @transparent_crc(i64 %2049, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.915, i64 0, i64 0), i32 signext undef)
-  %2050 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 4, i32 0) to i128*), align 2
-  %2051 = ashr i128 %2050, 99
-  %2052 = shl nsw i128 %2051, 32
-  %2053 = trunc i128 %2052 to i64
-  %2054 = ashr exact i64 %2053, 32
-  call fastcc void @transparent_crc(i64 %2054, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.916, i64 0, i64 0), i32 signext undef)
-  %2055 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.920, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.928, i64 0, i64 0), i32 signext undef)
-  %2056 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 5, i32 1) to i80*), align 2
-  %2057 = lshr i80 %2056, 11
-  %2058 = trunc i80 %2057 to i64
-  %2059 = and i64 %2058, 1
-  call fastcc void @transparent_crc(i64 %2059, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.929, i64 0, i64 0), i32 signext undef)
-  %2060 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 5, i32 1) to i80*), align 2
-  %2061 = shl i80 %2060, 69
-  %2062 = ashr i80 %2061, 72
-  %2063 = shl nsw i80 %2062, 32
-  %2064 = trunc i80 %2063 to i64
-  %2065 = ashr exact i64 %2064, 32
-  call fastcc void @transparent_crc(i64 %2065, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.930, i64 0, i64 0), i32 signext undef)
-  %2066 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 6), align 2, !tbaa !50
-  %2067 = sext i16 %2066 to i64
-  call fastcc void @transparent_crc(i64 %2067, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.931, i64 0, i64 0), i32 signext undef)
-  %2068 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1383, i64 0, i32 7), align 2, !tbaa !51
-  %2069 = zext i16 %2068 to i64
-  call fastcc void @transparent_crc(i64 %2069, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.932, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 -940454702, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.933, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 807, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.934, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 599, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.935, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 464, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.936, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 2588, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.937, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 1188, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.938, i64 0, i64 0), i32 signext undef)
-  %2070 = load volatile i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 0), align 2, !tbaa !24
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.939, i64 0, i64 0), i32 signext undef)
-  %2071 = load volatile i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 1), align 2, !tbaa !52
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.940, i64 0, i64 0), i32 signext undef)
-  %2072 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2073 = lshr i120 %2072, 107
-  %2074 = trunc i120 %2073 to i64
-  call fastcc void @transparent_crc(i64 %2074, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.941, i64 0, i64 0), i32 signext undef)
-  %2075 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2076 = lshr i120 %2075, 78
+  %2005 = and i64 %2004, 4095
+  call fastcc void @transparent_crc(i64 %2005, ptr @.str.891, i32 signext undef)
+  %2006 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1121, i64 0, i32 7, i32 0), align 8
+  %2007 = shl i80 %2006, 19
+  %2008 = ashr i80 %2007, 59
+  %2009 = shl nsw i80 %2008, 32
+  %2010 = trunc i80 %2009 to i64
+  %2011 = ashr exact i64 %2010, 32
+  call fastcc void @transparent_crc(i64 %2011, ptr @.str.892, i32 signext undef)
+  %2012 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 2, i32 0), align 1
+  %2013 = lshr i120 %2012, 41
+  %2014 = trunc i120 %2013 to i64
+  %2015 = and i64 %2014, 63
+  call fastcc void @transparent_crc(i64 %2015, ptr @.str.908, i32 signext undef)
+  %2016 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 2, i32 0), align 1
+  %2017 = lshr i120 %2016, 19
+  %2018 = trunc i120 %2017 to i64
+  %2019 = and i64 %2018, 4194303
+  call fastcc void @transparent_crc(i64 %2019, ptr @.str.909, i32 signext undef)
+  %2020 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 2, i32 0), align 1
+  %2021 = shl i120 %2020, 101
+  %2022 = ashr exact i120 %2021, 69
+  %2023 = trunc i120 %2022 to i64
+  %2024 = ashr exact i64 %2023, 32
+  call fastcc void @transparent_crc(i64 %2024, ptr @.str.910, i32 signext undef)
+  %2025 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %2026 = zext i8 %2025 to i64
+  call fastcc void @transparent_crc(i64 %2026, ptr @.str.911, i32 signext undef)
+  %2027 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %2028 = sext i8 %2027 to i64
+  call fastcc void @transparent_crc(i64 %2028, ptr @.str.912, i32 signext undef)
+  %2029 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %2030 = sext i16 %2029 to i64
+  call fastcc void @transparent_crc(i64 %2030, ptr @.str.913, i32 signext undef)
+  %2031 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %2031, ptr @.str.914, i32 signext undef)
+  %2032 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %2033 = sext i32 %2032 to i64
+  call fastcc void @transparent_crc(i64 %2033, ptr @.str.915, i32 signext undef)
+  %2034 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 4, i32 0), align 2
+  %2035 = ashr i128 %2034, 99
+  %2036 = shl nsw i128 %2035, 32
+  %2037 = trunc i128 %2036 to i64
+  %2038 = ashr exact i64 %2037, 32
+  call fastcc void @transparent_crc(i64 %2038, ptr @.str.916, i32 signext undef)
+  %2039 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.920, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.928, i32 signext undef)
+  %2040 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 5, i32 1), align 2
+  %2041 = lshr i80 %2040, 11
+  %2042 = trunc i80 %2041 to i64
+  %2043 = and i64 %2042, 1
+  call fastcc void @transparent_crc(i64 %2043, ptr @.str.929, i32 signext undef)
+  %2044 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 5, i32 1), align 2
+  %2045 = shl i80 %2044, 69
+  %2046 = ashr i80 %2045, 72
+  %2047 = shl nsw i80 %2046, 32
+  %2048 = trunc i80 %2047 to i64
+  %2049 = ashr exact i64 %2048, 32
+  call fastcc void @transparent_crc(i64 %2049, ptr @.str.930, i32 signext undef)
+  %2050 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 6), align 2, !tbaa !50
+  %2051 = sext i16 %2050 to i64
+  call fastcc void @transparent_crc(i64 %2051, ptr @.str.931, i32 signext undef)
+  %2052 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1383, i64 0, i32 7), align 2, !tbaa !51
+  %2053 = zext i16 %2052 to i64
+  call fastcc void @transparent_crc(i64 %2053, ptr @.str.932, i32 signext undef)
+  call fastcc void @transparent_crc(i64 -940454702, ptr @.str.933, i32 signext undef)
+  call fastcc void @transparent_crc(i64 807, ptr @.str.934, i32 signext undef)
+  call fastcc void @transparent_crc(i64 599, ptr @.str.935, i32 signext undef)
+  call fastcc void @transparent_crc(i64 464, ptr @.str.936, i32 signext undef)
+  call fastcc void @transparent_crc(i64 2588, ptr @.str.937, i32 signext undef)
+  call fastcc void @transparent_crc(i64 1188, ptr @.str.938, i32 signext undef)
+  %2054 = load volatile i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 0), align 2, !tbaa !24
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.939, i32 signext undef)
+  %2055 = load volatile i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 1), align 2, !tbaa !52
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.940, i32 signext undef)
+  %2056 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2057 = lshr i120 %2056, 107
+  %2058 = trunc i120 %2057 to i64
+  call fastcc void @transparent_crc(i64 %2058, ptr @.str.941, i32 signext undef)
+  %2059 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2060 = lshr i120 %2059, 78
+  %2061 = trunc i120 %2060 to i64
+  %2062 = and i64 %2061, 536870911
+  call fastcc void @transparent_crc(i64 %2062, ptr @.str.942, i32 signext undef)
+  %2063 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2064 = shl i120 %2063, 42
+  %2065 = ashr i120 %2064, 104
+  %2066 = shl nsw i120 %2065, 32
+  %2067 = trunc i120 %2066 to i64
+  %2068 = ashr exact i64 %2067, 32
+  call fastcc void @transparent_crc(i64 %2068, ptr @.str.943, i32 signext undef)
+  %2069 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2070 = shl i120 %2069, 58
+  %2071 = ashr i120 %2070, 105
+  %2072 = shl nsw i120 %2071, 32
+  %2073 = trunc i120 %2072 to i64
+  %2074 = ashr exact i64 %2073, 32
+  call fastcc void @transparent_crc(i64 %2074, ptr @.str.944, i32 signext undef)
+  %2075 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2076 = lshr i120 %2075, 41
   %2077 = trunc i120 %2076 to i64
-  %2078 = and i64 %2077, 536870911
-  call fastcc void @transparent_crc(i64 %2078, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.942, i64 0, i64 0), i32 signext undef)
-  %2079 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2080 = shl i120 %2079, 42
-  %2081 = ashr i120 %2080, 104
-  %2082 = shl nsw i120 %2081, 32
-  %2083 = trunc i120 %2082 to i64
-  %2084 = ashr exact i64 %2083, 32
-  call fastcc void @transparent_crc(i64 %2084, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.943, i64 0, i64 0), i32 signext undef)
-  %2085 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2086 = shl i120 %2085, 58
-  %2087 = ashr i120 %2086, 105
-  %2088 = shl nsw i120 %2087, 32
-  %2089 = trunc i120 %2088 to i64
-  %2090 = ashr exact i64 %2089, 32
-  call fastcc void @transparent_crc(i64 %2090, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.944, i64 0, i64 0), i32 signext undef)
-  %2091 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2092 = lshr i120 %2091, 41
-  %2093 = trunc i120 %2092 to i64
-  %2094 = and i64 %2093, 63
-  call fastcc void @transparent_crc(i64 %2094, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.945, i64 0, i64 0), i32 signext undef)
-  %2095 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2096 = lshr i120 %2095, 19
-  %2097 = trunc i120 %2096 to i64
-  %2098 = and i64 %2097, 4194303
-  call fastcc void @transparent_crc(i64 %2098, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.946, i64 0, i64 0), i32 signext undef)
-  %2099 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 2, i32 0) to i120*), align 1
-  %2100 = shl i120 %2099, 101
-  %2101 = ashr exact i120 %2100, 69
-  %2102 = trunc i120 %2101 to i64
-  %2103 = ashr exact i64 %2102, 32
-  call fastcc void @transparent_crc(i64 %2103, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.947, i64 0, i64 0), i32 signext undef)
-  %2104 = load volatile i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.956, i64 0, i64 0), i32 signext undef)
-  %2105 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 4, i32 0) to i128*), align 2
-  %2106 = lshr i128 %2105, 28
-  %2107 = trunc i128 %2106 to i64
-  %2108 = and i64 %2107, 3
-  call fastcc void @transparent_crc(i64 %2108, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.957, i64 0, i64 0), i32 signext undef)
-  %2109 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 4, i32 0) to i128*), align 2
-  %2110 = shl i128 %2109, 100
-  %2111 = ashr i128 %2110, 107
-  %2112 = shl nsw i128 %2111, 32
-  %2113 = trunc i128 %2112 to i64
-  %2114 = ashr exact i64 %2113, 32
-  call fastcc void @transparent_crc(i64 %2114, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.958, i64 0, i64 0), i32 signext undef)
-  %2115 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %2116 = lshr i80 %2115, 57
-  %2117 = trunc i80 %2116 to i64
-  call fastcc void @transparent_crc(i64 %2117, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.959, i64 0, i64 0), i32 signext undef)
-  %2118 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %2119 = shl i80 %2118, 23
-  %2120 = ashr i80 %2119, 64
-  %2121 = shl nsw i80 %2120, 32
+  %2078 = and i64 %2077, 63
+  call fastcc void @transparent_crc(i64 %2078, ptr @.str.945, i32 signext undef)
+  %2079 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2080 = lshr i120 %2079, 19
+  %2081 = trunc i120 %2080 to i64
+  %2082 = and i64 %2081, 4194303
+  call fastcc void @transparent_crc(i64 %2082, ptr @.str.946, i32 signext undef)
+  %2083 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 2, i32 0), align 1
+  %2084 = shl i120 %2083, 101
+  %2085 = ashr exact i120 %2084, 69
+  %2086 = trunc i120 %2085 to i64
+  %2087 = ashr exact i64 %2086, 32
+  call fastcc void @transparent_crc(i64 %2087, ptr @.str.947, i32 signext undef)
+  %2088 = load volatile i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.956, i32 signext undef)
+  %2089 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 4, i32 0), align 2
+  %2090 = lshr i128 %2089, 28
+  %2091 = trunc i128 %2090 to i64
+  %2092 = and i64 %2091, 3
+  call fastcc void @transparent_crc(i64 %2092, ptr @.str.957, i32 signext undef)
+  %2093 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 4, i32 0), align 2
+  %2094 = shl i128 %2093, 100
+  %2095 = ashr i128 %2094, 107
+  %2096 = shl nsw i128 %2095, 32
+  %2097 = trunc i128 %2096 to i64
+  %2098 = ashr exact i64 %2097, 32
+  call fastcc void @transparent_crc(i64 %2098, ptr @.str.958, i32 signext undef)
+  %2099 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 0, i32 0), align 2
+  %2100 = lshr i80 %2099, 57
+  %2101 = trunc i80 %2100 to i64
+  call fastcc void @transparent_crc(i64 %2101, ptr @.str.959, i32 signext undef)
+  %2102 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 0, i32 0), align 2
+  %2103 = shl i80 %2102, 23
+  %2104 = ashr i80 %2103, 64
+  %2105 = shl nsw i80 %2104, 32
+  %2106 = trunc i80 %2105 to i64
+  %2107 = ashr exact i64 %2106, 32
+  call fastcc void @transparent_crc(i64 %2107, ptr @.str.960, i32 signext undef)
+  %2108 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 0, i32 0), align 2
+  %2109 = shl i80 %2108, 39
+  %2110 = ashr i80 %2109, 62
+  %2111 = shl nsw i80 %2110, 32
+  %2112 = trunc i80 %2111 to i64
+  %2113 = ashr exact i64 %2112, 32
+  call fastcc void @transparent_crc(i64 %2113, ptr @.str.961, i32 signext undef)
+  %2114 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 0, i32 0), align 2
+  %2115 = shl i80 %2114, 57
+  %2116 = ashr i80 %2115, 58
+  %2117 = shl nsw i80 %2116, 32
+  %2118 = trunc i80 %2117 to i64
+  %2119 = ashr exact i64 %2118, 32
+  call fastcc void @transparent_crc(i64 %2119, ptr @.str.962, i32 signext undef)
+  %2120 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 1), align 2
+  %2121 = lshr i80 %2120, 49
   %2122 = trunc i80 %2121 to i64
-  %2123 = ashr exact i64 %2122, 32
-  call fastcc void @transparent_crc(i64 %2123, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.960, i64 0, i64 0), i32 signext undef)
-  %2124 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %2125 = shl i80 %2124, 39
-  %2126 = ashr i80 %2125, 62
-  %2127 = shl nsw i80 %2126, 32
-  %2128 = trunc i80 %2127 to i64
-  %2129 = ashr exact i64 %2128, 32
-  call fastcc void @transparent_crc(i64 %2129, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.961, i64 0, i64 0), i32 signext undef)
-  %2130 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %2131 = shl i80 %2130, 57
-  %2132 = ashr i80 %2131, 58
-  %2133 = shl nsw i80 %2132, 32
-  %2134 = trunc i80 %2133 to i64
-  %2135 = ashr exact i64 %2134, 32
-  call fastcc void @transparent_crc(i64 %2135, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.962, i64 0, i64 0), i32 signext undef)
-  %2136 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 1) to i80*), align 2
-  %2137 = lshr i80 %2136, 49
-  %2138 = trunc i80 %2137 to i64
-  call fastcc void @transparent_crc(i64 %2138, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.963, i64 0, i64 0), i32 signext undef)
-  %2139 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 1) to i80*), align 2
-  %2140 = lshr i80 %2139, 24
+  call fastcc void @transparent_crc(i64 %2122, ptr @.str.963, i32 signext undef)
+  %2123 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 1), align 2
+  %2124 = lshr i80 %2123, 24
+  %2125 = trunc i80 %2124 to i64
+  %2126 = and i64 %2125, 33554431
+  call fastcc void @transparent_crc(i64 %2126, ptr @.str.964, i32 signext undef)
+  %2127 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 1), align 2
+  %2128 = shl i80 %2127, 56
+  %2129 = ashr i80 %2128, 68
+  %2130 = shl nsw i80 %2129, 32
+  %2131 = trunc i80 %2130 to i64
+  %2132 = ashr exact i64 %2131, 32
+  call fastcc void @transparent_crc(i64 %2132, ptr @.str.965, i32 signext undef)
+  %2133 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 1), align 2
+  %2134 = lshr i80 %2133, 11
+  %2135 = trunc i80 %2134 to i64
+  %2136 = and i64 %2135, 1
+  call fastcc void @transparent_crc(i64 %2136, ptr @.str.966, i32 signext undef)
+  %2137 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 5, i32 1), align 2
+  %2138 = shl i80 %2137, 69
+  %2139 = ashr i80 %2138, 72
+  %2140 = shl nsw i80 %2139, 32
   %2141 = trunc i80 %2140 to i64
-  %2142 = and i64 %2141, 33554431
-  call fastcc void @transparent_crc(i64 %2142, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.964, i64 0, i64 0), i32 signext undef)
-  %2143 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 1) to i80*), align 2
-  %2144 = shl i80 %2143, 56
-  %2145 = ashr i80 %2144, 68
-  %2146 = shl nsw i80 %2145, 32
-  %2147 = trunc i80 %2146 to i64
-  %2148 = ashr exact i64 %2147, 32
-  call fastcc void @transparent_crc(i64 %2148, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.965, i64 0, i64 0), i32 signext undef)
-  %2149 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 1) to i80*), align 2
-  %2150 = lshr i80 %2149, 11
-  %2151 = trunc i80 %2150 to i64
-  %2152 = and i64 %2151, 1
-  call fastcc void @transparent_crc(i64 %2152, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.966, i64 0, i64 0), i32 signext undef)
-  %2153 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 5, i32 1) to i80*), align 2
-  %2154 = shl i80 %2153, 69
-  %2155 = ashr i80 %2154, 72
-  %2156 = shl nsw i80 %2155, 32
-  %2157 = trunc i80 %2156 to i64
-  %2158 = ashr exact i64 %2157, 32
-  call fastcc void @transparent_crc(i64 %2158, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.967, i64 0, i64 0), i32 signext undef)
-  %2159 = load volatile i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 6), align 2, !tbaa !50
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.968, i64 0, i64 0), i32 signext undef)
-  %2160 = load volatile i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1402, i64 0, i32 7), align 2, !tbaa !51
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.969, i64 0, i64 0), i32 signext undef)
-  %2161 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 0), align 4, !tbaa !34
-  %2162 = zext i32 %2161 to i64
-  call fastcc void @transparent_crc(i64 %2162, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.970, i64 0, i64 0), i32 signext undef)
-  %2163 = load i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 1), align 4, !tbaa !6
-  %2164 = sext i8 %2163 to i64
-  call fastcc void @transparent_crc(i64 %2164, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.971, i64 0, i64 0), i32 signext undef)
-  %2165 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.972, i64 0, i64 0), i32 signext undef)
-  %2166 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 3), align 4, !tbaa !33
-  %2167 = zext i32 %2166 to i64
-  call fastcc void @transparent_crc(i64 %2167, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.973, i64 0, i64 0), i32 signext undef)
-  %2168 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %2169 = lshr i80 %2168, 57
-  %2170 = trunc i80 %2169 to i64
-  call fastcc void @transparent_crc(i64 %2170, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.974, i64 0, i64 0), i32 signext undef)
-  %2171 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %2172 = shl i80 %2171, 23
-  %2173 = ashr i80 %2172, 64
-  %2174 = shl nsw i80 %2173, 32
+  %2142 = ashr exact i64 %2141, 32
+  call fastcc void @transparent_crc(i64 %2142, ptr @.str.967, i32 signext undef)
+  %2143 = load volatile i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 6), align 2, !tbaa !50
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.968, i32 signext undef)
+  %2144 = load volatile i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1402, i64 0, i32 7), align 2, !tbaa !51
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.969, i32 signext undef)
+  %2145 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 0), align 4, !tbaa !34
+  %2146 = zext i32 %2145 to i64
+  call fastcc void @transparent_crc(i64 %2146, ptr @.str.970, i32 signext undef)
+  %2147 = load i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 1), align 4, !tbaa !6
+  %2148 = sext i8 %2147 to i64
+  call fastcc void @transparent_crc(i64 %2148, ptr @.str.971, i32 signext undef)
+  %2149 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.972, i32 signext undef)
+  %2150 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 3), align 4, !tbaa !33
+  %2151 = zext i32 %2150 to i64
+  call fastcc void @transparent_crc(i64 %2151, ptr @.str.973, i32 signext undef)
+  %2152 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 0, i32 0), align 4
+  %2153 = lshr i80 %2152, 57
+  %2154 = trunc i80 %2153 to i64
+  call fastcc void @transparent_crc(i64 %2154, ptr @.str.974, i32 signext undef)
+  %2155 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 0, i32 0), align 4
+  %2156 = shl i80 %2155, 23
+  %2157 = ashr i80 %2156, 64
+  %2158 = shl nsw i80 %2157, 32
+  %2159 = trunc i80 %2158 to i64
+  %2160 = ashr exact i64 %2159, 32
+  call fastcc void @transparent_crc(i64 %2160, ptr @.str.975, i32 signext undef)
+  %2161 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 0, i32 0), align 4
+  %2162 = shl i80 %2161, 39
+  %2163 = ashr i80 %2162, 62
+  %2164 = shl nsw i80 %2163, 32
+  %2165 = trunc i80 %2164 to i64
+  %2166 = ashr exact i64 %2165, 32
+  call fastcc void @transparent_crc(i64 %2166, ptr @.str.976, i32 signext undef)
+  %2167 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 0, i32 0), align 4
+  %2168 = shl i80 %2167, 57
+  %2169 = ashr i80 %2168, 58
+  %2170 = shl nsw i80 %2169, 32
+  %2171 = trunc i80 %2170 to i64
+  %2172 = ashr exact i64 %2171, 32
+  call fastcc void @transparent_crc(i64 %2172, ptr @.str.977, i32 signext undef)
+  %2173 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 1), align 2
+  %2174 = lshr i80 %2173, 49
   %2175 = trunc i80 %2174 to i64
-  %2176 = ashr exact i64 %2175, 32
-  call fastcc void @transparent_crc(i64 %2176, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.975, i64 0, i64 0), i32 signext undef)
-  %2177 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %2178 = shl i80 %2177, 39
-  %2179 = ashr i80 %2178, 62
-  %2180 = shl nsw i80 %2179, 32
-  %2181 = trunc i80 %2180 to i64
-  %2182 = ashr exact i64 %2181, 32
-  call fastcc void @transparent_crc(i64 %2182, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.976, i64 0, i64 0), i32 signext undef)
-  %2183 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %2184 = shl i80 %2183, 57
-  %2185 = ashr i80 %2184, 58
-  %2186 = shl nsw i80 %2185, 32
-  %2187 = trunc i80 %2186 to i64
-  %2188 = ashr exact i64 %2187, 32
-  call fastcc void @transparent_crc(i64 %2188, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.977, i64 0, i64 0), i32 signext undef)
-  %2189 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 1) to i80*), align 2
-  %2190 = lshr i80 %2189, 49
-  %2191 = trunc i80 %2190 to i64
-  call fastcc void @transparent_crc(i64 %2191, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.978, i64 0, i64 0), i32 signext undef)
-  %2192 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 1) to i80*), align 2
-  %2193 = lshr i80 %2192, 24
-  %2194 = trunc i80 %2193 to i64
-  %2195 = and i64 %2194, 33554431
-  call fastcc void @transparent_crc(i64 %2195, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.979, i64 0, i64 0), i32 signext undef)
-  %2196 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 1) to i80*), align 2
-  %2197 = shl i80 %2196, 56
-  %2198 = ashr i80 %2197, 68
-  %2199 = shl nsw i80 %2198, 32
-  %2200 = trunc i80 %2199 to i64
-  %2201 = ashr exact i64 %2200, 32
-  call fastcc void @transparent_crc(i64 %2201, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.980, i64 0, i64 0), i32 signext undef)
-  %2202 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 1) to i80*), align 2
-  %2203 = lshr i80 %2202, 11
-  %2204 = trunc i80 %2203 to i64
-  %2205 = and i64 %2204, 1
-  call fastcc void @transparent_crc(i64 %2205, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.981, i64 0, i64 0), i32 signext undef)
-  %2206 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1438, i64 0, i32 4, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.988, i64 0, i64 0), i32 signext undef)
-  %2207 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 2, i32 0) to i120*), align 1
-  %2208 = lshr i120 %2207, 41
-  %2209 = trunc i120 %2208 to i64
-  %2210 = and i64 %2209, 63
-  call fastcc void @transparent_crc(i64 %2210, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.989, i64 0, i64 0), i32 signext undef)
-  %2211 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 2, i32 0) to i120*), align 1
-  %2212 = lshr i120 %2211, 19
-  %2213 = trunc i120 %2212 to i64
-  %2214 = and i64 %2213, 4194303
-  call fastcc void @transparent_crc(i64 %2214, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.990, i64 0, i64 0), i32 signext undef)
-  %2215 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 2, i32 0) to i120*), align 1
-  %2216 = shl i120 %2215, 101
-  %2217 = ashr exact i120 %2216, 69
-  %2218 = trunc i120 %2217 to i64
-  %2219 = ashr exact i64 %2218, 32
-  call fastcc void @transparent_crc(i64 %2219, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.991, i64 0, i64 0), i32 signext undef)
-  %2220 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %2221 = zext i8 %2220 to i64
-  call fastcc void @transparent_crc(i64 %2221, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.992, i64 0, i64 0), i32 signext undef)
-  %2222 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %2223 = sext i8 %2222 to i64
-  call fastcc void @transparent_crc(i64 %2223, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.993, i64 0, i64 0), i32 signext undef)
-  %2224 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %2225 = sext i16 %2224 to i64
-  call fastcc void @transparent_crc(i64 %2225, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.994, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1006, i64 0, i64 0), i32 signext undef)
-  %2226 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 5, i32 1) to i80*), align 2
-  %2227 = lshr i80 %2226, 49
-  %2228 = trunc i80 %2227 to i64
-  call fastcc void @transparent_crc(i64 %2228, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1007, i64 0, i64 0), i32 signext undef)
-  %2229 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 5, i32 1) to i80*), align 2
-  %2230 = lshr i80 %2229, 24
+  call fastcc void @transparent_crc(i64 %2175, ptr @.str.978, i32 signext undef)
+  %2176 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 1), align 2
+  %2177 = lshr i80 %2176, 24
+  %2178 = trunc i80 %2177 to i64
+  %2179 = and i64 %2178, 33554431
+  call fastcc void @transparent_crc(i64 %2179, ptr @.str.979, i32 signext undef)
+  %2180 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 1), align 2
+  %2181 = shl i80 %2180, 56
+  %2182 = ashr i80 %2181, 68
+  %2183 = shl nsw i80 %2182, 32
+  %2184 = trunc i80 %2183 to i64
+  %2185 = ashr exact i64 %2184, 32
+  call fastcc void @transparent_crc(i64 %2185, ptr @.str.980, i32 signext undef)
+  %2186 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 1), align 2
+  %2187 = lshr i80 %2186, 11
+  %2188 = trunc i80 %2187 to i64
+  %2189 = and i64 %2188, 1
+  call fastcc void @transparent_crc(i64 %2189, ptr @.str.981, i32 signext undef)
+  %2190 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1438, i64 0, i32 4, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.988, i32 signext undef)
+  %2191 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 2, i32 0), align 1
+  %2192 = lshr i120 %2191, 41
+  %2193 = trunc i120 %2192 to i64
+  %2194 = and i64 %2193, 63
+  call fastcc void @transparent_crc(i64 %2194, ptr @.str.989, i32 signext undef)
+  %2195 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 2, i32 0), align 1
+  %2196 = lshr i120 %2195, 19
+  %2197 = trunc i120 %2196 to i64
+  %2198 = and i64 %2197, 4194303
+  call fastcc void @transparent_crc(i64 %2198, ptr @.str.990, i32 signext undef)
+  %2199 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 2, i32 0), align 1
+  %2200 = shl i120 %2199, 101
+  %2201 = ashr exact i120 %2200, 69
+  %2202 = trunc i120 %2201 to i64
+  %2203 = ashr exact i64 %2202, 32
+  call fastcc void @transparent_crc(i64 %2203, ptr @.str.991, i32 signext undef)
+  %2204 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %2205 = zext i8 %2204 to i64
+  call fastcc void @transparent_crc(i64 %2205, ptr @.str.992, i32 signext undef)
+  %2206 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %2207 = sext i8 %2206 to i64
+  call fastcc void @transparent_crc(i64 %2207, ptr @.str.993, i32 signext undef)
+  %2208 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %2209 = sext i16 %2208 to i64
+  call fastcc void @transparent_crc(i64 %2209, ptr @.str.994, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1006, i32 signext undef)
+  %2210 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 5, i32 1), align 2
+  %2211 = lshr i80 %2210, 49
+  %2212 = trunc i80 %2211 to i64
+  call fastcc void @transparent_crc(i64 %2212, ptr @.str.1007, i32 signext undef)
+  %2213 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 5, i32 1), align 2
+  %2214 = lshr i80 %2213, 24
+  %2215 = trunc i80 %2214 to i64
+  %2216 = and i64 %2215, 33554431
+  call fastcc void @transparent_crc(i64 %2216, ptr @.str.1008, i32 signext undef)
+  %2217 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 5, i32 1), align 2
+  %2218 = shl i80 %2217, 56
+  %2219 = ashr i80 %2218, 68
+  %2220 = shl nsw i80 %2219, 32
+  %2221 = trunc i80 %2220 to i64
+  %2222 = ashr exact i64 %2221, 32
+  call fastcc void @transparent_crc(i64 %2222, ptr @.str.1009, i32 signext undef)
+  %2223 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 5, i32 1), align 2
+  %2224 = lshr i80 %2223, 11
+  %2225 = trunc i80 %2224 to i64
+  %2226 = and i64 %2225, 1
+  call fastcc void @transparent_crc(i64 %2226, ptr @.str.1010, i32 signext undef)
+  %2227 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 5, i32 1), align 2
+  %2228 = shl i80 %2227, 69
+  %2229 = ashr i80 %2228, 72
+  %2230 = shl nsw i80 %2229, 32
   %2231 = trunc i80 %2230 to i64
-  %2232 = and i64 %2231, 33554431
-  call fastcc void @transparent_crc(i64 %2232, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1008, i64 0, i64 0), i32 signext undef)
-  %2233 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 5, i32 1) to i80*), align 2
-  %2234 = shl i80 %2233, 56
-  %2235 = ashr i80 %2234, 68
-  %2236 = shl nsw i80 %2235, 32
-  %2237 = trunc i80 %2236 to i64
-  %2238 = ashr exact i64 %2237, 32
-  call fastcc void @transparent_crc(i64 %2238, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1009, i64 0, i64 0), i32 signext undef)
-  %2239 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 5, i32 1) to i80*), align 2
-  %2240 = lshr i80 %2239, 11
-  %2241 = trunc i80 %2240 to i64
-  %2242 = and i64 %2241, 1
-  call fastcc void @transparent_crc(i64 %2242, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1010, i64 0, i64 0), i32 signext undef)
-  %2243 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 5, i32 1) to i80*), align 2
-  %2244 = shl i80 %2243, 69
-  %2245 = ashr i80 %2244, 72
-  %2246 = shl nsw i80 %2245, 32
-  %2247 = trunc i80 %2246 to i64
-  %2248 = ashr exact i64 %2247, 32
-  call fastcc void @transparent_crc(i64 %2248, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1011, i64 0, i64 0), i32 signext undef)
-  %2249 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 6), align 2, !tbaa !50
-  %2250 = sext i16 %2249 to i64
-  call fastcc void @transparent_crc(i64 %2250, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1012, i64 0, i64 0), i32 signext undef)
-  %2251 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1456, i64 0, i32 7), align 2, !tbaa !51
-  %2252 = zext i16 %2251 to i64
-  call fastcc void @transparent_crc(i64 %2252, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1013, i64 0, i64 0), i32 signext undef)
-  %2253 = load volatile i80, i80* undef, align 2
-  %2254 = lshr i80 %2253, 57
-  %2255 = trunc i80 %2254 to i64
-  call fastcc void @transparent_crc(i64 %2255, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1014, i64 0, i64 0), i32 signext undef)
-  %2256 = load volatile i80, i80* undef, align 2
-  %2257 = shl i80 %2256, 23
-  %2258 = ashr i80 %2257, 64
-  %2259 = shl nsw i80 %2258, 32
-  %2260 = trunc i80 %2259 to i64
-  %2261 = ashr exact i64 %2260, 32
-  call fastcc void @transparent_crc(i64 %2261, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1015, i64 0, i64 0), i32 signext undef)
-  %2262 = load volatile i80, i80* undef, align 2
-  %2263 = shl i80 %2262, 39
-  %2264 = ashr i80 %2263, 62
-  %2265 = shl nsw i80 %2264, 32
-  %2266 = trunc i80 %2265 to i64
-  %2267 = ashr exact i64 %2266, 32
-  call fastcc void @transparent_crc(i64 %2267, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1016, i64 0, i64 0), i32 signext undef)
-  %2268 = load volatile i80, i80* undef, align 2
-  %2269 = shl i80 %2268, 57
-  %2270 = ashr i80 %2269, 58
-  %2271 = shl nsw i80 %2270, 32
-  %2272 = trunc i80 %2271 to i64
-  %2273 = ashr exact i64 %2272, 32
-  call fastcc void @transparent_crc(i64 %2273, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1017, i64 0, i64 0), i32 signext undef)
-  %2274 = getelementptr inbounds [4 x [7 x %4]], [4 x [7 x %4]]* bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_1482 to [4 x [7 x %4]]*), i64 0, i64 0, i64 0, i32 1
-  %2275 = bitcast [10 x i8]* %2274 to i80*
-  %2276 = load i80, i80* %2275, align 2
-  %2277 = lshr i80 %2276, 49
-  %2278 = trunc i80 %2277 to i64
-  call fastcc void @transparent_crc(i64 %2278, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1018, i64 0, i64 0), i32 signext undef)
-  %2279 = load volatile i80, i80* %2275, align 2
-  %2280 = lshr i80 %2279, 24
-  %2281 = trunc i80 %2280 to i64
-  %2282 = and i64 %2281, 33554431
-  call fastcc void @transparent_crc(i64 %2282, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1019, i64 0, i64 0), i32 signext undef)
-  %2283 = load i80, i80* %2275, align 2
-  %2284 = shl i80 %2283, 56
-  %2285 = ashr i80 %2284, 68
-  %2286 = shl nsw i80 %2285, 32
-  %2287 = trunc i80 %2286 to i64
-  %2288 = ashr exact i64 %2287, 32
-  call fastcc void @transparent_crc(i64 %2288, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1020, i64 0, i64 0), i32 signext undef)
-  %2289 = load i80, i80* %2275, align 2
-  %2290 = lshr i80 %2289, 11
-  %2291 = trunc i80 %2290 to i64
-  %2292 = and i64 %2291, 1
-  call fastcc void @transparent_crc(i64 %2292, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1021, i64 0, i64 0), i32 signext undef)
-  %2293 = load volatile i80, i80* %2275, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1028, i64 0, i64 0), i32 signext undef)
-  %2294 = load volatile i80, i80* undef, align 2
-  %2295 = lshr i80 %2294, 24
-  %2296 = trunc i80 %2295 to i64
-  %2297 = and i64 %2296, 33554431
-  call fastcc void @transparent_crc(i64 %2297, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1029, i64 0, i64 0), i32 signext undef)
-  %2298 = load i80, i80* undef, align 2
-  %2299 = shl i80 %2298, 56
-  %2300 = ashr i80 %2299, 68
-  %2301 = shl nsw i80 %2300, 32
-  %2302 = trunc i80 %2301 to i64
-  %2303 = ashr exact i64 %2302, 32
-  call fastcc void @transparent_crc(i64 %2303, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1030, i64 0, i64 0), i32 signext undef)
-  %2304 = load i80, i80* undef, align 2
-  %2305 = lshr i80 %2304, 11
-  %2306 = trunc i80 %2305 to i64
-  %2307 = and i64 %2306, 1
-  call fastcc void @transparent_crc(i64 %2307, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1031, i64 0, i64 0), i32 signext undef)
-  %2308 = load volatile i80, i80* undef, align 2
-  %2309 = shl i80 %2308, 69
-  %2310 = ashr i80 %2309, 72
-  %2311 = shl nsw i80 %2310, 32
-  %2312 = trunc i80 %2311 to i64
-  %2313 = ashr exact i64 %2312, 32
-  call fastcc void @transparent_crc(i64 %2313, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1032, i64 0, i64 0), i32 signext undef)
-  %2314 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664 to i80*), align 8
-  %2315 = lshr i80 %2314, 57
+  %2232 = ashr exact i64 %2231, 32
+  call fastcc void @transparent_crc(i64 %2232, ptr @.str.1011, i32 signext undef)
+  %2233 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 6), align 2, !tbaa !50
+  %2234 = sext i16 %2233 to i64
+  call fastcc void @transparent_crc(i64 %2234, ptr @.str.1012, i32 signext undef)
+  %2235 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1456, i64 0, i32 7), align 2, !tbaa !51
+  %2236 = zext i16 %2235 to i64
+  call fastcc void @transparent_crc(i64 %2236, ptr @.str.1013, i32 signext undef)
+  %2237 = load volatile i80, ptr undef, align 2
+  %2238 = lshr i80 %2237, 57
+  %2239 = trunc i80 %2238 to i64
+  call fastcc void @transparent_crc(i64 %2239, ptr @.str.1014, i32 signext undef)
+  %2240 = load volatile i80, ptr undef, align 2
+  %2241 = shl i80 %2240, 23
+  %2242 = ashr i80 %2241, 64
+  %2243 = shl nsw i80 %2242, 32
+  %2244 = trunc i80 %2243 to i64
+  %2245 = ashr exact i64 %2244, 32
+  call fastcc void @transparent_crc(i64 %2245, ptr @.str.1015, i32 signext undef)
+  %2246 = load volatile i80, ptr undef, align 2
+  %2247 = shl i80 %2246, 39
+  %2248 = ashr i80 %2247, 62
+  %2249 = shl nsw i80 %2248, 32
+  %2250 = trunc i80 %2249 to i64
+  %2251 = ashr exact i64 %2250, 32
+  call fastcc void @transparent_crc(i64 %2251, ptr @.str.1016, i32 signext undef)
+  %2252 = load volatile i80, ptr undef, align 2
+  %2253 = shl i80 %2252, 57
+  %2254 = ashr i80 %2253, 58
+  %2255 = shl nsw i80 %2254, 32
+  %2256 = trunc i80 %2255 to i64
+  %2257 = ashr exact i64 %2256, 32
+  call fastcc void @transparent_crc(i64 %2257, ptr @.str.1017, i32 signext undef)
+  %2258 = getelementptr inbounds [4 x [7 x %4]], ptr bitcast (<{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>* @g_1482 to ptr), i64 0, i64 0, i64 0, i32 1
+  %2259 = load i80, ptr %2258, align 2
+  %2260 = lshr i80 %2259, 49
+  %2261 = trunc i80 %2260 to i64
+  call fastcc void @transparent_crc(i64 %2261, ptr @.str.1018, i32 signext undef)
+  %2262 = load volatile i80, ptr %2258, align 2
+  %2263 = lshr i80 %2262, 24
+  %2264 = trunc i80 %2263 to i64
+  %2265 = and i64 %2264, 33554431
+  call fastcc void @transparent_crc(i64 %2265, ptr @.str.1019, i32 signext undef)
+  %2266 = load i80, ptr %2258, align 2
+  %2267 = shl i80 %2266, 56
+  %2268 = ashr i80 %2267, 68
+  %2269 = shl nsw i80 %2268, 32
+  %2270 = trunc i80 %2269 to i64
+  %2271 = ashr exact i64 %2270, 32
+  call fastcc void @transparent_crc(i64 %2271, ptr @.str.1020, i32 signext undef)
+  %2272 = load i80, ptr %2258, align 2
+  %2273 = lshr i80 %2272, 11
+  %2274 = trunc i80 %2273 to i64
+  %2275 = and i64 %2274, 1
+  call fastcc void @transparent_crc(i64 %2275, ptr @.str.1021, i32 signext undef)
+  %2276 = load volatile i80, ptr %2258, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1028, i32 signext undef)
+  %2277 = load volatile i80, ptr undef, align 2
+  %2278 = lshr i80 %2277, 24
+  %2279 = trunc i80 %2278 to i64
+  %2280 = and i64 %2279, 33554431
+  call fastcc void @transparent_crc(i64 %2280, ptr @.str.1029, i32 signext undef)
+  %2281 = load i80, ptr undef, align 2
+  %2282 = shl i80 %2281, 56
+  %2283 = ashr i80 %2282, 68
+  %2284 = shl nsw i80 %2283, 32
+  %2285 = trunc i80 %2284 to i64
+  %2286 = ashr exact i64 %2285, 32
+  call fastcc void @transparent_crc(i64 %2286, ptr @.str.1030, i32 signext undef)
+  %2287 = load i80, ptr undef, align 2
+  %2288 = lshr i80 %2287, 11
+  %2289 = trunc i80 %2288 to i64
+  %2290 = and i64 %2289, 1
+  call fastcc void @transparent_crc(i64 %2290, ptr @.str.1031, i32 signext undef)
+  %2291 = load volatile i80, ptr undef, align 2
+  %2292 = shl i80 %2291, 69
+  %2293 = ashr i80 %2292, 72
+  %2294 = shl nsw i80 %2293, 32
+  %2295 = trunc i80 %2294 to i64
+  %2296 = ashr exact i64 %2295, 32
+  call fastcc void @transparent_crc(i64 %2296, ptr @.str.1032, i32 signext undef)
+  %2297 = load volatile i80, ptr @g_1664, align 8
+  %2298 = lshr i80 %2297, 57
+  %2299 = trunc i80 %2298 to i64
+  call fastcc void @transparent_crc(i64 %2299, ptr @.str.1033, i32 signext undef)
+  %2300 = load volatile i80, ptr @g_1664, align 8
+  %2301 = shl i80 %2300, 23
+  %2302 = ashr i80 %2301, 64
+  %2303 = shl nsw i80 %2302, 32
+  %2304 = trunc i80 %2303 to i64
+  %2305 = ashr exact i64 %2304, 32
+  call fastcc void @transparent_crc(i64 %2305, ptr @.str.1034, i32 signext undef)
+  %2306 = load volatile i80, ptr @g_1664, align 8
+  %2307 = shl i80 %2306, 39
+  %2308 = ashr i80 %2307, 62
+  %2309 = shl nsw i80 %2308, 32
+  %2310 = trunc i80 %2309 to i64
+  %2311 = ashr exact i64 %2310, 32
+  call fastcc void @transparent_crc(i64 %2311, ptr @.str.1035, i32 signext undef)
+  %2312 = load volatile i80, ptr @g_1664, align 8
+  %2313 = shl i80 %2312, 57
+  %2314 = ashr i80 %2313, 58
+  %2315 = shl nsw i80 %2314, 32
   %2316 = trunc i80 %2315 to i64
-  call fastcc void @transparent_crc(i64 %2316, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1033, i64 0, i64 0), i32 signext undef)
-  %2317 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664 to i80*), align 8
-  %2318 = shl i80 %2317, 23
-  %2319 = ashr i80 %2318, 64
-  %2320 = shl nsw i80 %2319, 32
-  %2321 = trunc i80 %2320 to i64
-  %2322 = ashr exact i64 %2321, 32
-  call fastcc void @transparent_crc(i64 %2322, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1034, i64 0, i64 0), i32 signext undef)
-  %2323 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664 to i80*), align 8
-  %2324 = shl i80 %2323, 39
-  %2325 = ashr i80 %2324, 62
-  %2326 = shl nsw i80 %2325, 32
-  %2327 = trunc i80 %2326 to i64
-  %2328 = ashr exact i64 %2327, 32
-  call fastcc void @transparent_crc(i64 %2328, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1035, i64 0, i64 0), i32 signext undef)
-  %2329 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664 to i80*), align 8
-  %2330 = shl i80 %2329, 57
-  %2331 = ashr i80 %2330, 58
-  %2332 = shl nsw i80 %2331, 32
+  %2317 = ashr exact i64 %2316, 32
+  call fastcc void @transparent_crc(i64 %2317, ptr @.str.1036, i32 signext undef)
+  %2318 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_1664, i64 0, i32 1), align 2
+  %2319 = lshr i80 %2318, 49
+  %2320 = trunc i80 %2319 to i64
+  call fastcc void @transparent_crc(i64 %2320, ptr @.str.1037, i32 signext undef)
+  %2321 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_1664, i64 0, i32 1), align 2
+  %2322 = lshr i80 %2321, 24
+  %2323 = trunc i80 %2322 to i64
+  %2324 = and i64 %2323, 33554431
+  call fastcc void @transparent_crc(i64 %2324, ptr @.str.1038, i32 signext undef)
+  %2325 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_1664, i64 0, i32 1), align 2
+  %2326 = shl i80 %2325, 56
+  %2327 = ashr i80 %2326, 68
+  %2328 = shl nsw i80 %2327, 32
+  %2329 = trunc i80 %2328 to i64
+  %2330 = ashr exact i64 %2329, 32
+  call fastcc void @transparent_crc(i64 %2330, ptr @.str.1039, i32 signext undef)
+  %2331 = load i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_1664, i64 0, i32 1), align 2
+  %2332 = lshr i80 %2331, 11
   %2333 = trunc i80 %2332 to i64
-  %2334 = ashr exact i64 %2333, 32
-  call fastcc void @transparent_crc(i64 %2334, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1036, i64 0, i64 0), i32 signext undef)
-  %2335 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664, i64 0, i32 1) to i80*), align 2
-  %2336 = lshr i80 %2335, 49
-  %2337 = trunc i80 %2336 to i64
-  call fastcc void @transparent_crc(i64 %2337, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1037, i64 0, i64 0), i32 signext undef)
-  %2338 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664, i64 0, i32 1) to i80*), align 2
-  %2339 = lshr i80 %2338, 24
-  %2340 = trunc i80 %2339 to i64
-  %2341 = and i64 %2340, 33554431
-  call fastcc void @transparent_crc(i64 %2341, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1038, i64 0, i64 0), i32 signext undef)
-  %2342 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664, i64 0, i32 1) to i80*), align 2
-  %2343 = shl i80 %2342, 56
-  %2344 = ashr i80 %2343, 68
-  %2345 = shl nsw i80 %2344, 32
-  %2346 = trunc i80 %2345 to i64
-  %2347 = ashr exact i64 %2346, 32
-  call fastcc void @transparent_crc(i64 %2347, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1039, i64 0, i64 0), i32 signext undef)
-  %2348 = load i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664, i64 0, i32 1) to i80*), align 2
-  %2349 = lshr i80 %2348, 11
-  %2350 = trunc i80 %2349 to i64
-  %2351 = and i64 %2350, 1
-  call fastcc void @transparent_crc(i64 %2351, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1040, i64 0, i64 0), i32 signext undef)
-  %2352 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1664, i64 0, i32 1) to i80*), align 2
-  %2353 = shl i80 %2352, 69
-  %2354 = ashr i80 %2353, 72
-  %2355 = shl nsw i80 %2354, 32
-  %2356 = trunc i80 %2355 to i64
-  %2357 = ashr exact i64 %2356, 32
-  call fastcc void @transparent_crc(i64 %2357, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1041, i64 0, i64 0), i32 signext undef)
-  %2358 = load volatile i32, i32* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 0), align 8, !tbaa !53
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1042, i64 0, i64 0), i32 signext undef)
-  %2359 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 1, i32 0) to i80*), align 4
-  %2360 = lshr i80 %2359, 57
+  %2334 = and i64 %2333, 1
+  call fastcc void @transparent_crc(i64 %2334, ptr @.str.1040, i32 signext undef)
+  %2335 = load volatile i80, ptr getelementptr inbounds ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, ptr @g_1664, i64 0, i32 1), align 2
+  %2336 = shl i80 %2335, 69
+  %2337 = ashr i80 %2336, 72
+  %2338 = shl nsw i80 %2337, 32
+  %2339 = trunc i80 %2338 to i64
+  %2340 = ashr exact i64 %2339, 32
+  call fastcc void @transparent_crc(i64 %2340, ptr @.str.1041, i32 signext undef)
+  %2341 = load volatile i32, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 0), align 8, !tbaa !53
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1042, i32 signext undef)
+  %2342 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 1, i32 0), align 4
+  %2343 = lshr i80 %2342, 57
+  %2344 = trunc i80 %2343 to i64
+  call fastcc void @transparent_crc(i64 %2344, ptr @.str.1043, i32 signext undef)
+  %2345 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 1, i32 0), align 4
+  %2346 = shl i80 %2345, 23
+  %2347 = ashr i80 %2346, 64
+  %2348 = shl nsw i80 %2347, 32
+  %2349 = trunc i80 %2348 to i64
+  %2350 = ashr exact i64 %2349, 32
+  call fastcc void @transparent_crc(i64 %2350, ptr @.str.1044, i32 signext undef)
+  %2351 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 1, i32 0), align 4
+  %2352 = shl i80 %2351, 39
+  %2353 = ashr i80 %2352, 62
+  %2354 = shl nsw i80 %2353, 32
+  %2355 = trunc i80 %2354 to i64
+  %2356 = ashr exact i64 %2355, 32
+  call fastcc void @transparent_crc(i64 %2356, ptr @.str.1045, i32 signext undef)
+  %2357 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 1, i32 0), align 4
+  %2358 = shl i80 %2357, 57
+  %2359 = ashr i80 %2358, 58
+  %2360 = shl nsw i80 %2359, 32
   %2361 = trunc i80 %2360 to i64
-  call fastcc void @transparent_crc(i64 %2361, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1043, i64 0, i64 0), i32 signext undef)
-  %2362 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 1, i32 0) to i80*), align 4
-  %2363 = shl i80 %2362, 23
-  %2364 = ashr i80 %2363, 64
-  %2365 = shl nsw i80 %2364, 32
-  %2366 = trunc i80 %2365 to i64
-  %2367 = ashr exact i64 %2366, 32
-  call fastcc void @transparent_crc(i64 %2367, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1044, i64 0, i64 0), i32 signext undef)
-  %2368 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 1, i32 0) to i80*), align 4
-  %2369 = shl i80 %2368, 39
-  %2370 = ashr i80 %2369, 62
+  %2362 = ashr exact i64 %2361, 32
+  call fastcc void @transparent_crc(i64 %2362, ptr @.str.1046, i32 signext undef)
+  %2363 = load i16, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 2), align 2, !tbaa !35
+  %2364 = zext i16 %2363 to i64
+  call fastcc void @transparent_crc(i64 %2364, ptr @.str.1047, i32 signext undef)
+  %2365 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 0, i32 0), align 8
+  %2366 = lshr i80 %2365, 57
+  %2367 = trunc i80 %2366 to i64
+  call fastcc void @transparent_crc(i64 %2367, ptr @.str.1048, i32 signext undef)
+  %2368 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 0, i32 0), align 8
+  %2369 = shl i80 %2368, 23
+  %2370 = ashr i80 %2369, 64
   %2371 = shl nsw i80 %2370, 32
   %2372 = trunc i80 %2371 to i64
   %2373 = ashr exact i64 %2372, 32
-  call fastcc void @transparent_crc(i64 %2373, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1045, i64 0, i64 0), i32 signext undef)
-  %2374 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 1, i32 0) to i80*), align 4
-  %2375 = shl i80 %2374, 57
-  %2376 = ashr i80 %2375, 58
+  call fastcc void @transparent_crc(i64 %2373, ptr @.str.1049, i32 signext undef)
+  %2374 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 0, i32 0), align 8
+  %2375 = shl i80 %2374, 39
+  %2376 = ashr i80 %2375, 62
   %2377 = shl nsw i80 %2376, 32
   %2378 = trunc i80 %2377 to i64
   %2379 = ashr exact i64 %2378, 32
-  call fastcc void @transparent_crc(i64 %2379, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1046, i64 0, i64 0), i32 signext undef)
-  %2380 = load i16, i16* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 2), align 2, !tbaa !35
-  %2381 = zext i16 %2380 to i64
-  call fastcc void @transparent_crc(i64 %2381, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1047, i64 0, i64 0), i32 signext undef)
-  %2382 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2383 = lshr i80 %2382, 57
+  call fastcc void @transparent_crc(i64 %2379, ptr @.str.1050, i32 signext undef)
+  %2380 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 0, i32 0), align 8
+  %2381 = shl i80 %2380, 57
+  %2382 = ashr i80 %2381, 58
+  %2383 = shl nsw i80 %2382, 32
   %2384 = trunc i80 %2383 to i64
-  call fastcc void @transparent_crc(i64 %2384, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1048, i64 0, i64 0), i32 signext undef)
-  %2385 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2386 = shl i80 %2385, 23
-  %2387 = ashr i80 %2386, 64
-  %2388 = shl nsw i80 %2387, 32
-  %2389 = trunc i80 %2388 to i64
-  %2390 = ashr exact i64 %2389, 32
-  call fastcc void @transparent_crc(i64 %2390, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1049, i64 0, i64 0), i32 signext undef)
-  %2391 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2392 = shl i80 %2391, 39
-  %2393 = ashr i80 %2392, 62
-  %2394 = shl nsw i80 %2393, 32
-  %2395 = trunc i80 %2394 to i64
-  %2396 = ashr exact i64 %2395, 32
-  call fastcc void @transparent_crc(i64 %2396, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1050, i64 0, i64 0), i32 signext undef)
-  %2397 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2398 = shl i80 %2397, 57
-  %2399 = ashr i80 %2398, 58
-  %2400 = shl nsw i80 %2399, 32
+  %2385 = ashr exact i64 %2384, 32
+  call fastcc void @transparent_crc(i64 %2385, ptr @.str.1051, i32 signext undef)
+  %2386 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 1), align 2
+  %2387 = lshr i80 %2386, 49
+  %2388 = trunc i80 %2387 to i64
+  call fastcc void @transparent_crc(i64 %2388, ptr @.str.1052, i32 signext undef)
+  %2389 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 1), align 2
+  %2390 = lshr i80 %2389, 24
+  %2391 = trunc i80 %2390 to i64
+  %2392 = and i64 %2391, 33554431
+  call fastcc void @transparent_crc(i64 %2392, ptr @.str.1053, i32 signext undef)
+  %2393 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 1), align 2
+  %2394 = shl i80 %2393, 56
+  %2395 = ashr i80 %2394, 68
+  %2396 = shl nsw i80 %2395, 32
+  %2397 = trunc i80 %2396 to i64
+  %2398 = ashr exact i64 %2397, 32
+  call fastcc void @transparent_crc(i64 %2398, ptr @.str.1054, i32 signext undef)
+  %2399 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 1), align 2
+  %2400 = lshr i80 %2399, 11
   %2401 = trunc i80 %2400 to i64
-  %2402 = ashr exact i64 %2401, 32
-  call fastcc void @transparent_crc(i64 %2402, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1051, i64 0, i64 0), i32 signext undef)
-  %2403 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 1) to i80*), align 2
-  %2404 = lshr i80 %2403, 49
-  %2405 = trunc i80 %2404 to i64
-  call fastcc void @transparent_crc(i64 %2405, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1052, i64 0, i64 0), i32 signext undef)
-  %2406 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 1) to i80*), align 2
-  %2407 = lshr i80 %2406, 24
-  %2408 = trunc i80 %2407 to i64
-  %2409 = and i64 %2408, 33554431
-  call fastcc void @transparent_crc(i64 %2409, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1053, i64 0, i64 0), i32 signext undef)
-  %2410 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 1) to i80*), align 2
-  %2411 = shl i80 %2410, 56
-  %2412 = ashr i80 %2411, 68
-  %2413 = shl nsw i80 %2412, 32
-  %2414 = trunc i80 %2413 to i64
-  %2415 = ashr exact i64 %2414, 32
-  call fastcc void @transparent_crc(i64 %2415, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1054, i64 0, i64 0), i32 signext undef)
-  %2416 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 1) to i80*), align 2
-  %2417 = lshr i80 %2416, 11
-  %2418 = trunc i80 %2417 to i64
-  %2419 = and i64 %2418, 1
-  call fastcc void @transparent_crc(i64 %2419, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1055, i64 0, i64 0), i32 signext undef)
-  %2420 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 3, i32 1) to i80*), align 2
-  %2421 = shl i80 %2420, 69
-  %2422 = ashr i80 %2421, 72
-  %2423 = shl nsw i80 %2422, 32
-  %2424 = trunc i80 %2423 to i64
-  %2425 = ashr exact i64 %2424, 32
-  call fastcc void @transparent_crc(i64 %2425, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1056, i64 0, i64 0), i32 signext undef)
-  %2426 = load volatile i8, i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 4), align 4, !tbaa !38
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1057, i64 0, i64 0), i32 signext undef)
-  %2427 = load volatile i32, i32* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 5), align 8, !tbaa !39
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1058, i64 0, i64 0), i32 signext undef)
-  %2428 = load volatile i8, i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 6, i32 0), align 8, !tbaa !40
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1059, i64 0, i64 0), i32 signext undef)
-  %2429 = load volatile i8, i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 6, i32 1), align 1, !tbaa !41
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1060, i64 0, i64 0), i32 signext undef)
-  %2430 = load volatile i16, i16* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 6, i32 2), align 2, !tbaa !42
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1061, i64 0, i64 0), i32 signext undef)
-  %2431 = load volatile i64, i64* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 6, i32 3), align 8, !tbaa !43
-  call fastcc void @transparent_crc(i64 %2431, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1062, i64 0, i64 0), i32 signext undef)
-  %2432 = load volatile i32, i32* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 6, i32 4), align 8, !tbaa !44
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1063, i64 0, i64 0), i32 signext undef)
-  %2433 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 7, i32 0) to i80*), align 8
-  %2434 = ashr i80 %2433, 73
-  %2435 = shl nsw i80 %2434, 32
-  %2436 = trunc i80 %2435 to i64
-  %2437 = ashr exact i64 %2436, 32
-  call fastcc void @transparent_crc(i64 %2437, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1064, i64 0, i64 0), i32 signext undef)
-  %2438 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 7, i32 0) to i80*), align 8
-  %2439 = lshr i80 %2438, 61
-  %2440 = trunc i80 %2439 to i64
-  %2441 = and i64 %2440, 4095
-  call fastcc void @transparent_crc(i64 %2441, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1065, i64 0, i64 0), i32 signext undef)
-  %2442 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 7, i32 0) to i80*), align 8
-  %2443 = shl i80 %2442, 19
-  %2444 = ashr i80 %2443, 59
-  %2445 = shl nsw i80 %2444, 32
-  %2446 = trunc i80 %2445 to i64
-  %2447 = ashr exact i64 %2446, 32
-  call fastcc void @transparent_crc(i64 %2447, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1066, i64 0, i64 0), i32 signext undef)
-  %2448 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 7, i32 0) to i80*), align 8
-  %2449 = shl i80 %2448, 40
-  %2450 = ashr i80 %2449, 62
-  %2451 = shl nsw i80 %2450, 32
-  %2452 = trunc i80 %2451 to i64
-  %2453 = ashr exact i64 %2452, 32
-  call fastcc void @transparent_crc(i64 %2453, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1067, i64 0, i64 0), i32 signext undef)
-  %2454 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1669, i64 0, i32 7, i32 0) to i80*), align 8
-  %2455 = lshr i80 %2454, 4
-  %2456 = trunc i80 %2455 to i64
-  %2457 = and i64 %2456, 262143
-  call fastcc void @transparent_crc(i64 %2457, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1068, i64 0, i64 0), i32 signext undef)
-  %2458 = load volatile i32, i32* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 0), align 8, !tbaa !53
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1069, i64 0, i64 0), i32 signext undef)
-  %2459 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 1, i32 0) to i80*), align 4
-  %2460 = lshr i80 %2459, 57
-  %2461 = trunc i80 %2460 to i64
-  call fastcc void @transparent_crc(i64 %2461, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1070, i64 0, i64 0), i32 signext undef)
-  %2462 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 1, i32 0) to i80*), align 4
-  %2463 = shl i80 %2462, 23
-  %2464 = ashr i80 %2463, 64
-  %2465 = shl nsw i80 %2464, 32
-  %2466 = trunc i80 %2465 to i64
-  %2467 = ashr exact i64 %2466, 32
-  call fastcc void @transparent_crc(i64 %2467, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1071, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1074, i64 0, i64 0), i32 signext undef)
-  %2468 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2469 = lshr i80 %2468, 57
+  %2402 = and i64 %2401, 1
+  call fastcc void @transparent_crc(i64 %2402, ptr @.str.1055, i32 signext undef)
+  %2403 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 3, i32 1), align 2
+  %2404 = shl i80 %2403, 69
+  %2405 = ashr i80 %2404, 72
+  %2406 = shl nsw i80 %2405, 32
+  %2407 = trunc i80 %2406 to i64
+  %2408 = ashr exact i64 %2407, 32
+  call fastcc void @transparent_crc(i64 %2408, ptr @.str.1056, i32 signext undef)
+  %2409 = load volatile i8, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 4), align 4, !tbaa !38
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1057, i32 signext undef)
+  %2410 = load volatile i32, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 5), align 8, !tbaa !39
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1058, i32 signext undef)
+  %2411 = load volatile i8, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 6, i32 0), align 8, !tbaa !40
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1059, i32 signext undef)
+  %2412 = load volatile i8, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 6, i32 1), align 1, !tbaa !41
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1060, i32 signext undef)
+  %2413 = load volatile i16, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 6, i32 2), align 2, !tbaa !42
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1061, i32 signext undef)
+  %2414 = load volatile i64, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 6, i32 3), align 8, !tbaa !43
+  call fastcc void @transparent_crc(i64 %2414, ptr @.str.1062, i32 signext undef)
+  %2415 = load volatile i32, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 6, i32 4), align 8, !tbaa !44
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1063, i32 signext undef)
+  %2416 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 7, i32 0), align 8
+  %2417 = ashr i80 %2416, 73
+  %2418 = shl nsw i80 %2417, 32
+  %2419 = trunc i80 %2418 to i64
+  %2420 = ashr exact i64 %2419, 32
+  call fastcc void @transparent_crc(i64 %2420, ptr @.str.1064, i32 signext undef)
+  %2421 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 7, i32 0), align 8
+  %2422 = lshr i80 %2421, 61
+  %2423 = trunc i80 %2422 to i64
+  %2424 = and i64 %2423, 4095
+  call fastcc void @transparent_crc(i64 %2424, ptr @.str.1065, i32 signext undef)
+  %2425 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 7, i32 0), align 8
+  %2426 = shl i80 %2425, 19
+  %2427 = ashr i80 %2426, 59
+  %2428 = shl nsw i80 %2427, 32
+  %2429 = trunc i80 %2428 to i64
+  %2430 = ashr exact i64 %2429, 32
+  call fastcc void @transparent_crc(i64 %2430, ptr @.str.1066, i32 signext undef)
+  %2431 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 7, i32 0), align 8
+  %2432 = shl i80 %2431, 40
+  %2433 = ashr i80 %2432, 62
+  %2434 = shl nsw i80 %2433, 32
+  %2435 = trunc i80 %2434 to i64
+  %2436 = ashr exact i64 %2435, 32
+  call fastcc void @transparent_crc(i64 %2436, ptr @.str.1067, i32 signext undef)
+  %2437 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1669, i64 0, i32 7, i32 0), align 8
+  %2438 = lshr i80 %2437, 4
+  %2439 = trunc i80 %2438 to i64
+  %2440 = and i64 %2439, 262143
+  call fastcc void @transparent_crc(i64 %2440, ptr @.str.1068, i32 signext undef)
+  %2441 = load volatile i32, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 0), align 8, !tbaa !53
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1069, i32 signext undef)
+  %2442 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 1, i32 0), align 4
+  %2443 = lshr i80 %2442, 57
+  %2444 = trunc i80 %2443 to i64
+  call fastcc void @transparent_crc(i64 %2444, ptr @.str.1070, i32 signext undef)
+  %2445 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 1, i32 0), align 4
+  %2446 = shl i80 %2445, 23
+  %2447 = ashr i80 %2446, 64
+  %2448 = shl nsw i80 %2447, 32
+  %2449 = trunc i80 %2448 to i64
+  %2450 = ashr exact i64 %2449, 32
+  call fastcc void @transparent_crc(i64 %2450, ptr @.str.1071, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1074, i32 signext undef)
+  %2451 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 3, i32 0, i32 0), align 8
+  %2452 = lshr i80 %2451, 57
+  %2453 = trunc i80 %2452 to i64
+  call fastcc void @transparent_crc(i64 %2453, ptr @.str.1075, i32 signext undef)
+  %2454 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 3, i32 0, i32 0), align 8
+  %2455 = shl i80 %2454, 23
+  %2456 = ashr i80 %2455, 64
+  %2457 = shl nsw i80 %2456, 32
+  %2458 = trunc i80 %2457 to i64
+  %2459 = ashr exact i64 %2458, 32
+  call fastcc void @transparent_crc(i64 %2459, ptr @.str.1076, i32 signext undef)
+  %2460 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 3, i32 0, i32 0), align 8
+  %2461 = shl i80 %2460, 39
+  %2462 = ashr i80 %2461, 62
+  %2463 = shl nsw i80 %2462, 32
+  %2464 = trunc i80 %2463 to i64
+  %2465 = ashr exact i64 %2464, 32
+  call fastcc void @transparent_crc(i64 %2465, ptr @.str.1077, i32 signext undef)
+  %2466 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 3, i32 0, i32 0), align 8
+  %2467 = shl i80 %2466, 57
+  %2468 = ashr i80 %2467, 58
+  %2469 = shl nsw i80 %2468, 32
   %2470 = trunc i80 %2469 to i64
-  call fastcc void @transparent_crc(i64 %2470, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1075, i64 0, i64 0), i32 signext undef)
-  %2471 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2472 = shl i80 %2471, 23
-  %2473 = ashr i80 %2472, 64
-  %2474 = shl nsw i80 %2473, 32
-  %2475 = trunc i80 %2474 to i64
-  %2476 = ashr exact i64 %2475, 32
-  call fastcc void @transparent_crc(i64 %2476, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1076, i64 0, i64 0), i32 signext undef)
-  %2477 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2478 = shl i80 %2477, 39
-  %2479 = ashr i80 %2478, 62
-  %2480 = shl nsw i80 %2479, 32
-  %2481 = trunc i80 %2480 to i64
-  %2482 = ashr exact i64 %2481, 32
-  call fastcc void @transparent_crc(i64 %2482, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1077, i64 0, i64 0), i32 signext undef)
-  %2483 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 3, i32 0, i32 0) to i80*), align 8
-  %2484 = shl i80 %2483, 57
-  %2485 = ashr i80 %2484, 58
-  %2486 = shl nsw i80 %2485, 32
-  %2487 = trunc i80 %2486 to i64
-  %2488 = ashr exact i64 %2487, 32
-  call fastcc void @transparent_crc(i64 %2488, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1078, i64 0, i64 0), i32 signext undef)
-  %2489 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 3, i32 1) to i80*), align 2
-  %2490 = lshr i80 %2489, 49
-  %2491 = trunc i80 %2490 to i64
-  call fastcc void @transparent_crc(i64 %2491, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1079, i64 0, i64 0), i32 signext undef)
-  %2492 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_1671, i64 0, i32 3, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1135, i64 0, i64 0), i32 signext undef)
-  %2493 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1783, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %2494 = shl i80 %2493, 39
-  %2495 = ashr i80 %2494, 62
-  %2496 = shl nsw i80 %2495, 32
-  %2497 = trunc i80 %2496 to i64
-  %2498 = ashr exact i64 %2497, 32
-  call fastcc void @transparent_crc(i64 %2498, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1136, i64 0, i64 0), i32 signext undef)
-  %2499 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1783, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %2500 = shl i80 %2499, 57
-  %2501 = ashr i80 %2500, 58
-  %2502 = shl nsw i80 %2501, 32
-  %2503 = trunc i80 %2502 to i64
-  %2504 = ashr exact i64 %2503, 32
-  call fastcc void @transparent_crc(i64 %2504, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1137, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 4294, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1138, i64 0, i64 0), i32 signext undef)
-  %2505 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1783, i64 0, i32 5, i32 1) to i80*), align 2
-  %2506 = lshr i80 %2505, 24
-  %2507 = trunc i80 %2506 to i64
-  %2508 = and i64 %2507, 33554431
-  call fastcc void @transparent_crc(i64 %2508, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1139, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 -17, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1140, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1141, i64 0, i64 0), i32 signext undef)
-  %2509 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_1783, i64 0, i32 5, i32 1) to i80*), align 2
-  %2510 = shl i80 %2509, 69
-  %2511 = ashr i80 %2510, 72
-  %2512 = shl nsw i80 %2511, 32
-  %2513 = trunc i80 %2512 to i64
+  %2471 = ashr exact i64 %2470, 32
+  call fastcc void @transparent_crc(i64 %2471, ptr @.str.1078, i32 signext undef)
+  %2472 = load i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 3, i32 1), align 2
+  %2473 = lshr i80 %2472, 49
+  %2474 = trunc i80 %2473 to i64
+  call fastcc void @transparent_crc(i64 %2474, ptr @.str.1079, i32 signext undef)
+  %2475 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_1671, i64 0, i32 3, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1135, i32 signext undef)
+  %2476 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1783, i64 0, i32 5, i32 0, i32 0), align 2
+  %2477 = shl i80 %2476, 39
+  %2478 = ashr i80 %2477, 62
+  %2479 = shl nsw i80 %2478, 32
+  %2480 = trunc i80 %2479 to i64
+  %2481 = ashr exact i64 %2480, 32
+  call fastcc void @transparent_crc(i64 %2481, ptr @.str.1136, i32 signext undef)
+  %2482 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1783, i64 0, i32 5, i32 0, i32 0), align 2
+  %2483 = shl i80 %2482, 57
+  %2484 = ashr i80 %2483, 58
+  %2485 = shl nsw i80 %2484, 32
+  %2486 = trunc i80 %2485 to i64
+  %2487 = ashr exact i64 %2486, 32
+  call fastcc void @transparent_crc(i64 %2487, ptr @.str.1137, i32 signext undef)
+  call fastcc void @transparent_crc(i64 4294, ptr @.str.1138, i32 signext undef)
+  %2488 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1783, i64 0, i32 5, i32 1), align 2
+  %2489 = lshr i80 %2488, 24
+  %2490 = trunc i80 %2489 to i64
+  %2491 = and i64 %2490, 33554431
+  call fastcc void @transparent_crc(i64 %2491, ptr @.str.1139, i32 signext undef)
+  call fastcc void @transparent_crc(i64 -17, ptr @.str.1140, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1141, i32 signext undef)
+  %2492 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_1783, i64 0, i32 5, i32 1), align 2
+  %2493 = shl i80 %2492, 69
+  %2494 = ashr i80 %2493, 72
+  %2495 = shl nsw i80 %2494, 32
+  %2496 = trunc i80 %2495 to i64
+  %2497 = ashr exact i64 %2496, 32
+  call fastcc void @transparent_crc(i64 %2497, ptr @.str.1142, i32 signext undef)
+  call fastcc void @transparent_crc(i64 -8423, ptr @.str.1143, i32 signext undef)
+  call fastcc void @transparent_crc(i64 46435, ptr @.str.1144, i32 signext undef)
+  %2498 = load i16, ptr undef, align 2, !tbaa !24
+  %2499 = sext i16 %2498 to i64
+  call fastcc void @transparent_crc(i64 %2499, ptr @.str.1145, i32 signext undef)
+  %2500 = load i8, ptr undef, align 2, !tbaa !52
+  %2501 = sext i8 %2500 to i64
+  call fastcc void @transparent_crc(i64 %2501, ptr @.str.1146, i32 signext undef)
+  %2502 = load volatile i120, ptr undef, align 1
+  %2503 = lshr i120 %2502, 107
+  %2504 = trunc i120 %2503 to i64
+  call fastcc void @transparent_crc(i64 %2504, ptr @.str.1147, i32 signext undef)
+  %2505 = load volatile i120, ptr undef, align 1
+  %2506 = lshr i120 %2505, 78
+  %2507 = trunc i120 %2506 to i64
+  %2508 = and i64 %2507, 536870911
+  call fastcc void @transparent_crc(i64 %2508, ptr @.str.1148, i32 signext undef)
+  %2509 = load volatile i120, ptr undef, align 1
+  %2510 = shl i120 %2509, 42
+  %2511 = ashr i120 %2510, 104
+  %2512 = shl nsw i120 %2511, 32
+  %2513 = trunc i120 %2512 to i64
   %2514 = ashr exact i64 %2513, 32
-  call fastcc void @transparent_crc(i64 %2514, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1142, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 -8423, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1143, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 46435, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1144, i64 0, i64 0), i32 signext undef)
-  %2515 = load i16, i16* undef, align 2, !tbaa !24
-  %2516 = sext i16 %2515 to i64
-  call fastcc void @transparent_crc(i64 %2516, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1145, i64 0, i64 0), i32 signext undef)
-  %2517 = load i8, i8* undef, align 2, !tbaa !52
-  %2518 = sext i8 %2517 to i64
-  call fastcc void @transparent_crc(i64 %2518, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1146, i64 0, i64 0), i32 signext undef)
-  %2519 = load volatile i120, i120* undef, align 1
-  %2520 = lshr i120 %2519, 107
-  %2521 = trunc i120 %2520 to i64
-  call fastcc void @transparent_crc(i64 %2521, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1147, i64 0, i64 0), i32 signext undef)
-  %2522 = load volatile i120, i120* undef, align 1
-  %2523 = lshr i120 %2522, 78
-  %2524 = trunc i120 %2523 to i64
-  %2525 = and i64 %2524, 536870911
-  call fastcc void @transparent_crc(i64 %2525, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1148, i64 0, i64 0), i32 signext undef)
-  %2526 = load volatile i120, i120* undef, align 1
-  %2527 = shl i120 %2526, 42
-  %2528 = ashr i120 %2527, 104
-  %2529 = shl nsw i120 %2528, 32
-  %2530 = trunc i120 %2529 to i64
-  %2531 = ashr exact i64 %2530, 32
-  call fastcc void @transparent_crc(i64 %2531, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1149, i64 0, i64 0), i32 signext undef)
-  %2532 = load volatile i120, i120* undef, align 1
-  %2533 = shl i120 %2532, 58
-  %2534 = ashr i120 %2533, 105
-  %2535 = shl nsw i120 %2534, 32
-  %2536 = trunc i120 %2535 to i64
-  %2537 = ashr exact i64 %2536, 32
-  call fastcc void @transparent_crc(i64 %2537, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1150, i64 0, i64 0), i32 signext undef)
-  %2538 = load volatile i120, i120* undef, align 1
-  %2539 = lshr i120 %2538, 41
-  %2540 = trunc i120 %2539 to i64
-  %2541 = and i64 %2540, 63
-  call fastcc void @transparent_crc(i64 %2541, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1151, i64 0, i64 0), i32 signext undef)
-  %2542 = load volatile i120, i120* undef, align 1
-  %2543 = lshr i120 %2542, 19
-  %2544 = trunc i120 %2543 to i64
-  %2545 = and i64 %2544, 4194303
-  call fastcc void @transparent_crc(i64 %2545, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1152, i64 0, i64 0), i32 signext undef)
-  %2546 = load volatile i120, i120* undef, align 1
-  %2547 = shl i120 %2546, 101
-  %2548 = ashr exact i120 %2547, 69
-  %2549 = trunc i120 %2548 to i64
-  %2550 = ashr exact i64 %2549, 32
-  call fastcc void @transparent_crc(i64 %2550, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1153, i64 0, i64 0), i32 signext undef)
-  %2551 = load i8, i8* undef, align 2, !tbaa !45
-  %2552 = zext i8 %2551 to i64
-  call fastcc void @transparent_crc(i64 %2552, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1154, i64 0, i64 0), i32 signext undef)
-  %2553 = load i8, i8* undef, align 1, !tbaa !46
-  %2554 = sext i8 %2553 to i64
-  call fastcc void @transparent_crc(i64 %2554, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1155, i64 0, i64 0), i32 signext undef)
-  %2555 = load i16, i16* undef, align 2, !tbaa !47
-  %2556 = sext i16 %2555 to i64
-  call fastcc void @transparent_crc(i64 %2556, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1156, i64 0, i64 0), i32 signext undef)
-  %2557 = load i64, i64* undef, align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %2557, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1157, i64 0, i64 0), i32 signext undef)
-  %2558 = load i32, i32* undef, align 2, !tbaa !49
-  %2559 = sext i32 %2558 to i64
-  call fastcc void @transparent_crc(i64 %2559, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1158, i64 0, i64 0), i32 signext undef)
-  %2560 = getelementptr inbounds [10 x [6 x %5]], [10 x [6 x %5]]* bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_1786 to [10 x [6 x %5]]*), i64 0, i64 0, i64 0, i32 4, i32 0
-  %2561 = load volatile i128, i128* %2560, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1164, i64 0, i64 0), i32 signext undef)
-  %2562 = load volatile i80, i80* undef, align 2
-  %2563 = lshr i80 %2562, 57
+  call fastcc void @transparent_crc(i64 %2514, ptr @.str.1149, i32 signext undef)
+  %2515 = load volatile i120, ptr undef, align 1
+  %2516 = shl i120 %2515, 58
+  %2517 = ashr i120 %2516, 105
+  %2518 = shl nsw i120 %2517, 32
+  %2519 = trunc i120 %2518 to i64
+  %2520 = ashr exact i64 %2519, 32
+  call fastcc void @transparent_crc(i64 %2520, ptr @.str.1150, i32 signext undef)
+  %2521 = load volatile i120, ptr undef, align 1
+  %2522 = lshr i120 %2521, 41
+  %2523 = trunc i120 %2522 to i64
+  %2524 = and i64 %2523, 63
+  call fastcc void @transparent_crc(i64 %2524, ptr @.str.1151, i32 signext undef)
+  %2525 = load volatile i120, ptr undef, align 1
+  %2526 = lshr i120 %2525, 19
+  %2527 = trunc i120 %2526 to i64
+  %2528 = and i64 %2527, 4194303
+  call fastcc void @transparent_crc(i64 %2528, ptr @.str.1152, i32 signext undef)
+  %2529 = load volatile i120, ptr undef, align 1
+  %2530 = shl i120 %2529, 101
+  %2531 = ashr exact i120 %2530, 69
+  %2532 = trunc i120 %2531 to i64
+  %2533 = ashr exact i64 %2532, 32
+  call fastcc void @transparent_crc(i64 %2533, ptr @.str.1153, i32 signext undef)
+  %2534 = load i8, ptr undef, align 2, !tbaa !45
+  %2535 = zext i8 %2534 to i64
+  call fastcc void @transparent_crc(i64 %2535, ptr @.str.1154, i32 signext undef)
+  %2536 = load i8, ptr undef, align 1, !tbaa !46
+  %2537 = sext i8 %2536 to i64
+  call fastcc void @transparent_crc(i64 %2537, ptr @.str.1155, i32 signext undef)
+  %2538 = load i16, ptr undef, align 2, !tbaa !47
+  %2539 = sext i16 %2538 to i64
+  call fastcc void @transparent_crc(i64 %2539, ptr @.str.1156, i32 signext undef)
+  %2540 = load i64, ptr undef, align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %2540, ptr @.str.1157, i32 signext undef)
+  %2541 = load i32, ptr undef, align 2, !tbaa !49
+  %2542 = sext i32 %2541 to i64
+  call fastcc void @transparent_crc(i64 %2542, ptr @.str.1158, i32 signext undef)
+  %2543 = getelementptr inbounds [10 x [6 x %5]], ptr bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_1786 to ptr), i64 0, i64 0, i64 0, i32 4, i32 0
+  %2544 = load volatile i128, ptr %2543, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1164, i32 signext undef)
+  %2545 = load volatile i80, ptr undef, align 2
+  %2546 = lshr i80 %2545, 57
+  %2547 = trunc i80 %2546 to i64
+  call fastcc void @transparent_crc(i64 %2547, ptr @.str.1165, i32 signext undef)
+  %2548 = load volatile i80, ptr undef, align 2
+  %2549 = shl i80 %2548, 23
+  %2550 = ashr i80 %2549, 64
+  %2551 = shl nsw i80 %2550, 32
+  %2552 = trunc i80 %2551 to i64
+  %2553 = ashr exact i64 %2552, 32
+  call fastcc void @transparent_crc(i64 %2553, ptr @.str.1166, i32 signext undef)
+  %2554 = load volatile i80, ptr undef, align 2
+  %2555 = shl i80 %2554, 39
+  %2556 = ashr i80 %2555, 62
+  %2557 = shl nsw i80 %2556, 32
+  %2558 = trunc i80 %2557 to i64
+  %2559 = ashr exact i64 %2558, 32
+  call fastcc void @transparent_crc(i64 %2559, ptr @.str.1167, i32 signext undef)
+  %2560 = load volatile i80, ptr undef, align 2
+  %2561 = shl i80 %2560, 57
+  %2562 = ashr i80 %2561, 58
+  %2563 = shl nsw i80 %2562, 32
   %2564 = trunc i80 %2563 to i64
-  call fastcc void @transparent_crc(i64 %2564, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1165, i64 0, i64 0), i32 signext undef)
-  %2565 = load volatile i80, i80* undef, align 2
-  %2566 = shl i80 %2565, 23
-  %2567 = ashr i80 %2566, 64
-  %2568 = shl nsw i80 %2567, 32
-  %2569 = trunc i80 %2568 to i64
-  %2570 = ashr exact i64 %2569, 32
-  call fastcc void @transparent_crc(i64 %2570, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1166, i64 0, i64 0), i32 signext undef)
-  %2571 = load volatile i80, i80* undef, align 2
-  %2572 = shl i80 %2571, 39
-  %2573 = ashr i80 %2572, 62
-  %2574 = shl nsw i80 %2573, 32
-  %2575 = trunc i80 %2574 to i64
-  %2576 = ashr exact i64 %2575, 32
-  call fastcc void @transparent_crc(i64 %2576, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1167, i64 0, i64 0), i32 signext undef)
-  %2577 = load volatile i80, i80* undef, align 2
-  %2578 = shl i80 %2577, 57
-  %2579 = ashr i80 %2578, 58
-  %2580 = shl nsw i80 %2579, 32
-  %2581 = trunc i80 %2580 to i64
-  %2582 = ashr exact i64 %2581, 32
-  call fastcc void @transparent_crc(i64 %2582, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1168, i64 0, i64 0), i32 signext undef)
-  %2583 = load i80, i80* undef, align 2
-  %2584 = lshr i80 %2583, 49
-  %2585 = trunc i80 %2584 to i64
-  call fastcc void @transparent_crc(i64 %2585, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1169, i64 0, i64 0), i32 signext undef)
-  %2586 = load volatile i80, i80* undef, align 2
-  %2587 = lshr i80 %2586, 24
-  %2588 = trunc i80 %2587 to i64
-  %2589 = and i64 %2588, 33554431
-  call fastcc void @transparent_crc(i64 %2589, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1170, i64 0, i64 0), i32 signext undef)
-  %2590 = shl i80 %2586, 56
-  %2591 = ashr i80 %2590, 68
-  %2592 = shl nsw i80 %2591, 32
-  %2593 = trunc i80 %2592 to i64
-  %2594 = ashr exact i64 %2593, 32
-  call fastcc void @transparent_crc(i64 %2594, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1171, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1172, i64 0, i64 0), i32 signext undef)
-  %2595 = load volatile i80, i80* undef, align 2
-  %2596 = shl i80 %2595, 69
-  %2597 = ashr i80 %2596, 72
-  %2598 = shl nsw i80 %2597, 32
-  %2599 = trunc i80 %2598 to i64
-  %2600 = ashr exact i64 %2599, 32
-  call fastcc void @transparent_crc(i64 %2600, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1173, i64 0, i64 0), i32 signext undef)
-  %2601 = load i16, i16* undef, align 2, !tbaa !50
-  %2602 = sext i16 %2601 to i64
-  call fastcc void @transparent_crc(i64 %2602, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1174, i64 0, i64 0), i32 signext undef)
-  %2603 = load i16, i16* undef, align 2, !tbaa !51
-  %2604 = zext i16 %2603 to i64
-  call fastcc void @transparent_crc(i64 %2604, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1175, i64 0, i64 0), i32 signext undef)
-  %2605 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1797 to i80*), align 8
-  %2606 = lshr i80 %2605, 57
-  %2607 = trunc i80 %2606 to i64
-  call fastcc void @transparent_crc(i64 %2607, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1176, i64 0, i64 0), i32 signext undef)
-  %2608 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1797 to i80*), align 8
-  %2609 = shl i80 %2608, 23
-  %2610 = ashr i80 %2609, 64
-  %2611 = shl nsw i80 %2610, 32
-  %2612 = trunc i80 %2611 to i64
-  %2613 = ashr exact i64 %2612, 32
-  call fastcc void @transparent_crc(i64 %2613, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1177, i64 0, i64 0), i32 signext undef)
-  %2614 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1797 to i80*), align 8
-  %2615 = shl i80 %2614, 39
-  %2616 = ashr i80 %2615, 62
-  %2617 = shl nsw i80 %2616, 32
-  %2618 = trunc i80 %2617 to i64
-  %2619 = ashr exact i64 %2618, 32
-  call fastcc void @transparent_crc(i64 %2619, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1178, i64 0, i64 0), i32 signext undef)
-  %2620 = load volatile i80, i80* bitcast ({ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_1797 to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1189, i64 0, i64 0), i32 signext undef)
-  %2621 = load volatile i120, i120* undef, align 1
-  %2622 = shl i120 %2621, 58
-  %2623 = ashr i120 %2622, 105
-  %2624 = shl nsw i120 %2623, 32
-  %2625 = trunc i120 %2624 to i64
-  %2626 = ashr exact i64 %2625, 32
-  call fastcc void @transparent_crc(i64 %2626, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1190, i64 0, i64 0), i32 signext undef)
-  %2627 = load volatile i120, i120* undef, align 1
-  %2628 = lshr i120 %2627, 41
-  %2629 = trunc i120 %2628 to i64
-  %2630 = and i64 %2629, 63
-  call fastcc void @transparent_crc(i64 %2630, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1191, i64 0, i64 0), i32 signext undef)
-  %2631 = load volatile i120, i120* undef, align 1
-  %2632 = lshr i120 %2631, 19
-  %2633 = trunc i120 %2632 to i64
-  %2634 = and i64 %2633, 4194303
-  call fastcc void @transparent_crc(i64 %2634, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1192, i64 0, i64 0), i32 signext undef)
-  %2635 = load volatile i120, i120* undef, align 1
-  %2636 = shl i120 %2635, 101
-  %2637 = ashr exact i120 %2636, 69
-  %2638 = trunc i120 %2637 to i64
-  %2639 = ashr exact i64 %2638, 32
-  call fastcc void @transparent_crc(i64 %2639, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1193, i64 0, i64 0), i32 signext undef)
-  %2640 = load i8, i8* undef, align 2, !tbaa !45
-  %2641 = zext i8 %2640 to i64
-  call fastcc void @transparent_crc(i64 %2641, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1194, i64 0, i64 0), i32 signext undef)
-  %2642 = getelementptr inbounds [4 x [7 x %5]], [4 x [7 x %5]]* bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_1889 to [4 x [7 x %5]]*), i64 0, i64 0, i64 0, i32 3, i32 1
-  %2643 = load i8, i8* %2642, align 1, !tbaa !46
-  %2644 = sext i8 %2643 to i64
-  call fastcc void @transparent_crc(i64 %2644, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1195, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1202, i64 0, i64 0), i32 signext undef)
-  %2645 = load volatile i128, i128* undef, align 2
-  %2646 = lshr i128 %2645, 28
-  %2647 = trunc i128 %2646 to i64
-  %2648 = and i64 %2647, 3
-  call fastcc void @transparent_crc(i64 %2648, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1203, i64 0, i64 0), i32 signext undef)
-  %2649 = load volatile i128, i128* undef, align 2
-  %2650 = shl i128 %2649, 100
-  %2651 = ashr i128 %2650, 107
-  %2652 = shl nsw i128 %2651, 32
-  %2653 = trunc i128 %2652 to i64
-  %2654 = ashr exact i64 %2653, 32
-  call fastcc void @transparent_crc(i64 %2654, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1204, i64 0, i64 0), i32 signext undef)
-  %2655 = load volatile i80, i80* undef, align 2
-  %2656 = lshr i80 %2655, 57
-  %2657 = trunc i80 %2656 to i64
-  call fastcc void @transparent_crc(i64 %2657, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1205, i64 0, i64 0), i32 signext undef)
-  %2658 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1299, i64 0, i64 0), i32 signext undef)
-  %2659 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 5, i32 0) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1301, i64 0, i64 0), i32 signext undef)
-  %2660 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 5, i32 0) to i80*), align 2
-  %2661 = lshr i80 %2660, 4
-  %2662 = trunc i80 %2661 to i64
-  %2663 = and i64 %2662, 262143
-  call fastcc void @transparent_crc(i64 %2663, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1302, i64 0, i64 0), i32 signext undef)
-  %2664 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 6, i32 0) to i80*), align 2
-  %2665 = ashr i80 %2664, 73
-  %2666 = shl nsw i80 %2665, 32
-  %2667 = trunc i80 %2666 to i64
-  %2668 = ashr exact i64 %2667, 32
-  call fastcc void @transparent_crc(i64 %2668, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1303, i64 0, i64 0), i32 signext undef)
-  %2669 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 6, i32 0) to i80*), align 2
-  %2670 = lshr i80 %2669, 61
-  %2671 = trunc i80 %2670 to i64
-  %2672 = and i64 %2671, 4095
-  call fastcc void @transparent_crc(i64 %2672, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1304, i64 0, i64 0), i32 signext undef)
-  %2673 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 6, i32 0) to i80*), align 2
-  %2674 = shl i80 %2673, 19
-  %2675 = ashr i80 %2674, 59
-  %2676 = shl nsw i80 %2675, 32
-  %2677 = trunc i80 %2676 to i64
-  %2678 = ashr exact i64 %2677, 32
-  call fastcc void @transparent_crc(i64 %2678, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1305, i64 0, i64 0), i32 signext undef)
-  %2679 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 6, i32 0) to i80*), align 2
-  %2680 = shl i80 %2679, 40
-  %2681 = ashr i80 %2680, 62
-  %2682 = shl nsw i80 %2681, 32
-  %2683 = trunc i80 %2682 to i64
+  %2565 = ashr exact i64 %2564, 32
+  call fastcc void @transparent_crc(i64 %2565, ptr @.str.1168, i32 signext undef)
+  %2566 = load i80, ptr undef, align 2
+  %2567 = lshr i80 %2566, 49
+  %2568 = trunc i80 %2567 to i64
+  call fastcc void @transparent_crc(i64 %2568, ptr @.str.1169, i32 signext undef)
+  %2569 = load volatile i80, ptr undef, align 2
+  %2570 = lshr i80 %2569, 24
+  %2571 = trunc i80 %2570 to i64
+  %2572 = and i64 %2571, 33554431
+  call fastcc void @transparent_crc(i64 %2572, ptr @.str.1170, i32 signext undef)
+  %2573 = shl i80 %2569, 56
+  %2574 = ashr i80 %2573, 68
+  %2575 = shl nsw i80 %2574, 32
+  %2576 = trunc i80 %2575 to i64
+  %2577 = ashr exact i64 %2576, 32
+  call fastcc void @transparent_crc(i64 %2577, ptr @.str.1171, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1172, i32 signext undef)
+  %2578 = load volatile i80, ptr undef, align 2
+  %2579 = shl i80 %2578, 69
+  %2580 = ashr i80 %2579, 72
+  %2581 = shl nsw i80 %2580, 32
+  %2582 = trunc i80 %2581 to i64
+  %2583 = ashr exact i64 %2582, 32
+  call fastcc void @transparent_crc(i64 %2583, ptr @.str.1173, i32 signext undef)
+  %2584 = load i16, ptr undef, align 2, !tbaa !50
+  %2585 = sext i16 %2584 to i64
+  call fastcc void @transparent_crc(i64 %2585, ptr @.str.1174, i32 signext undef)
+  %2586 = load i16, ptr undef, align 2, !tbaa !51
+  %2587 = zext i16 %2586 to i64
+  call fastcc void @transparent_crc(i64 %2587, ptr @.str.1175, i32 signext undef)
+  %2588 = load volatile i80, ptr @g_1797, align 8
+  %2589 = lshr i80 %2588, 57
+  %2590 = trunc i80 %2589 to i64
+  call fastcc void @transparent_crc(i64 %2590, ptr @.str.1176, i32 signext undef)
+  %2591 = load volatile i80, ptr @g_1797, align 8
+  %2592 = shl i80 %2591, 23
+  %2593 = ashr i80 %2592, 64
+  %2594 = shl nsw i80 %2593, 32
+  %2595 = trunc i80 %2594 to i64
+  %2596 = ashr exact i64 %2595, 32
+  call fastcc void @transparent_crc(i64 %2596, ptr @.str.1177, i32 signext undef)
+  %2597 = load volatile i80, ptr @g_1797, align 8
+  %2598 = shl i80 %2597, 39
+  %2599 = ashr i80 %2598, 62
+  %2600 = shl nsw i80 %2599, 32
+  %2601 = trunc i80 %2600 to i64
+  %2602 = ashr exact i64 %2601, 32
+  call fastcc void @transparent_crc(i64 %2602, ptr @.str.1178, i32 signext undef)
+  %2603 = load volatile i80, ptr @g_1797, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1189, i32 signext undef)
+  %2604 = load volatile i120, ptr undef, align 1
+  %2605 = shl i120 %2604, 58
+  %2606 = ashr i120 %2605, 105
+  %2607 = shl nsw i120 %2606, 32
+  %2608 = trunc i120 %2607 to i64
+  %2609 = ashr exact i64 %2608, 32
+  call fastcc void @transparent_crc(i64 %2609, ptr @.str.1190, i32 signext undef)
+  %2610 = load volatile i120, ptr undef, align 1
+  %2611 = lshr i120 %2610, 41
+  %2612 = trunc i120 %2611 to i64
+  %2613 = and i64 %2612, 63
+  call fastcc void @transparent_crc(i64 %2613, ptr @.str.1191, i32 signext undef)
+  %2614 = load volatile i120, ptr undef, align 1
+  %2615 = lshr i120 %2614, 19
+  %2616 = trunc i120 %2615 to i64
+  %2617 = and i64 %2616, 4194303
+  call fastcc void @transparent_crc(i64 %2617, ptr @.str.1192, i32 signext undef)
+  %2618 = load volatile i120, ptr undef, align 1
+  %2619 = shl i120 %2618, 101
+  %2620 = ashr exact i120 %2619, 69
+  %2621 = trunc i120 %2620 to i64
+  %2622 = ashr exact i64 %2621, 32
+  call fastcc void @transparent_crc(i64 %2622, ptr @.str.1193, i32 signext undef)
+  %2623 = load i8, ptr undef, align 2, !tbaa !45
+  %2624 = zext i8 %2623 to i64
+  call fastcc void @transparent_crc(i64 %2624, ptr @.str.1194, i32 signext undef)
+  %2625 = getelementptr inbounds [4 x [7 x %5]], ptr bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_1889 to ptr), i64 0, i64 0, i64 0, i32 3, i32 1
+  %2626 = load i8, ptr %2625, align 1, !tbaa !46
+  %2627 = sext i8 %2626 to i64
+  call fastcc void @transparent_crc(i64 %2627, ptr @.str.1195, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1202, i32 signext undef)
+  %2628 = load volatile i128, ptr undef, align 2
+  %2629 = lshr i128 %2628, 28
+  %2630 = trunc i128 %2629 to i64
+  %2631 = and i64 %2630, 3
+  call fastcc void @transparent_crc(i64 %2631, ptr @.str.1203, i32 signext undef)
+  %2632 = load volatile i128, ptr undef, align 2
+  %2633 = shl i128 %2632, 100
+  %2634 = ashr i128 %2633, 107
+  %2635 = shl nsw i128 %2634, 32
+  %2636 = trunc i128 %2635 to i64
+  %2637 = ashr exact i64 %2636, 32
+  call fastcc void @transparent_crc(i64 %2637, ptr @.str.1204, i32 signext undef)
+  %2638 = load volatile i80, ptr undef, align 2
+  %2639 = lshr i80 %2638, 57
+  %2640 = trunc i80 %2639 to i64
+  call fastcc void @transparent_crc(i64 %2640, ptr @.str.1205, i32 signext undef)
+  %2641 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1299, i32 signext undef)
+  %2642 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 5, i32 0), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1301, i32 signext undef)
+  %2643 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 5, i32 0), align 2
+  %2644 = lshr i80 %2643, 4
+  %2645 = trunc i80 %2644 to i64
+  %2646 = and i64 %2645, 262143
+  call fastcc void @transparent_crc(i64 %2646, ptr @.str.1302, i32 signext undef)
+  %2647 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 6, i32 0), align 2
+  %2648 = ashr i80 %2647, 73
+  %2649 = shl nsw i80 %2648, 32
+  %2650 = trunc i80 %2649 to i64
+  %2651 = ashr exact i64 %2650, 32
+  call fastcc void @transparent_crc(i64 %2651, ptr @.str.1303, i32 signext undef)
+  %2652 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 6, i32 0), align 2
+  %2653 = lshr i80 %2652, 61
+  %2654 = trunc i80 %2653 to i64
+  %2655 = and i64 %2654, 4095
+  call fastcc void @transparent_crc(i64 %2655, ptr @.str.1304, i32 signext undef)
+  %2656 = load volatile i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 6, i32 0), align 2
+  %2657 = shl i80 %2656, 19
+  %2658 = ashr i80 %2657, 59
+  %2659 = shl nsw i80 %2658, 32
+  %2660 = trunc i80 %2659 to i64
+  %2661 = ashr exact i64 %2660, 32
+  call fastcc void @transparent_crc(i64 %2661, ptr @.str.1305, i32 signext undef)
+  %2662 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 6, i32 0), align 2
+  %2663 = shl i80 %2662, 40
+  %2664 = ashr i80 %2663, 62
+  %2665 = shl nsw i80 %2664, 32
+  %2666 = trunc i80 %2665 to i64
+  %2667 = ashr exact i64 %2666, 32
+  call fastcc void @transparent_crc(i64 %2667, ptr @.str.1306, i32 signext undef)
+  %2668 = load i80, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 6, i32 0), align 2
+  %2669 = lshr i80 %2668, 4
+  %2670 = trunc i80 %2669 to i64
+  %2671 = and i64 %2670, 262143
+  call fastcc void @transparent_crc(i64 %2671, ptr @.str.1307, i32 signext undef)
+  %2672 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 7, i32 0), align 2
+  %2673 = lshr i120 %2672, 107
+  %2674 = trunc i120 %2673 to i64
+  call fastcc void @transparent_crc(i64 %2674, ptr @.str.1308, i32 signext undef)
+  %2675 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 7, i32 0), align 2
+  %2676 = lshr i120 %2675, 78
+  %2677 = trunc i120 %2676 to i64
+  %2678 = and i64 %2677, 536870911
+  call fastcc void @transparent_crc(i64 %2678, ptr @.str.1309, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1310, i32 signext undef)
+  %2679 = load volatile i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 7, i32 0), align 2
+  %2680 = shl i120 %2679, 58
+  %2681 = ashr i120 %2680, 105
+  %2682 = shl nsw i120 %2681, 32
+  %2683 = trunc i120 %2682 to i64
   %2684 = ashr exact i64 %2683, 32
-  call fastcc void @transparent_crc(i64 %2684, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1306, i64 0, i64 0), i32 signext undef)
-  %2685 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 6, i32 0) to i80*), align 2
-  %2686 = lshr i80 %2685, 4
-  %2687 = trunc i80 %2686 to i64
-  %2688 = and i64 %2687, 262143
-  call fastcc void @transparent_crc(i64 %2688, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1307, i64 0, i64 0), i32 signext undef)
-  %2689 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 7, i32 0) to i120*), align 2
-  %2690 = lshr i120 %2689, 107
+  call fastcc void @transparent_crc(i64 %2684, ptr @.str.1311, i32 signext undef)
+  %2685 = load volatile i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 7, i32 0), align 2
+  %2686 = lshr i120 %2685, 41
+  %2687 = trunc i120 %2686 to i64
+  %2688 = and i64 %2687, 63
+  call fastcc void @transparent_crc(i64 %2688, ptr @.str.1312, i32 signext undef)
+  %2689 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 7, i32 0), align 2
+  %2690 = lshr i120 %2689, 19
   %2691 = trunc i120 %2690 to i64
-  call fastcc void @transparent_crc(i64 %2691, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1308, i64 0, i64 0), i32 signext undef)
-  %2692 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 7, i32 0) to i120*), align 2
-  %2693 = lshr i120 %2692, 78
-  %2694 = trunc i120 %2693 to i64
-  %2695 = and i64 %2694, 536870911
-  call fastcc void @transparent_crc(i64 %2695, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1309, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1310, i64 0, i64 0), i32 signext undef)
-  %2696 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 7, i32 0) to i120*), align 2
-  %2697 = shl i120 %2696, 58
-  %2698 = ashr i120 %2697, 105
-  %2699 = shl nsw i120 %2698, 32
+  %2692 = and i64 %2691, 4194303
+  call fastcc void @transparent_crc(i64 %2692, ptr @.str.1313, i32 signext undef)
+  %2693 = load i120, ptr getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, ptr @g_2172, i64 0, i32 7, i32 0), align 2
+  %2694 = shl i120 %2693, 101
+  %2695 = ashr exact i120 %2694, 69
+  %2696 = trunc i120 %2695 to i64
+  %2697 = ashr exact i64 %2696, 32
+  call fastcc void @transparent_crc(i64 %2697, ptr @.str.1314, i32 signext undef)
+  %2698 = load i120, ptr @g_2178, align 8
+  %2699 = lshr i120 %2698, 107
   %2700 = trunc i120 %2699 to i64
-  %2701 = ashr exact i64 %2700, 32
-  call fastcc void @transparent_crc(i64 %2701, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1311, i64 0, i64 0), i32 signext undef)
-  %2702 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 7, i32 0) to i120*), align 2
-  %2703 = lshr i120 %2702, 41
-  %2704 = trunc i120 %2703 to i64
-  %2705 = and i64 %2704, 63
-  call fastcc void @transparent_crc(i64 %2705, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1312, i64 0, i64 0), i32 signext undef)
-  %2706 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 7, i32 0) to i120*), align 2
-  %2707 = lshr i120 %2706, 19
-  %2708 = trunc i120 %2707 to i64
-  %2709 = and i64 %2708, 4194303
-  call fastcc void @transparent_crc(i64 %2709, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1313, i64 0, i64 0), i32 signext undef)
-  %2710 = load i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ i16, i32, i32, i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2172, i64 0, i32 7, i32 0) to i120*), align 2
-  %2711 = shl i120 %2710, 101
-  %2712 = ashr exact i120 %2711, 69
-  %2713 = trunc i120 %2712 to i64
-  %2714 = ashr exact i64 %2713, 32
-  call fastcc void @transparent_crc(i64 %2714, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1314, i64 0, i64 0), i32 signext undef)
-  %2715 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2178 to i120*), align 8
-  %2716 = lshr i120 %2715, 107
-  %2717 = trunc i120 %2716 to i64
-  call fastcc void @transparent_crc(i64 %2717, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1315, i64 0, i64 0), i32 signext undef)
-  %2718 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2178 to i120*), align 8
-  %2719 = lshr i120 %2718, 78
-  %2720 = trunc i120 %2719 to i64
-  %2721 = and i64 %2720, 536870911
-  call fastcc void @transparent_crc(i64 %2721, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1316, i64 0, i64 0), i32 signext undef)
-  %2722 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2178 to i120*), align 8
-  %2723 = shl i120 %2722, 42
-  %2724 = ashr i120 %2723, 104
-  %2725 = shl nsw i120 %2724, 32
-  %2726 = trunc i120 %2725 to i64
-  %2727 = ashr exact i64 %2726, 32
-  call fastcc void @transparent_crc(i64 %2727, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1317, i64 0, i64 0), i32 signext undef)
-  %2728 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2178 to i120*), align 8
-  %2729 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_2237, i64 0, i32 4, i32 0) to i80*), align 1
-  %2730 = shl i80 %2729, 39
-  %2731 = ashr i80 %2730, 62
-  %2732 = shl nsw i80 %2731, 32
-  %2733 = trunc i80 %2732 to i64
-  %2734 = ashr exact i64 %2733, 32
-  call fastcc void @transparent_crc(i64 %2734, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1330, i64 0, i64 0), i32 signext undef)
-  %2735 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_2237, i64 0, i32 4, i32 0) to i80*), align 1
-  %2736 = shl i80 %2735, 57
-  %2737 = ashr i80 %2736, 58
-  %2738 = shl nsw i80 %2737, 32
-  %2739 = trunc i80 %2738 to i64
-  %2740 = ashr exact i64 %2739, 32
-  call fastcc void @transparent_crc(i64 %2740, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1331, i64 0, i64 0), i32 signext undef)
-  %2741 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_2237, i64 0, i32 5), align 1, !tbaa !54
-  call fastcc void @transparent_crc(i64 %2741, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1332, i64 0, i64 0), i32 signext undef)
-  %2742 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_2237, i64 0, i32 6), align 1, !tbaa !56
-  call fastcc void @transparent_crc(i64 %2742, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1333, i64 0, i64 0), i32 signext undef)
-  %2743 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2744 = lshr i120 %2743, 107
-  %2745 = trunc i120 %2744 to i64
-  call fastcc void @transparent_crc(i64 %2745, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1334, i64 0, i64 0), i32 signext undef)
-  %2746 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2747 = lshr i120 %2746, 78
-  %2748 = trunc i120 %2747 to i64
-  %2749 = and i64 %2748, 536870911
-  call fastcc void @transparent_crc(i64 %2749, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1335, i64 0, i64 0), i32 signext undef)
-  %2750 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2751 = shl i120 %2750, 42
-  %2752 = ashr i120 %2751, 104
-  %2753 = shl nsw i120 %2752, 32
-  %2754 = trunc i120 %2753 to i64
-  %2755 = ashr exact i64 %2754, 32
-  call fastcc void @transparent_crc(i64 %2755, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1336, i64 0, i64 0), i32 signext undef)
-  %2756 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2757 = shl i120 %2756, 58
-  %2758 = ashr i120 %2757, 105
-  %2759 = shl nsw i120 %2758, 32
+  call fastcc void @transparent_crc(i64 %2700, ptr @.str.1315, i32 signext undef)
+  %2701 = load i120, ptr @g_2178, align 8
+  %2702 = lshr i120 %2701, 78
+  %2703 = trunc i120 %2702 to i64
+  %2704 = and i64 %2703, 536870911
+  call fastcc void @transparent_crc(i64 %2704, ptr @.str.1316, i32 signext undef)
+  %2705 = load i120, ptr @g_2178, align 8
+  %2706 = shl i120 %2705, 42
+  %2707 = ashr i120 %2706, 104
+  %2708 = shl nsw i120 %2707, 32
+  %2709 = trunc i120 %2708 to i64
+  %2710 = ashr exact i64 %2709, 32
+  call fastcc void @transparent_crc(i64 %2710, ptr @.str.1317, i32 signext undef)
+  %2711 = load volatile i120, ptr @g_2178, align 8
+  %2712 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_2237, i64 0, i32 4, i32 0), align 1
+  %2713 = shl i80 %2712, 39
+  %2714 = ashr i80 %2713, 62
+  %2715 = shl nsw i80 %2714, 32
+  %2716 = trunc i80 %2715 to i64
+  %2717 = ashr exact i64 %2716, 32
+  call fastcc void @transparent_crc(i64 %2717, ptr @.str.1330, i32 signext undef)
+  %2718 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_2237, i64 0, i32 4, i32 0), align 1
+  %2719 = shl i80 %2718, 57
+  %2720 = ashr i80 %2719, 58
+  %2721 = shl nsw i80 %2720, 32
+  %2722 = trunc i80 %2721 to i64
+  %2723 = ashr exact i64 %2722, 32
+  call fastcc void @transparent_crc(i64 %2723, ptr @.str.1331, i32 signext undef)
+  %2724 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_2237, i64 0, i32 5), align 1, !tbaa !54
+  call fastcc void @transparent_crc(i64 %2724, ptr @.str.1332, i32 signext undef)
+  %2725 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_2237, i64 0, i32 6), align 1, !tbaa !56
+  call fastcc void @transparent_crc(i64 %2725, ptr @.str.1333, i32 signext undef)
+  %2726 = load i120, ptr @g_2260, align 8
+  %2727 = lshr i120 %2726, 107
+  %2728 = trunc i120 %2727 to i64
+  call fastcc void @transparent_crc(i64 %2728, ptr @.str.1334, i32 signext undef)
+  %2729 = load i120, ptr @g_2260, align 8
+  %2730 = lshr i120 %2729, 78
+  %2731 = trunc i120 %2730 to i64
+  %2732 = and i64 %2731, 536870911
+  call fastcc void @transparent_crc(i64 %2732, ptr @.str.1335, i32 signext undef)
+  %2733 = load i120, ptr @g_2260, align 8
+  %2734 = shl i120 %2733, 42
+  %2735 = ashr i120 %2734, 104
+  %2736 = shl nsw i120 %2735, 32
+  %2737 = trunc i120 %2736 to i64
+  %2738 = ashr exact i64 %2737, 32
+  call fastcc void @transparent_crc(i64 %2738, ptr @.str.1336, i32 signext undef)
+  %2739 = load volatile i120, ptr @g_2260, align 8
+  %2740 = shl i120 %2739, 58
+  %2741 = ashr i120 %2740, 105
+  %2742 = shl nsw i120 %2741, 32
+  %2743 = trunc i120 %2742 to i64
+  %2744 = ashr exact i64 %2743, 32
+  call fastcc void @transparent_crc(i64 %2744, ptr @.str.1337, i32 signext undef)
+  %2745 = load volatile i120, ptr @g_2260, align 8
+  %2746 = lshr i120 %2745, 41
+  %2747 = trunc i120 %2746 to i64
+  %2748 = and i64 %2747, 63
+  call fastcc void @transparent_crc(i64 %2748, ptr @.str.1338, i32 signext undef)
+  %2749 = load i120, ptr @g_2260, align 8
+  %2750 = lshr i120 %2749, 19
+  %2751 = trunc i120 %2750 to i64
+  %2752 = and i64 %2751, 4194303
+  call fastcc void @transparent_crc(i64 %2752, ptr @.str.1339, i32 signext undef)
+  %2753 = load i120, ptr @g_2260, align 8
+  %2754 = shl i120 %2753, 101
+  %2755 = ashr exact i120 %2754, 69
+  %2756 = trunc i120 %2755 to i64
+  %2757 = ashr exact i64 %2756, 32
+  call fastcc void @transparent_crc(i64 %2757, ptr @.str.1340, i32 signext undef)
+  %2758 = load i120, ptr @g_2261, align 8
+  %2759 = lshr i120 %2758, 107
   %2760 = trunc i120 %2759 to i64
-  %2761 = ashr exact i64 %2760, 32
-  call fastcc void @transparent_crc(i64 %2761, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1337, i64 0, i64 0), i32 signext undef)
-  %2762 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2763 = lshr i120 %2762, 41
-  %2764 = trunc i120 %2763 to i64
-  %2765 = and i64 %2764, 63
-  call fastcc void @transparent_crc(i64 %2765, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1338, i64 0, i64 0), i32 signext undef)
-  %2766 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2767 = lshr i120 %2766, 19
-  %2768 = trunc i120 %2767 to i64
-  %2769 = and i64 %2768, 4194303
-  call fastcc void @transparent_crc(i64 %2769, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1339, i64 0, i64 0), i32 signext undef)
-  %2770 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2260 to i120*), align 8
-  %2771 = shl i120 %2770, 101
-  %2772 = ashr exact i120 %2771, 69
-  %2773 = trunc i120 %2772 to i64
-  %2774 = ashr exact i64 %2773, 32
-  call fastcc void @transparent_crc(i64 %2774, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1340, i64 0, i64 0), i32 signext undef)
-  %2775 = load i120, i120* bitcast (<{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2261 to i120*), align 8
-  %2776 = lshr i120 %2775, 107
-  %2777 = trunc i120 %2776 to i64
-  call fastcc void @transparent_crc(i64 %2777, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1341, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1344, i64 0, i64 0), i32 signext undef)
-  %2778 = load volatile i120, i120* bitcast (<{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2261 to i120*), align 8
-  %2779 = lshr i120 %2778, 41
-  %2780 = trunc i120 %2779 to i64
-  %2781 = and i64 %2780, 63
-  call fastcc void @transparent_crc(i64 %2781, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1345, i64 0, i64 0), i32 signext undef)
-  %2782 = load i120, i120* bitcast (<{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2261 to i120*), align 8
-  %2783 = lshr i120 %2782, 19
-  %2784 = trunc i120 %2783 to i64
-  %2785 = and i64 %2784, 4194303
-  call fastcc void @transparent_crc(i64 %2785, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1346, i64 0, i64 0), i32 signext undef)
-  %2786 = load i120, i120* bitcast (<{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>* @g_2261 to i120*), align 8
-  %2787 = shl i120 %2786, 101
-  %2788 = ashr exact i120 %2787, 69
-  %2789 = trunc i120 %2788 to i64
-  %2790 = ashr exact i64 %2789, 32
-  call fastcc void @transparent_crc(i64 %2790, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1347, i64 0, i64 0), i32 signext undef)
-  %2791 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2792 = lshr i120 %2791, 107
-  %2793 = trunc i120 %2792 to i64
-  call fastcc void @transparent_crc(i64 %2793, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1348, i64 0, i64 0), i32 signext undef)
-  %2794 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2795 = lshr i120 %2794, 78
-  %2796 = trunc i120 %2795 to i64
-  %2797 = and i64 %2796, 536870911
-  call fastcc void @transparent_crc(i64 %2797, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1349, i64 0, i64 0), i32 signext undef)
-  %2798 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2799 = shl i120 %2798, 42
-  %2800 = ashr i120 %2799, 104
-  %2801 = shl nsw i120 %2800, 32
-  %2802 = trunc i120 %2801 to i64
-  %2803 = ashr exact i64 %2802, 32
-  call fastcc void @transparent_crc(i64 %2803, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1350, i64 0, i64 0), i32 signext undef)
-  %2804 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2805 = shl i120 %2804, 58
-  %2806 = ashr i120 %2805, 105
-  %2807 = shl nsw i120 %2806, 32
+  call fastcc void @transparent_crc(i64 %2760, ptr @.str.1341, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1344, i32 signext undef)
+  %2761 = load volatile i120, ptr @g_2261, align 8
+  %2762 = lshr i120 %2761, 41
+  %2763 = trunc i120 %2762 to i64
+  %2764 = and i64 %2763, 63
+  call fastcc void @transparent_crc(i64 %2764, ptr @.str.1345, i32 signext undef)
+  %2765 = load i120, ptr @g_2261, align 8
+  %2766 = lshr i120 %2765, 19
+  %2767 = trunc i120 %2766 to i64
+  %2768 = and i64 %2767, 4194303
+  call fastcc void @transparent_crc(i64 %2768, ptr @.str.1346, i32 signext undef)
+  %2769 = load i120, ptr @g_2261, align 8
+  %2770 = shl i120 %2769, 101
+  %2771 = ashr exact i120 %2770, 69
+  %2772 = trunc i120 %2771 to i64
+  %2773 = ashr exact i64 %2772, 32
+  call fastcc void @transparent_crc(i64 %2773, ptr @.str.1347, i32 signext undef)
+  %2774 = load i120, ptr @g_2262, align 8
+  %2775 = lshr i120 %2774, 107
+  %2776 = trunc i120 %2775 to i64
+  call fastcc void @transparent_crc(i64 %2776, ptr @.str.1348, i32 signext undef)
+  %2777 = load i120, ptr @g_2262, align 8
+  %2778 = lshr i120 %2777, 78
+  %2779 = trunc i120 %2778 to i64
+  %2780 = and i64 %2779, 536870911
+  call fastcc void @transparent_crc(i64 %2780, ptr @.str.1349, i32 signext undef)
+  %2781 = load i120, ptr @g_2262, align 8
+  %2782 = shl i120 %2781, 42
+  %2783 = ashr i120 %2782, 104
+  %2784 = shl nsw i120 %2783, 32
+  %2785 = trunc i120 %2784 to i64
+  %2786 = ashr exact i64 %2785, 32
+  call fastcc void @transparent_crc(i64 %2786, ptr @.str.1350, i32 signext undef)
+  %2787 = load volatile i120, ptr @g_2262, align 8
+  %2788 = shl i120 %2787, 58
+  %2789 = ashr i120 %2788, 105
+  %2790 = shl nsw i120 %2789, 32
+  %2791 = trunc i120 %2790 to i64
+  %2792 = ashr exact i64 %2791, 32
+  call fastcc void @transparent_crc(i64 %2792, ptr @.str.1351, i32 signext undef)
+  %2793 = load volatile i120, ptr @g_2262, align 8
+  %2794 = lshr i120 %2793, 41
+  %2795 = trunc i120 %2794 to i64
+  %2796 = and i64 %2795, 63
+  call fastcc void @transparent_crc(i64 %2796, ptr @.str.1352, i32 signext undef)
+  %2797 = load i120, ptr @g_2262, align 8
+  %2798 = lshr i120 %2797, 19
+  %2799 = trunc i120 %2798 to i64
+  %2800 = and i64 %2799, 4194303
+  call fastcc void @transparent_crc(i64 %2800, ptr @.str.1353, i32 signext undef)
+  %2801 = load i120, ptr @g_2262, align 8
+  %2802 = shl i120 %2801, 101
+  %2803 = ashr exact i120 %2802, 69
+  %2804 = trunc i120 %2803 to i64
+  %2805 = ashr exact i64 %2804, 32
+  call fastcc void @transparent_crc(i64 %2805, ptr @.str.1354, i32 signext undef)
+  %2806 = load i120, ptr @g_2263, align 8
+  %2807 = lshr i120 %2806, 107
   %2808 = trunc i120 %2807 to i64
-  %2809 = ashr exact i64 %2808, 32
-  call fastcc void @transparent_crc(i64 %2809, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1351, i64 0, i64 0), i32 signext undef)
-  %2810 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2811 = lshr i120 %2810, 41
-  %2812 = trunc i120 %2811 to i64
-  %2813 = and i64 %2812, 63
-  call fastcc void @transparent_crc(i64 %2813, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1352, i64 0, i64 0), i32 signext undef)
-  %2814 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2815 = lshr i120 %2814, 19
-  %2816 = trunc i120 %2815 to i64
-  %2817 = and i64 %2816, 4194303
-  call fastcc void @transparent_crc(i64 %2817, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1353, i64 0, i64 0), i32 signext undef)
-  %2818 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2262 to i120*), align 8
-  %2819 = shl i120 %2818, 101
-  %2820 = ashr exact i120 %2819, 69
-  %2821 = trunc i120 %2820 to i64
-  %2822 = ashr exact i64 %2821, 32
-  call fastcc void @transparent_crc(i64 %2822, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1354, i64 0, i64 0), i32 signext undef)
-  %2823 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2824 = lshr i120 %2823, 107
-  %2825 = trunc i120 %2824 to i64
-  call fastcc void @transparent_crc(i64 %2825, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1355, i64 0, i64 0), i32 signext undef)
-  %2826 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2827 = lshr i120 %2826, 78
-  %2828 = trunc i120 %2827 to i64
-  %2829 = and i64 %2828, 536870911
-  call fastcc void @transparent_crc(i64 %2829, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1356, i64 0, i64 0), i32 signext undef)
-  %2830 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2831 = shl i120 %2830, 42
-  %2832 = ashr i120 %2831, 104
-  %2833 = shl nsw i120 %2832, 32
-  %2834 = trunc i120 %2833 to i64
-  %2835 = ashr exact i64 %2834, 32
-  call fastcc void @transparent_crc(i64 %2835, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1357, i64 0, i64 0), i32 signext undef)
-  %2836 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2837 = shl i120 %2836, 58
-  %2838 = ashr i120 %2837, 105
-  %2839 = shl nsw i120 %2838, 32
-  %2840 = trunc i120 %2839 to i64
-  %2841 = ashr exact i64 %2840, 32
-  call fastcc void @transparent_crc(i64 %2841, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1358, i64 0, i64 0), i32 signext undef)
-  %2842 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2843 = lshr i120 %2842, 41
-  %2844 = trunc i120 %2843 to i64
-  %2845 = and i64 %2844, 63
-  call fastcc void @transparent_crc(i64 %2845, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1359, i64 0, i64 0), i32 signext undef)
-  %2846 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2847 = lshr i120 %2846, 19
-  %2848 = trunc i120 %2847 to i64
-  %2849 = and i64 %2848, 4194303
-  call fastcc void @transparent_crc(i64 %2849, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1360, i64 0, i64 0), i32 signext undef)
-  %2850 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2263 to i120*), align 8
-  %2851 = shl i120 %2850, 101
-  %2852 = ashr exact i120 %2851, 69
-  %2853 = trunc i120 %2852 to i64
-  %2854 = ashr exact i64 %2853, 32
-  call fastcc void @transparent_crc(i64 %2854, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1361, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1364, i64 0, i64 0), i32 signext undef)
-  %2855 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2264 to i120*), align 8
-  %2856 = shl i120 %2855, 58
-  %2857 = ashr i120 %2856, 105
-  %2858 = shl nsw i120 %2857, 32
+  call fastcc void @transparent_crc(i64 %2808, ptr @.str.1355, i32 signext undef)
+  %2809 = load i120, ptr @g_2263, align 8
+  %2810 = lshr i120 %2809, 78
+  %2811 = trunc i120 %2810 to i64
+  %2812 = and i64 %2811, 536870911
+  call fastcc void @transparent_crc(i64 %2812, ptr @.str.1356, i32 signext undef)
+  %2813 = load i120, ptr @g_2263, align 8
+  %2814 = shl i120 %2813, 42
+  %2815 = ashr i120 %2814, 104
+  %2816 = shl nsw i120 %2815, 32
+  %2817 = trunc i120 %2816 to i64
+  %2818 = ashr exact i64 %2817, 32
+  call fastcc void @transparent_crc(i64 %2818, ptr @.str.1357, i32 signext undef)
+  %2819 = load volatile i120, ptr @g_2263, align 8
+  %2820 = shl i120 %2819, 58
+  %2821 = ashr i120 %2820, 105
+  %2822 = shl nsw i120 %2821, 32
+  %2823 = trunc i120 %2822 to i64
+  %2824 = ashr exact i64 %2823, 32
+  call fastcc void @transparent_crc(i64 %2824, ptr @.str.1358, i32 signext undef)
+  %2825 = load volatile i120, ptr @g_2263, align 8
+  %2826 = lshr i120 %2825, 41
+  %2827 = trunc i120 %2826 to i64
+  %2828 = and i64 %2827, 63
+  call fastcc void @transparent_crc(i64 %2828, ptr @.str.1359, i32 signext undef)
+  %2829 = load i120, ptr @g_2263, align 8
+  %2830 = lshr i120 %2829, 19
+  %2831 = trunc i120 %2830 to i64
+  %2832 = and i64 %2831, 4194303
+  call fastcc void @transparent_crc(i64 %2832, ptr @.str.1360, i32 signext undef)
+  %2833 = load i120, ptr @g_2263, align 8
+  %2834 = shl i120 %2833, 101
+  %2835 = ashr exact i120 %2834, 69
+  %2836 = trunc i120 %2835 to i64
+  %2837 = ashr exact i64 %2836, 32
+  call fastcc void @transparent_crc(i64 %2837, ptr @.str.1361, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1364, i32 signext undef)
+  %2838 = load volatile i120, ptr @g_2264, align 8
+  %2839 = shl i120 %2838, 58
+  %2840 = ashr i120 %2839, 105
+  %2841 = shl nsw i120 %2840, 32
+  %2842 = trunc i120 %2841 to i64
+  %2843 = ashr exact i64 %2842, 32
+  call fastcc void @transparent_crc(i64 %2843, ptr @.str.1365, i32 signext undef)
+  %2844 = load volatile i120, ptr @g_2264, align 8
+  %2845 = lshr i120 %2844, 41
+  %2846 = trunc i120 %2845 to i64
+  %2847 = and i64 %2846, 63
+  call fastcc void @transparent_crc(i64 %2847, ptr @.str.1366, i32 signext undef)
+  %2848 = load i120, ptr @g_2264, align 8
+  %2849 = lshr i120 %2848, 19
+  %2850 = trunc i120 %2849 to i64
+  %2851 = and i64 %2850, 4194303
+  call fastcc void @transparent_crc(i64 %2851, ptr @.str.1367, i32 signext undef)
+  %2852 = load i120, ptr @g_2264, align 8
+  %2853 = shl i120 %2852, 101
+  %2854 = ashr exact i120 %2853, 69
+  %2855 = trunc i120 %2854 to i64
+  %2856 = ashr exact i64 %2855, 32
+  call fastcc void @transparent_crc(i64 %2856, ptr @.str.1368, i32 signext undef)
+  %2857 = load i120, ptr @g_2265, align 8
+  %2858 = lshr i120 %2857, 107
   %2859 = trunc i120 %2858 to i64
-  %2860 = ashr exact i64 %2859, 32
-  call fastcc void @transparent_crc(i64 %2860, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1365, i64 0, i64 0), i32 signext undef)
-  %2861 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2264 to i120*), align 8
-  %2862 = lshr i120 %2861, 41
-  %2863 = trunc i120 %2862 to i64
-  %2864 = and i64 %2863, 63
-  call fastcc void @transparent_crc(i64 %2864, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1366, i64 0, i64 0), i32 signext undef)
-  %2865 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2264 to i120*), align 8
-  %2866 = lshr i120 %2865, 19
-  %2867 = trunc i120 %2866 to i64
-  %2868 = and i64 %2867, 4194303
-  call fastcc void @transparent_crc(i64 %2868, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1367, i64 0, i64 0), i32 signext undef)
-  %2869 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2264 to i120*), align 8
-  %2870 = shl i120 %2869, 101
-  %2871 = ashr exact i120 %2870, 69
-  %2872 = trunc i120 %2871 to i64
-  %2873 = ashr exact i64 %2872, 32
-  call fastcc void @transparent_crc(i64 %2873, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1368, i64 0, i64 0), i32 signext undef)
-  %2874 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2875 = lshr i120 %2874, 107
-  %2876 = trunc i120 %2875 to i64
-  call fastcc void @transparent_crc(i64 %2876, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1369, i64 0, i64 0), i32 signext undef)
-  %2877 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2878 = lshr i120 %2877, 78
-  %2879 = trunc i120 %2878 to i64
-  %2880 = and i64 %2879, 536870911
-  call fastcc void @transparent_crc(i64 %2880, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1370, i64 0, i64 0), i32 signext undef)
-  %2881 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2882 = shl i120 %2881, 42
-  %2883 = ashr i120 %2882, 104
-  %2884 = shl nsw i120 %2883, 32
-  %2885 = trunc i120 %2884 to i64
-  %2886 = ashr exact i64 %2885, 32
-  call fastcc void @transparent_crc(i64 %2886, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1371, i64 0, i64 0), i32 signext undef)
-  %2887 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2888 = shl i120 %2887, 58
-  %2889 = ashr i120 %2888, 105
-  %2890 = shl nsw i120 %2889, 32
+  call fastcc void @transparent_crc(i64 %2859, ptr @.str.1369, i32 signext undef)
+  %2860 = load i120, ptr @g_2265, align 8
+  %2861 = lshr i120 %2860, 78
+  %2862 = trunc i120 %2861 to i64
+  %2863 = and i64 %2862, 536870911
+  call fastcc void @transparent_crc(i64 %2863, ptr @.str.1370, i32 signext undef)
+  %2864 = load i120, ptr @g_2265, align 8
+  %2865 = shl i120 %2864, 42
+  %2866 = ashr i120 %2865, 104
+  %2867 = shl nsw i120 %2866, 32
+  %2868 = trunc i120 %2867 to i64
+  %2869 = ashr exact i64 %2868, 32
+  call fastcc void @transparent_crc(i64 %2869, ptr @.str.1371, i32 signext undef)
+  %2870 = load volatile i120, ptr @g_2265, align 8
+  %2871 = shl i120 %2870, 58
+  %2872 = ashr i120 %2871, 105
+  %2873 = shl nsw i120 %2872, 32
+  %2874 = trunc i120 %2873 to i64
+  %2875 = ashr exact i64 %2874, 32
+  call fastcc void @transparent_crc(i64 %2875, ptr @.str.1372, i32 signext undef)
+  %2876 = load volatile i120, ptr @g_2265, align 8
+  %2877 = lshr i120 %2876, 41
+  %2878 = trunc i120 %2877 to i64
+  %2879 = and i64 %2878, 63
+  call fastcc void @transparent_crc(i64 %2879, ptr @.str.1373, i32 signext undef)
+  %2880 = load i120, ptr @g_2265, align 8
+  %2881 = lshr i120 %2880, 19
+  %2882 = trunc i120 %2881 to i64
+  %2883 = and i64 %2882, 4194303
+  call fastcc void @transparent_crc(i64 %2883, ptr @.str.1374, i32 signext undef)
+  %2884 = load i120, ptr @g_2265, align 8
+  %2885 = shl i120 %2884, 101
+  %2886 = ashr exact i120 %2885, 69
+  %2887 = trunc i120 %2886 to i64
+  %2888 = ashr exact i64 %2887, 32
+  call fastcc void @transparent_crc(i64 %2888, ptr @.str.1375, i32 signext undef)
+  %2889 = load i120, ptr @g_2266, align 8
+  %2890 = lshr i120 %2889, 107
   %2891 = trunc i120 %2890 to i64
-  %2892 = ashr exact i64 %2891, 32
-  call fastcc void @transparent_crc(i64 %2892, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1372, i64 0, i64 0), i32 signext undef)
-  %2893 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2894 = lshr i120 %2893, 41
-  %2895 = trunc i120 %2894 to i64
-  %2896 = and i64 %2895, 63
-  call fastcc void @transparent_crc(i64 %2896, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1373, i64 0, i64 0), i32 signext undef)
-  %2897 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2898 = lshr i120 %2897, 19
-  %2899 = trunc i120 %2898 to i64
-  %2900 = and i64 %2899, 4194303
-  call fastcc void @transparent_crc(i64 %2900, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1374, i64 0, i64 0), i32 signext undef)
-  %2901 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2265 to i120*), align 8
-  %2902 = shl i120 %2901, 101
-  %2903 = ashr exact i120 %2902, 69
-  %2904 = trunc i120 %2903 to i64
-  %2905 = ashr exact i64 %2904, 32
-  call fastcc void @transparent_crc(i64 %2905, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1375, i64 0, i64 0), i32 signext undef)
-  %2906 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2907 = lshr i120 %2906, 107
-  %2908 = trunc i120 %2907 to i64
-  call fastcc void @transparent_crc(i64 %2908, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1376, i64 0, i64 0), i32 signext undef)
-  %2909 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2910 = lshr i120 %2909, 78
-  %2911 = trunc i120 %2910 to i64
-  %2912 = and i64 %2911, 536870911
-  call fastcc void @transparent_crc(i64 %2912, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1377, i64 0, i64 0), i32 signext undef)
-  %2913 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2914 = shl i120 %2913, 42
-  %2915 = ashr i120 %2914, 104
-  %2916 = shl nsw i120 %2915, 32
-  %2917 = trunc i120 %2916 to i64
-  %2918 = ashr exact i64 %2917, 32
-  call fastcc void @transparent_crc(i64 %2918, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1378, i64 0, i64 0), i32 signext undef)
-  %2919 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2920 = shl i120 %2919, 58
-  %2921 = ashr i120 %2920, 105
-  %2922 = shl nsw i120 %2921, 32
+  call fastcc void @transparent_crc(i64 %2891, ptr @.str.1376, i32 signext undef)
+  %2892 = load i120, ptr @g_2266, align 8
+  %2893 = lshr i120 %2892, 78
+  %2894 = trunc i120 %2893 to i64
+  %2895 = and i64 %2894, 536870911
+  call fastcc void @transparent_crc(i64 %2895, ptr @.str.1377, i32 signext undef)
+  %2896 = load i120, ptr @g_2266, align 8
+  %2897 = shl i120 %2896, 42
+  %2898 = ashr i120 %2897, 104
+  %2899 = shl nsw i120 %2898, 32
+  %2900 = trunc i120 %2899 to i64
+  %2901 = ashr exact i64 %2900, 32
+  call fastcc void @transparent_crc(i64 %2901, ptr @.str.1378, i32 signext undef)
+  %2902 = load volatile i120, ptr @g_2266, align 8
+  %2903 = shl i120 %2902, 58
+  %2904 = ashr i120 %2903, 105
+  %2905 = shl nsw i120 %2904, 32
+  %2906 = trunc i120 %2905 to i64
+  %2907 = ashr exact i64 %2906, 32
+  call fastcc void @transparent_crc(i64 %2907, ptr @.str.1379, i32 signext undef)
+  %2908 = load volatile i120, ptr @g_2266, align 8
+  %2909 = lshr i120 %2908, 41
+  %2910 = trunc i120 %2909 to i64
+  %2911 = and i64 %2910, 63
+  call fastcc void @transparent_crc(i64 %2911, ptr @.str.1380, i32 signext undef)
+  %2912 = load i120, ptr @g_2266, align 8
+  %2913 = lshr i120 %2912, 19
+  %2914 = trunc i120 %2913 to i64
+  %2915 = and i64 %2914, 4194303
+  call fastcc void @transparent_crc(i64 %2915, ptr @.str.1381, i32 signext undef)
+  %2916 = load i120, ptr @g_2266, align 8
+  %2917 = shl i120 %2916, 101
+  %2918 = ashr exact i120 %2917, 69
+  %2919 = trunc i120 %2918 to i64
+  %2920 = ashr exact i64 %2919, 32
+  call fastcc void @transparent_crc(i64 %2920, ptr @.str.1382, i32 signext undef)
+  %2921 = load i120, ptr @g_2267, align 8
+  %2922 = lshr i120 %2921, 107
   %2923 = trunc i120 %2922 to i64
-  %2924 = ashr exact i64 %2923, 32
-  call fastcc void @transparent_crc(i64 %2924, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1379, i64 0, i64 0), i32 signext undef)
-  %2925 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2926 = lshr i120 %2925, 41
-  %2927 = trunc i120 %2926 to i64
-  %2928 = and i64 %2927, 63
-  call fastcc void @transparent_crc(i64 %2928, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1380, i64 0, i64 0), i32 signext undef)
-  %2929 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2930 = lshr i120 %2929, 19
-  %2931 = trunc i120 %2930 to i64
-  %2932 = and i64 %2931, 4194303
-  call fastcc void @transparent_crc(i64 %2932, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1381, i64 0, i64 0), i32 signext undef)
-  %2933 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2266 to i120*), align 8
-  %2934 = shl i120 %2933, 101
-  %2935 = ashr exact i120 %2934, 69
-  %2936 = trunc i120 %2935 to i64
-  %2937 = ashr exact i64 %2936, 32
-  call fastcc void @transparent_crc(i64 %2937, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1382, i64 0, i64 0), i32 signext undef)
-  %2938 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2267 to i120*), align 8
-  %2939 = lshr i120 %2938, 107
-  %2940 = trunc i120 %2939 to i64
-  call fastcc void @transparent_crc(i64 %2940, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1383, i64 0, i64 0), i32 signext undef)
-  %2941 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2267 to i120*), align 8
-  %2942 = lshr i120 %2941, 78
-  %2943 = trunc i120 %2942 to i64
-  %2944 = and i64 %2943, 536870911
-  call fastcc void @transparent_crc(i64 %2944, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1384, i64 0, i64 0), i32 signext undef)
-  %2945 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2267 to i120*), align 8
-  %2946 = shl i120 %2945, 42
-  %2947 = ashr i120 %2946, 104
-  %2948 = shl nsw i120 %2947, 32
-  %2949 = trunc i120 %2948 to i64
-  %2950 = ashr exact i64 %2949, 32
-  call fastcc void @transparent_crc(i64 %2950, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1385, i64 0, i64 0), i32 signext undef)
-  %2951 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2267 to i120*), align 8
-  %2952 = shl i120 %2951, 58
-  %2953 = ashr i120 %2952, 105
-  %2954 = shl nsw i120 %2953, 32
+  call fastcc void @transparent_crc(i64 %2923, ptr @.str.1383, i32 signext undef)
+  %2924 = load i120, ptr @g_2267, align 8
+  %2925 = lshr i120 %2924, 78
+  %2926 = trunc i120 %2925 to i64
+  %2927 = and i64 %2926, 536870911
+  call fastcc void @transparent_crc(i64 %2927, ptr @.str.1384, i32 signext undef)
+  %2928 = load i120, ptr @g_2267, align 8
+  %2929 = shl i120 %2928, 42
+  %2930 = ashr i120 %2929, 104
+  %2931 = shl nsw i120 %2930, 32
+  %2932 = trunc i120 %2931 to i64
+  %2933 = ashr exact i64 %2932, 32
+  call fastcc void @transparent_crc(i64 %2933, ptr @.str.1385, i32 signext undef)
+  %2934 = load volatile i120, ptr @g_2267, align 8
+  %2935 = shl i120 %2934, 58
+  %2936 = ashr i120 %2935, 105
+  %2937 = shl nsw i120 %2936, 32
+  %2938 = trunc i120 %2937 to i64
+  %2939 = ashr exact i64 %2938, 32
+  call fastcc void @transparent_crc(i64 %2939, ptr @.str.1386, i32 signext undef)
+  %2940 = load volatile i120, ptr @g_2267, align 8
+  %2941 = lshr i120 %2940, 41
+  %2942 = trunc i120 %2941 to i64
+  %2943 = and i64 %2942, 63
+  call fastcc void @transparent_crc(i64 %2943, ptr @.str.1387, i32 signext undef)
+  %2944 = load i120, ptr @g_2267, align 8
+  %2945 = lshr i120 %2944, 19
+  %2946 = trunc i120 %2945 to i64
+  %2947 = and i64 %2946, 4194303
+  call fastcc void @transparent_crc(i64 %2947, ptr @.str.1388, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1402, i32 signext undef)
+  %2948 = load i120, ptr @g_2269, align 8
+  %2949 = shl i120 %2948, 101
+  %2950 = ashr exact i120 %2949, 69
+  %2951 = trunc i120 %2950 to i64
+  %2952 = ashr exact i64 %2951, 32
+  call fastcc void @transparent_crc(i64 %2952, ptr @.str.1403, i32 signext undef)
+  %2953 = load i120, ptr @g_2270, align 8
+  %2954 = lshr i120 %2953, 107
   %2955 = trunc i120 %2954 to i64
-  %2956 = ashr exact i64 %2955, 32
-  call fastcc void @transparent_crc(i64 %2956, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1386, i64 0, i64 0), i32 signext undef)
-  %2957 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2267 to i120*), align 8
-  %2958 = lshr i120 %2957, 41
-  %2959 = trunc i120 %2958 to i64
-  %2960 = and i64 %2959, 63
-  call fastcc void @transparent_crc(i64 %2960, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1387, i64 0, i64 0), i32 signext undef)
-  %2961 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2267 to i120*), align 8
-  %2962 = lshr i120 %2961, 19
-  %2963 = trunc i120 %2962 to i64
-  %2964 = and i64 %2963, 4194303
-  call fastcc void @transparent_crc(i64 %2964, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1388, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1402, i64 0, i64 0), i32 signext undef)
-  %2965 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2269 to i120*), align 8
-  %2966 = shl i120 %2965, 101
-  %2967 = ashr exact i120 %2966, 69
-  %2968 = trunc i120 %2967 to i64
-  %2969 = ashr exact i64 %2968, 32
-  call fastcc void @transparent_crc(i64 %2969, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1403, i64 0, i64 0), i32 signext undef)
-  %2970 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2270 to i120*), align 8
-  %2971 = lshr i120 %2970, 107
-  %2972 = trunc i120 %2971 to i64
-  call fastcc void @transparent_crc(i64 %2972, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1404, i64 0, i64 0), i32 signext undef)
-  %2973 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2270 to i120*), align 8
-  %2974 = lshr i120 %2973, 78
-  %2975 = trunc i120 %2974 to i64
-  %2976 = and i64 %2975, 536870911
-  call fastcc void @transparent_crc(i64 %2976, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1405, i64 0, i64 0), i32 signext undef)
-  %2977 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2270 to i120*), align 8
-  %2978 = shl i120 %2977, 42
-  %2979 = ashr i120 %2978, 104
-  %2980 = shl nsw i120 %2979, 32
-  %2981 = trunc i120 %2980 to i64
-  %2982 = ashr exact i64 %2981, 32
-  call fastcc void @transparent_crc(i64 %2982, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1406, i64 0, i64 0), i32 signext undef)
-  %2983 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2270 to i120*), align 8
-  %2984 = shl i120 %2983, 58
-  %2985 = ashr i120 %2984, 105
-  %2986 = shl nsw i120 %2985, 32
-  %2987 = trunc i120 %2986 to i64
-  %2988 = ashr exact i64 %2987, 32
-  call fastcc void @transparent_crc(i64 %2988, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1407, i64 0, i64 0), i32 signext undef)
-  %2989 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2270 to i120*), align 8
-  %2990 = lshr i120 %2989, 41
+  call fastcc void @transparent_crc(i64 %2955, ptr @.str.1404, i32 signext undef)
+  %2956 = load i120, ptr @g_2270, align 8
+  %2957 = lshr i120 %2956, 78
+  %2958 = trunc i120 %2957 to i64
+  %2959 = and i64 %2958, 536870911
+  call fastcc void @transparent_crc(i64 %2959, ptr @.str.1405, i32 signext undef)
+  %2960 = load i120, ptr @g_2270, align 8
+  %2961 = shl i120 %2960, 42
+  %2962 = ashr i120 %2961, 104
+  %2963 = shl nsw i120 %2962, 32
+  %2964 = trunc i120 %2963 to i64
+  %2965 = ashr exact i64 %2964, 32
+  call fastcc void @transparent_crc(i64 %2965, ptr @.str.1406, i32 signext undef)
+  %2966 = load volatile i120, ptr @g_2270, align 8
+  %2967 = shl i120 %2966, 58
+  %2968 = ashr i120 %2967, 105
+  %2969 = shl nsw i120 %2968, 32
+  %2970 = trunc i120 %2969 to i64
+  %2971 = ashr exact i64 %2970, 32
+  call fastcc void @transparent_crc(i64 %2971, ptr @.str.1407, i32 signext undef)
+  %2972 = load volatile i120, ptr @g_2270, align 8
+  %2973 = lshr i120 %2972, 41
+  %2974 = trunc i120 %2973 to i64
+  %2975 = and i64 %2974, 63
+  call fastcc void @transparent_crc(i64 %2975, ptr @.str.1408, i32 signext undef)
+  %2976 = load volatile i120, ptr undef, align 1
+  %2977 = shl i120 %2976, 58
+  %2978 = ashr i120 %2977, 105
+  %2979 = shl nsw i120 %2978, 32
+  %2980 = trunc i120 %2979 to i64
+  %2981 = ashr exact i64 %2980, 32
+  call fastcc void @transparent_crc(i64 %2981, ptr @.str.1414, i32 signext 0)
+  %2982 = load volatile i120, ptr undef, align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1432, i32 signext undef)
+  %2983 = load i120, ptr @g_2274, align 8
+  %2984 = lshr i120 %2983, 78
+  %2985 = trunc i120 %2984 to i64
+  %2986 = and i64 %2985, 536870911
+  call fastcc void @transparent_crc(i64 %2986, ptr @.str.1433, i32 signext undef)
+  %2987 = load i120, ptr @g_2274, align 8
+  %2988 = shl i120 %2987, 42
+  %2989 = ashr i120 %2988, 104
+  %2990 = shl nsw i120 %2989, 32
   %2991 = trunc i120 %2990 to i64
-  %2992 = and i64 %2991, 63
-  call fastcc void @transparent_crc(i64 %2992, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1408, i64 0, i64 0), i32 signext undef)
-  %2993 = load volatile i120, i120* undef, align 1
+  %2992 = ashr exact i64 %2991, 32
+  call fastcc void @transparent_crc(i64 %2992, ptr @.str.1434, i32 signext undef)
+  %2993 = load volatile i120, ptr @g_2274, align 8
   %2994 = shl i120 %2993, 58
   %2995 = ashr i120 %2994, 105
   %2996 = shl nsw i120 %2995, 32
   %2997 = trunc i120 %2996 to i64
   %2998 = ashr exact i64 %2997, 32
-  call fastcc void @transparent_crc(i64 %2998, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1414, i64 0, i64 0), i32 signext 0)
-  %2999 = load volatile i120, i120* undef, align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1432, i64 0, i64 0), i32 signext undef)
-  %3000 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2274 to i120*), align 8
-  %3001 = lshr i120 %3000, 78
+  call fastcc void @transparent_crc(i64 %2998, ptr @.str.1435, i32 signext undef)
+  %2999 = load volatile i120, ptr @g_2274, align 8
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1436, i32 signext undef)
+  %3000 = load i120, ptr @g_2274, align 8
+  %3001 = lshr i120 %3000, 19
   %3002 = trunc i120 %3001 to i64
-  %3003 = and i64 %3002, 536870911
-  call fastcc void @transparent_crc(i64 %3003, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1433, i64 0, i64 0), i32 signext undef)
-  %3004 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2274 to i120*), align 8
-  %3005 = shl i120 %3004, 42
-  %3006 = ashr i120 %3005, 104
-  %3007 = shl nsw i120 %3006, 32
-  %3008 = trunc i120 %3007 to i64
-  %3009 = ashr exact i64 %3008, 32
-  call fastcc void @transparent_crc(i64 %3009, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1434, i64 0, i64 0), i32 signext undef)
-  %3010 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2274 to i120*), align 8
-  %3011 = shl i120 %3010, 58
-  %3012 = ashr i120 %3011, 105
-  %3013 = shl nsw i120 %3012, 32
-  %3014 = trunc i120 %3013 to i64
-  %3015 = ashr exact i64 %3014, 32
-  call fastcc void @transparent_crc(i64 %3015, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1435, i64 0, i64 0), i32 signext undef)
-  %3016 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2274 to i120*), align 8
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1436, i64 0, i64 0), i32 signext undef)
-  %3017 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2274 to i120*), align 8
-  %3018 = lshr i120 %3017, 19
-  %3019 = trunc i120 %3018 to i64
-  %3020 = and i64 %3019, 4194303
-  call fastcc void @transparent_crc(i64 %3020, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1437, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1438, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1439, i64 0, i64 0), i32 signext undef)
-  %3021 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2275 to i120*), align 8
-  %3022 = lshr i120 %3021, 78
-  %3023 = trunc i120 %3022 to i64
-  %3024 = and i64 %3023, 536870911
-  call fastcc void @transparent_crc(i64 %3024, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1440, i64 0, i64 0), i32 signext undef)
-  %3025 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2275 to i120*), align 8
-  %3026 = shl i120 %3025, 42
-  %3027 = ashr i120 %3026, 104
-  %3028 = shl nsw i120 %3027, 32
-  %3029 = trunc i120 %3028 to i64
-  %3030 = ashr exact i64 %3029, 32
-  call fastcc void @transparent_crc(i64 %3030, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1441, i64 0, i64 0), i32 signext undef)
-  %3031 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2275 to i120*), align 8
-  %3032 = shl i120 %3031, 58
-  %3033 = ashr i120 %3032, 105
-  %3034 = shl nsw i120 %3033, 32
-  %3035 = trunc i120 %3034 to i64
-  %3036 = ashr exact i64 %3035, 32
-  call fastcc void @transparent_crc(i64 %3036, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1442, i64 0, i64 0), i32 signext undef)
-  %3037 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2275 to i120*), align 8
-  %3038 = lshr i120 %3037, 41
-  %3039 = trunc i120 %3038 to i64
-  %3040 = and i64 %3039, 63
-  call fastcc void @transparent_crc(i64 %3040, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1443, i64 0, i64 0), i32 signext undef)
-  %3041 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2275 to i120*), align 8
-  %3042 = lshr i120 %3041, 19
-  %3043 = trunc i120 %3042 to i64
-  %3044 = and i64 %3043, 4194303
-  call fastcc void @transparent_crc(i64 %3044, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1444, i64 0, i64 0), i32 signext undef)
-  %3045 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_2454, i64 0, i32 7, i32 0) to i80*), align 8
-  %3046 = ashr i80 %3045, 73
-  %3047 = shl nsw i80 %3046, 32
-  %3048 = trunc i80 %3047 to i64
-  %3049 = ashr exact i64 %3048, 32
-  call fastcc void @transparent_crc(i64 %3049, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1534, i64 0, i64 0), i32 signext undef)
-  %3050 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_2454, i64 0, i32 7, i32 0) to i80*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1635, i64 0, i64 0), i32 signext 0)
-  %3051 = load i16, i16* undef, align 2, !tbaa !21
-  %3052 = sext i16 %3051 to i64
-  call fastcc void @transparent_crc(i64 %3052, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1635, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1693, i64 0, i64 0), i32 signext undef)
-  %3053 = load volatile i128, i128* undef, align 2
-  %3054 = shl i128 %3053, 80
-  %3055 = ashr i128 %3054, 110
-  %3056 = shl nsw i128 %3055, 32
-  %3057 = trunc i128 %3056 to i64
-  %3058 = ashr exact i64 %3057, 32
-  call fastcc void @transparent_crc(i64 %3058, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1694, i64 0, i64 0), i32 signext undef)
-  %3059 = load volatile i128, i128* undef, align 2
-  %3060 = lshr i128 %3059, 28
-  %3061 = trunc i128 %3060 to i64
-  %3062 = and i64 %3061, 3
-  call fastcc void @transparent_crc(i64 %3062, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1695, i64 0, i64 0), i32 signext undef)
-  %3063 = load volatile i128, i128* undef, align 2
-  %3064 = shl i128 %3063, 100
-  %3065 = ashr i128 %3064, 107
-  %3066 = shl nsw i128 %3065, 32
-  %3067 = trunc i128 %3066 to i64
-  %3068 = ashr exact i64 %3067, 32
-  call fastcc void @transparent_crc(i64 %3068, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1696, i64 0, i64 0), i32 signext undef)
-  %3069 = getelementptr inbounds [5 x %5], [5 x %5]* bitcast (<{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>* @g_2928 to [5 x %5]*), i64 0, i64 0, i32 5
-  %3070 = bitcast %4* %3069 to i80*
-  %3071 = load volatile i80, i80* %3070, align 2
-  %3072 = lshr i80 %3071, 57
-  %3073 = trunc i80 %3072 to i64
-  call fastcc void @transparent_crc(i64 %3073, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1697, i64 0, i64 0), i32 signext undef)
-  %3074 = load volatile i80, i80* %3070, align 2
-  %3075 = shl i80 %3074, 23
-  %3076 = ashr i80 %3075, 64
-  %3077 = shl nsw i80 %3076, 32
-  %3078 = trunc i80 %3077 to i64
-  %3079 = ashr exact i64 %3078, 32
-  call fastcc void @transparent_crc(i64 %3079, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1698, i64 0, i64 0), i32 signext undef)
-  %3080 = load volatile i80, i80* %3070, align 2
-  %3081 = shl i80 %3080, 39
-  %3082 = ashr i80 %3081, 62
-  %3083 = shl nsw i80 %3082, 32
-  %3084 = trunc i80 %3083 to i64
-  %3085 = ashr exact i64 %3084, 32
-  call fastcc void @transparent_crc(i64 %3085, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1699, i64 0, i64 0), i32 signext undef)
-  %3086 = load volatile i80, i80* %3070, align 2
-  %3087 = shl i80 %3086, 57
-  %3088 = ashr i80 %3087, 58
-  %3089 = shl nsw i80 %3088, 32
-  %3090 = trunc i80 %3089 to i64
-  %3091 = ashr exact i64 %3090, 32
-  call fastcc void @transparent_crc(i64 %3091, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1700, i64 0, i64 0), i32 signext undef)
-  %3092 = load i80, i80* undef, align 2
-  %3093 = lshr i80 %3092, 49
-  %3094 = trunc i80 %3093 to i64
-  call fastcc void @transparent_crc(i64 %3094, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1701, i64 0, i64 0), i32 signext undef)
-  %3095 = load volatile i80, i80* undef, align 2
-  %3096 = lshr i80 %3095, 24
-  %3097 = trunc i80 %3096 to i64
-  %3098 = and i64 %3097, 33554431
-  call fastcc void @transparent_crc(i64 %3098, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1702, i64 0, i64 0), i32 signext undef)
-  %3099 = load i80, i80* undef, align 2
-  %3100 = shl i80 %3099, 56
-  %3101 = ashr i80 %3100, 68
-  %3102 = shl nsw i80 %3101, 32
-  %3103 = trunc i80 %3102 to i64
-  %3104 = ashr exact i64 %3103, 32
-  call fastcc void @transparent_crc(i64 %3104, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1703, i64 0, i64 0), i32 signext undef)
-  %3105 = load i80, i80* undef, align 2
-  %3106 = lshr i80 %3105, 11
-  %3107 = trunc i80 %3106 to i64
-  %3108 = and i64 %3107, 1
-  call fastcc void @transparent_crc(i64 %3108, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1704, i64 0, i64 0), i32 signext undef)
-  %3109 = load volatile i80, i80* undef, align 2
-  %3110 = shl i80 %3109, 69
-  %3111 = ashr i80 %3110, 72
-  %3112 = shl nsw i80 %3111, 32
-  %3113 = trunc i80 %3112 to i64
-  %3114 = ashr exact i64 %3113, 32
-  call fastcc void @transparent_crc(i64 %3114, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1705, i64 0, i64 0), i32 signext undef)
-  %3115 = load i16, i16* undef, align 2, !tbaa !50
-  %3116 = sext i16 %3115 to i64
-  call fastcc void @transparent_crc(i64 %3116, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1706, i64 0, i64 0), i32 signext undef)
-  %3117 = load i16, i16* undef, align 2, !tbaa !51
-  %3118 = zext i16 %3117 to i64
-  call fastcc void @transparent_crc(i64 %3118, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1707, i64 0, i64 0), i32 signext undef)
-  %3119 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 0), align 2, !tbaa !24
-  %3120 = sext i16 %3119 to i64
-  call fastcc void @transparent_crc(i64 %3120, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1708, i64 0, i64 0), i32 signext undef)
-  %3121 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 1), align 2, !tbaa !52
-  %3122 = sext i8 %3121 to i64
-  call fastcc void @transparent_crc(i64 %3122, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1709, i64 0, i64 0), i32 signext undef)
-  %3123 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3124 = lshr i120 %3123, 107
-  %3125 = trunc i120 %3124 to i64
-  call fastcc void @transparent_crc(i64 %3125, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1710, i64 0, i64 0), i32 signext undef)
-  %3126 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3127 = lshr i120 %3126, 78
-  %3128 = trunc i120 %3127 to i64
-  %3129 = and i64 %3128, 536870911
-  call fastcc void @transparent_crc(i64 %3129, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1711, i64 0, i64 0), i32 signext undef)
-  %3130 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3131 = shl i120 %3130, 42
-  %3132 = ashr i120 %3131, 104
-  %3133 = shl nsw i120 %3132, 32
-  %3134 = trunc i120 %3133 to i64
-  %3135 = ashr exact i64 %3134, 32
-  call fastcc void @transparent_crc(i64 %3135, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1712, i64 0, i64 0), i32 signext undef)
-  %3136 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3137 = shl i120 %3136, 58
-  %3138 = ashr i120 %3137, 105
-  %3139 = shl nsw i120 %3138, 32
-  %3140 = trunc i120 %3139 to i64
-  %3141 = ashr exact i64 %3140, 32
-  call fastcc void @transparent_crc(i64 %3141, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1713, i64 0, i64 0), i32 signext undef)
-  %3142 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3143 = lshr i120 %3142, 41
-  %3144 = trunc i120 %3143 to i64
-  %3145 = and i64 %3144, 63
-  call fastcc void @transparent_crc(i64 %3145, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1714, i64 0, i64 0), i32 signext undef)
-  %3146 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3147 = lshr i120 %3146, 19
-  %3148 = trunc i120 %3147 to i64
-  %3149 = and i64 %3148, 4194303
-  call fastcc void @transparent_crc(i64 %3149, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1715, i64 0, i64 0), i32 signext undef)
-  %3150 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 2, i32 0) to i120*), align 1
-  %3151 = shl i120 %3150, 101
-  %3152 = ashr exact i120 %3151, 69
-  %3153 = trunc i120 %3152 to i64
-  %3154 = ashr exact i64 %3153, 32
-  call fastcc void @transparent_crc(i64 %3154, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1716, i64 0, i64 0), i32 signext undef)
-  %3155 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %3156 = zext i8 %3155 to i64
-  call fastcc void @transparent_crc(i64 %3156, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1717, i64 0, i64 0), i32 signext undef)
-  %3157 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %3158 = sext i8 %3157 to i64
-  call fastcc void @transparent_crc(i64 %3158, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1718, i64 0, i64 0), i32 signext undef)
-  %3159 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %3160 = sext i16 %3159 to i64
-  call fastcc void @transparent_crc(i64 %3160, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1719, i64 0, i64 0), i32 signext undef)
-  %3161 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3161, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1720, i64 0, i64 0), i32 signext undef)
-  %3162 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %3163 = sext i32 %3162 to i64
-  call fastcc void @transparent_crc(i64 %3163, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1721, i64 0, i64 0), i32 signext undef)
-  %3164 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 4, i32 0) to i128*), align 2
-  %3165 = ashr i128 %3164, 99
+  %3003 = and i64 %3002, 4194303
+  call fastcc void @transparent_crc(i64 %3003, ptr @.str.1437, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1438, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1439, i32 signext undef)
+  %3004 = load i120, ptr @g_2275, align 8
+  %3005 = lshr i120 %3004, 78
+  %3006 = trunc i120 %3005 to i64
+  %3007 = and i64 %3006, 536870911
+  call fastcc void @transparent_crc(i64 %3007, ptr @.str.1440, i32 signext undef)
+  %3008 = load i120, ptr @g_2275, align 8
+  %3009 = shl i120 %3008, 42
+  %3010 = ashr i120 %3009, 104
+  %3011 = shl nsw i120 %3010, 32
+  %3012 = trunc i120 %3011 to i64
+  %3013 = ashr exact i64 %3012, 32
+  call fastcc void @transparent_crc(i64 %3013, ptr @.str.1441, i32 signext undef)
+  %3014 = load volatile i120, ptr @g_2275, align 8
+  %3015 = shl i120 %3014, 58
+  %3016 = ashr i120 %3015, 105
+  %3017 = shl nsw i120 %3016, 32
+  %3018 = trunc i120 %3017 to i64
+  %3019 = ashr exact i64 %3018, 32
+  call fastcc void @transparent_crc(i64 %3019, ptr @.str.1442, i32 signext undef)
+  %3020 = load volatile i120, ptr @g_2275, align 8
+  %3021 = lshr i120 %3020, 41
+  %3022 = trunc i120 %3021 to i64
+  %3023 = and i64 %3022, 63
+  call fastcc void @transparent_crc(i64 %3023, ptr @.str.1443, i32 signext undef)
+  %3024 = load i120, ptr @g_2275, align 8
+  %3025 = lshr i120 %3024, 19
+  %3026 = trunc i120 %3025 to i64
+  %3027 = and i64 %3026, 4194303
+  call fastcc void @transparent_crc(i64 %3027, ptr @.str.1444, i32 signext undef)
+  %3028 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_2454, i64 0, i32 7, i32 0), align 8
+  %3029 = ashr i80 %3028, 73
+  %3030 = shl nsw i80 %3029, 32
+  %3031 = trunc i80 %3030 to i64
+  %3032 = ashr exact i64 %3031, 32
+  call fastcc void @transparent_crc(i64 %3032, ptr @.str.1534, i32 signext undef)
+  %3033 = load volatile i80, ptr getelementptr inbounds ({ i32, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i32, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_2454, i64 0, i32 7, i32 0), align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1635, i32 signext 0)
+  %3034 = load i16, ptr undef, align 2, !tbaa !21
+  %3035 = sext i16 %3034 to i64
+  call fastcc void @transparent_crc(i64 %3035, ptr @.str.1635, i32 signext 0)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1693, i32 signext undef)
+  %3036 = load volatile i128, ptr undef, align 2
+  %3037 = shl i128 %3036, 80
+  %3038 = ashr i128 %3037, 110
+  %3039 = shl nsw i128 %3038, 32
+  %3040 = trunc i128 %3039 to i64
+  %3041 = ashr exact i64 %3040, 32
+  call fastcc void @transparent_crc(i64 %3041, ptr @.str.1694, i32 signext undef)
+  %3042 = load volatile i128, ptr undef, align 2
+  %3043 = lshr i128 %3042, 28
+  %3044 = trunc i128 %3043 to i64
+  %3045 = and i64 %3044, 3
+  call fastcc void @transparent_crc(i64 %3045, ptr @.str.1695, i32 signext undef)
+  %3046 = load volatile i128, ptr undef, align 2
+  %3047 = shl i128 %3046, 100
+  %3048 = ashr i128 %3047, 107
+  %3049 = shl nsw i128 %3048, 32
+  %3050 = trunc i128 %3049 to i64
+  %3051 = ashr exact i64 %3050, 32
+  call fastcc void @transparent_crc(i64 %3051, ptr @.str.1696, i32 signext undef)
+  %3052 = getelementptr inbounds [5 x %5], ptr bitcast (<{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>* @g_2928 to ptr), i64 0, i64 0, i32 5
+  %3053 = load volatile i80, ptr %3052, align 2
+  %3054 = lshr i80 %3053, 57
+  %3055 = trunc i80 %3054 to i64
+  call fastcc void @transparent_crc(i64 %3055, ptr @.str.1697, i32 signext undef)
+  %3056 = load volatile i80, ptr %3052, align 2
+  %3057 = shl i80 %3056, 23
+  %3058 = ashr i80 %3057, 64
+  %3059 = shl nsw i80 %3058, 32
+  %3060 = trunc i80 %3059 to i64
+  %3061 = ashr exact i64 %3060, 32
+  call fastcc void @transparent_crc(i64 %3061, ptr @.str.1698, i32 signext undef)
+  %3062 = load volatile i80, ptr %3052, align 2
+  %3063 = shl i80 %3062, 39
+  %3064 = ashr i80 %3063, 62
+  %3065 = shl nsw i80 %3064, 32
+  %3066 = trunc i80 %3065 to i64
+  %3067 = ashr exact i64 %3066, 32
+  call fastcc void @transparent_crc(i64 %3067, ptr @.str.1699, i32 signext undef)
+  %3068 = load volatile i80, ptr %3052, align 2
+  %3069 = shl i80 %3068, 57
+  %3070 = ashr i80 %3069, 58
+  %3071 = shl nsw i80 %3070, 32
+  %3072 = trunc i80 %3071 to i64
+  %3073 = ashr exact i64 %3072, 32
+  call fastcc void @transparent_crc(i64 %3073, ptr @.str.1700, i32 signext undef)
+  %3074 = load i80, ptr undef, align 2
+  %3075 = lshr i80 %3074, 49
+  %3076 = trunc i80 %3075 to i64
+  call fastcc void @transparent_crc(i64 %3076, ptr @.str.1701, i32 signext undef)
+  %3077 = load volatile i80, ptr undef, align 2
+  %3078 = lshr i80 %3077, 24
+  %3079 = trunc i80 %3078 to i64
+  %3080 = and i64 %3079, 33554431
+  call fastcc void @transparent_crc(i64 %3080, ptr @.str.1702, i32 signext undef)
+  %3081 = load i80, ptr undef, align 2
+  %3082 = shl i80 %3081, 56
+  %3083 = ashr i80 %3082, 68
+  %3084 = shl nsw i80 %3083, 32
+  %3085 = trunc i80 %3084 to i64
+  %3086 = ashr exact i64 %3085, 32
+  call fastcc void @transparent_crc(i64 %3086, ptr @.str.1703, i32 signext undef)
+  %3087 = load i80, ptr undef, align 2
+  %3088 = lshr i80 %3087, 11
+  %3089 = trunc i80 %3088 to i64
+  %3090 = and i64 %3089, 1
+  call fastcc void @transparent_crc(i64 %3090, ptr @.str.1704, i32 signext undef)
+  %3091 = load volatile i80, ptr undef, align 2
+  %3092 = shl i80 %3091, 69
+  %3093 = ashr i80 %3092, 72
+  %3094 = shl nsw i80 %3093, 32
+  %3095 = trunc i80 %3094 to i64
+  %3096 = ashr exact i64 %3095, 32
+  call fastcc void @transparent_crc(i64 %3096, ptr @.str.1705, i32 signext undef)
+  %3097 = load i16, ptr undef, align 2, !tbaa !50
+  %3098 = sext i16 %3097 to i64
+  call fastcc void @transparent_crc(i64 %3098, ptr @.str.1706, i32 signext undef)
+  %3099 = load i16, ptr undef, align 2, !tbaa !51
+  %3100 = zext i16 %3099 to i64
+  call fastcc void @transparent_crc(i64 %3100, ptr @.str.1707, i32 signext undef)
+  %3101 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 0), align 2, !tbaa !24
+  %3102 = sext i16 %3101 to i64
+  call fastcc void @transparent_crc(i64 %3102, ptr @.str.1708, i32 signext undef)
+  %3103 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 1), align 2, !tbaa !52
+  %3104 = sext i8 %3103 to i64
+  call fastcc void @transparent_crc(i64 %3104, ptr @.str.1709, i32 signext undef)
+  %3105 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3106 = lshr i120 %3105, 107
+  %3107 = trunc i120 %3106 to i64
+  call fastcc void @transparent_crc(i64 %3107, ptr @.str.1710, i32 signext undef)
+  %3108 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3109 = lshr i120 %3108, 78
+  %3110 = trunc i120 %3109 to i64
+  %3111 = and i64 %3110, 536870911
+  call fastcc void @transparent_crc(i64 %3111, ptr @.str.1711, i32 signext undef)
+  %3112 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3113 = shl i120 %3112, 42
+  %3114 = ashr i120 %3113, 104
+  %3115 = shl nsw i120 %3114, 32
+  %3116 = trunc i120 %3115 to i64
+  %3117 = ashr exact i64 %3116, 32
+  call fastcc void @transparent_crc(i64 %3117, ptr @.str.1712, i32 signext undef)
+  %3118 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3119 = shl i120 %3118, 58
+  %3120 = ashr i120 %3119, 105
+  %3121 = shl nsw i120 %3120, 32
+  %3122 = trunc i120 %3121 to i64
+  %3123 = ashr exact i64 %3122, 32
+  call fastcc void @transparent_crc(i64 %3123, ptr @.str.1713, i32 signext undef)
+  %3124 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3125 = lshr i120 %3124, 41
+  %3126 = trunc i120 %3125 to i64
+  %3127 = and i64 %3126, 63
+  call fastcc void @transparent_crc(i64 %3127, ptr @.str.1714, i32 signext undef)
+  %3128 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3129 = lshr i120 %3128, 19
+  %3130 = trunc i120 %3129 to i64
+  %3131 = and i64 %3130, 4194303
+  call fastcc void @transparent_crc(i64 %3131, ptr @.str.1715, i32 signext undef)
+  %3132 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 2, i32 0), align 1
+  %3133 = shl i120 %3132, 101
+  %3134 = ashr exact i120 %3133, 69
+  %3135 = trunc i120 %3134 to i64
+  %3136 = ashr exact i64 %3135, 32
+  call fastcc void @transparent_crc(i64 %3136, ptr @.str.1716, i32 signext undef)
+  %3137 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %3138 = zext i8 %3137 to i64
+  call fastcc void @transparent_crc(i64 %3138, ptr @.str.1717, i32 signext undef)
+  %3139 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %3140 = sext i8 %3139 to i64
+  call fastcc void @transparent_crc(i64 %3140, ptr @.str.1718, i32 signext undef)
+  %3141 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %3142 = sext i16 %3141 to i64
+  call fastcc void @transparent_crc(i64 %3142, ptr @.str.1719, i32 signext undef)
+  %3143 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3143, ptr @.str.1720, i32 signext undef)
+  %3144 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %3145 = sext i32 %3144 to i64
+  call fastcc void @transparent_crc(i64 %3145, ptr @.str.1721, i32 signext undef)
+  %3146 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 4, i32 0), align 2
+  %3147 = ashr i128 %3146, 99
+  %3148 = shl nsw i128 %3147, 32
+  %3149 = trunc i128 %3148 to i64
+  %3150 = ashr exact i64 %3149, 32
+  call fastcc void @transparent_crc(i64 %3150, ptr @.str.1722, i32 signext undef)
+  %3151 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 4, i32 0), align 2
+  %3152 = shl i128 %3151, 29
+  %3153 = ashr i128 %3152, 97
+  %3154 = shl nsw i128 %3153, 32
+  %3155 = trunc i128 %3154 to i64
+  %3156 = ashr exact i64 %3155, 32
+  call fastcc void @transparent_crc(i64 %3156, ptr @.str.1723, i32 signext undef)
+  %3157 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 4, i32 0), align 2
+  %3158 = shl i128 %3157, 60
+  %3159 = ashr i128 %3158, 108
+  %3160 = shl nsw i128 %3159, 32
+  %3161 = trunc i128 %3160 to i64
+  %3162 = ashr exact i64 %3161, 32
+  call fastcc void @transparent_crc(i64 %3162, ptr @.str.1724, i32 signext undef)
+  %3163 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 4, i32 0), align 2
+  %3164 = shl i128 %3163, 80
+  %3165 = ashr i128 %3164, 110
   %3166 = shl nsw i128 %3165, 32
   %3167 = trunc i128 %3166 to i64
   %3168 = ashr exact i64 %3167, 32
-  call fastcc void @transparent_crc(i64 %3168, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1722, i64 0, i64 0), i32 signext undef)
-  %3169 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 4, i32 0) to i128*), align 2
-  %3170 = shl i128 %3169, 29
-  %3171 = ashr i128 %3170, 97
-  %3172 = shl nsw i128 %3171, 32
-  %3173 = trunc i128 %3172 to i64
-  %3174 = ashr exact i64 %3173, 32
-  call fastcc void @transparent_crc(i64 %3174, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1723, i64 0, i64 0), i32 signext undef)
-  %3175 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 4, i32 0) to i128*), align 2
-  %3176 = shl i128 %3175, 60
-  %3177 = ashr i128 %3176, 108
-  %3178 = shl nsw i128 %3177, 32
-  %3179 = trunc i128 %3178 to i64
-  %3180 = ashr exact i64 %3179, 32
-  call fastcc void @transparent_crc(i64 %3180, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1724, i64 0, i64 0), i32 signext undef)
-  %3181 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 4, i32 0) to i128*), align 2
-  %3182 = shl i128 %3181, 80
-  %3183 = ashr i128 %3182, 110
-  %3184 = shl nsw i128 %3183, 32
-  %3185 = trunc i128 %3184 to i64
-  %3186 = ashr exact i64 %3185, 32
-  call fastcc void @transparent_crc(i64 %3186, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1725, i64 0, i64 0), i32 signext undef)
-  %3187 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 4, i32 0) to i128*), align 2
-  %3188 = lshr i128 %3187, 28
-  %3189 = trunc i128 %3188 to i64
-  %3190 = and i64 %3189, 3
-  call fastcc void @transparent_crc(i64 %3190, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1726, i64 0, i64 0), i32 signext undef)
-  %3191 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 4, i32 0) to i128*), align 2
-  %3192 = shl i128 %3191, 100
-  %3193 = ashr i128 %3192, 107
-  %3194 = shl nsw i128 %3193, 32
-  %3195 = trunc i128 %3194 to i64
-  %3196 = ashr exact i64 %3195, 32
-  call fastcc void @transparent_crc(i64 %3196, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1727, i64 0, i64 0), i32 signext undef)
-  %3197 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3198 = lshr i80 %3197, 57
-  %3199 = trunc i80 %3198 to i64
-  call fastcc void @transparent_crc(i64 %3199, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1728, i64 0, i64 0), i32 signext undef)
-  %3200 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3201 = shl i80 %3200, 23
-  %3202 = ashr i80 %3201, 64
-  %3203 = shl nsw i80 %3202, 32
-  %3204 = trunc i80 %3203 to i64
-  %3205 = ashr exact i64 %3204, 32
-  call fastcc void @transparent_crc(i64 %3205, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1729, i64 0, i64 0), i32 signext undef)
-  %3206 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3207 = shl i80 %3206, 39
-  %3208 = ashr i80 %3207, 62
-  %3209 = shl nsw i80 %3208, 32
-  %3210 = trunc i80 %3209 to i64
-  %3211 = ashr exact i64 %3210, 32
-  call fastcc void @transparent_crc(i64 %3211, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1730, i64 0, i64 0), i32 signext undef)
-  %3212 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3213 = shl i80 %3212, 57
-  %3214 = ashr i80 %3213, 58
-  %3215 = shl nsw i80 %3214, 32
-  %3216 = trunc i80 %3215 to i64
-  %3217 = ashr exact i64 %3216, 32
-  call fastcc void @transparent_crc(i64 %3217, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1731, i64 0, i64 0), i32 signext undef)
-  %3218 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 1) to i80*), align 2
-  %3219 = lshr i80 %3218, 49
-  %3220 = trunc i80 %3219 to i64
-  call fastcc void @transparent_crc(i64 %3220, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1732, i64 0, i64 0), i32 signext undef)
-  %3221 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 1) to i80*), align 2
-  %3222 = lshr i80 %3221, 24
-  %3223 = trunc i80 %3222 to i64
-  %3224 = and i64 %3223, 33554431
-  call fastcc void @transparent_crc(i64 %3224, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1733, i64 0, i64 0), i32 signext undef)
-  %3225 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 1) to i80*), align 2
-  %3226 = shl i80 %3225, 56
-  %3227 = ashr i80 %3226, 68
-  %3228 = shl nsw i80 %3227, 32
-  %3229 = trunc i80 %3228 to i64
-  %3230 = ashr exact i64 %3229, 32
-  call fastcc void @transparent_crc(i64 %3230, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1734, i64 0, i64 0), i32 signext undef)
-  %3231 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 1) to i80*), align 2
-  %3232 = lshr i80 %3231, 11
-  %3233 = trunc i80 %3232 to i64
-  %3234 = and i64 %3233, 1
-  call fastcc void @transparent_crc(i64 %3234, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1735, i64 0, i64 0), i32 signext undef)
-  %3235 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 5, i32 1) to i80*), align 2
-  %3236 = shl i80 %3235, 69
-  %3237 = ashr i80 %3236, 72
-  %3238 = shl nsw i80 %3237, 32
-  %3239 = trunc i80 %3238 to i64
-  %3240 = ashr exact i64 %3239, 32
-  call fastcc void @transparent_crc(i64 %3240, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1736, i64 0, i64 0), i32 signext undef)
-  %3241 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 6), align 2, !tbaa !50
-  %3242 = sext i16 %3241 to i64
-  call fastcc void @transparent_crc(i64 %3242, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1737, i64 0, i64 0), i32 signext undef)
-  %3243 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2929, i64 0, i32 7), align 2, !tbaa !51
-  %3244 = zext i16 %3243 to i64
-  call fastcc void @transparent_crc(i64 %3244, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1738, i64 0, i64 0), i32 signext undef)
-  %3245 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 0), align 2, !tbaa !24
-  %3246 = sext i16 %3245 to i64
-  call fastcc void @transparent_crc(i64 %3246, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1739, i64 0, i64 0), i32 signext undef)
-  %3247 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 1), align 2, !tbaa !52
-  %3248 = sext i8 %3247 to i64
-  call fastcc void @transparent_crc(i64 %3248, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1740, i64 0, i64 0), i32 signext undef)
-  %3249 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3250 = lshr i120 %3249, 107
-  %3251 = trunc i120 %3250 to i64
-  call fastcc void @transparent_crc(i64 %3251, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1741, i64 0, i64 0), i32 signext undef)
-  %3252 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3253 = lshr i120 %3252, 78
-  %3254 = trunc i120 %3253 to i64
-  %3255 = and i64 %3254, 536870911
-  call fastcc void @transparent_crc(i64 %3255, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1742, i64 0, i64 0), i32 signext undef)
-  %3256 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3257 = shl i120 %3256, 42
-  %3258 = ashr i120 %3257, 104
-  %3259 = shl nsw i120 %3258, 32
-  %3260 = trunc i120 %3259 to i64
-  %3261 = ashr exact i64 %3260, 32
-  call fastcc void @transparent_crc(i64 %3261, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1743, i64 0, i64 0), i32 signext undef)
-  %3262 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3263 = shl i120 %3262, 58
-  %3264 = ashr i120 %3263, 105
-  %3265 = shl nsw i120 %3264, 32
-  %3266 = trunc i120 %3265 to i64
-  %3267 = ashr exact i64 %3266, 32
-  call fastcc void @transparent_crc(i64 %3267, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1744, i64 0, i64 0), i32 signext undef)
-  %3268 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3269 = lshr i120 %3268, 41
-  %3270 = trunc i120 %3269 to i64
-  %3271 = and i64 %3270, 63
-  call fastcc void @transparent_crc(i64 %3271, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1745, i64 0, i64 0), i32 signext undef)
-  %3272 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3273 = lshr i120 %3272, 19
-  %3274 = trunc i120 %3273 to i64
-  %3275 = and i64 %3274, 4194303
-  call fastcc void @transparent_crc(i64 %3275, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1746, i64 0, i64 0), i32 signext undef)
-  %3276 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 2, i32 0) to i120*), align 1
-  %3277 = shl i120 %3276, 101
-  %3278 = ashr exact i120 %3277, 69
-  %3279 = trunc i120 %3278 to i64
-  %3280 = ashr exact i64 %3279, 32
-  call fastcc void @transparent_crc(i64 %3280, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1747, i64 0, i64 0), i32 signext undef)
-  %3281 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %3282 = zext i8 %3281 to i64
-  call fastcc void @transparent_crc(i64 %3282, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1748, i64 0, i64 0), i32 signext undef)
-  %3283 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %3284 = sext i8 %3283 to i64
-  call fastcc void @transparent_crc(i64 %3284, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1749, i64 0, i64 0), i32 signext undef)
-  %3285 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %3286 = sext i16 %3285 to i64
-  call fastcc void @transparent_crc(i64 %3286, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1750, i64 0, i64 0), i32 signext undef)
-  %3287 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3287, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1751, i64 0, i64 0), i32 signext undef)
-  %3288 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %3289 = sext i32 %3288 to i64
-  call fastcc void @transparent_crc(i64 %3289, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1752, i64 0, i64 0), i32 signext undef)
-  %3290 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 4, i32 0) to i128*), align 2
-  %3291 = ashr i128 %3290, 99
+  call fastcc void @transparent_crc(i64 %3168, ptr @.str.1725, i32 signext undef)
+  %3169 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 4, i32 0), align 2
+  %3170 = lshr i128 %3169, 28
+  %3171 = trunc i128 %3170 to i64
+  %3172 = and i64 %3171, 3
+  call fastcc void @transparent_crc(i64 %3172, ptr @.str.1726, i32 signext undef)
+  %3173 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 4, i32 0), align 2
+  %3174 = shl i128 %3173, 100
+  %3175 = ashr i128 %3174, 107
+  %3176 = shl nsw i128 %3175, 32
+  %3177 = trunc i128 %3176 to i64
+  %3178 = ashr exact i64 %3177, 32
+  call fastcc void @transparent_crc(i64 %3178, ptr @.str.1727, i32 signext undef)
+  %3179 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 0, i32 0), align 2
+  %3180 = lshr i80 %3179, 57
+  %3181 = trunc i80 %3180 to i64
+  call fastcc void @transparent_crc(i64 %3181, ptr @.str.1728, i32 signext undef)
+  %3182 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 0, i32 0), align 2
+  %3183 = shl i80 %3182, 23
+  %3184 = ashr i80 %3183, 64
+  %3185 = shl nsw i80 %3184, 32
+  %3186 = trunc i80 %3185 to i64
+  %3187 = ashr exact i64 %3186, 32
+  call fastcc void @transparent_crc(i64 %3187, ptr @.str.1729, i32 signext undef)
+  %3188 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 0, i32 0), align 2
+  %3189 = shl i80 %3188, 39
+  %3190 = ashr i80 %3189, 62
+  %3191 = shl nsw i80 %3190, 32
+  %3192 = trunc i80 %3191 to i64
+  %3193 = ashr exact i64 %3192, 32
+  call fastcc void @transparent_crc(i64 %3193, ptr @.str.1730, i32 signext undef)
+  %3194 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 0, i32 0), align 2
+  %3195 = shl i80 %3194, 57
+  %3196 = ashr i80 %3195, 58
+  %3197 = shl nsw i80 %3196, 32
+  %3198 = trunc i80 %3197 to i64
+  %3199 = ashr exact i64 %3198, 32
+  call fastcc void @transparent_crc(i64 %3199, ptr @.str.1731, i32 signext undef)
+  %3200 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 1), align 2
+  %3201 = lshr i80 %3200, 49
+  %3202 = trunc i80 %3201 to i64
+  call fastcc void @transparent_crc(i64 %3202, ptr @.str.1732, i32 signext undef)
+  %3203 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 1), align 2
+  %3204 = lshr i80 %3203, 24
+  %3205 = trunc i80 %3204 to i64
+  %3206 = and i64 %3205, 33554431
+  call fastcc void @transparent_crc(i64 %3206, ptr @.str.1733, i32 signext undef)
+  %3207 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 1), align 2
+  %3208 = shl i80 %3207, 56
+  %3209 = ashr i80 %3208, 68
+  %3210 = shl nsw i80 %3209, 32
+  %3211 = trunc i80 %3210 to i64
+  %3212 = ashr exact i64 %3211, 32
+  call fastcc void @transparent_crc(i64 %3212, ptr @.str.1734, i32 signext undef)
+  %3213 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 1), align 2
+  %3214 = lshr i80 %3213, 11
+  %3215 = trunc i80 %3214 to i64
+  %3216 = and i64 %3215, 1
+  call fastcc void @transparent_crc(i64 %3216, ptr @.str.1735, i32 signext undef)
+  %3217 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 5, i32 1), align 2
+  %3218 = shl i80 %3217, 69
+  %3219 = ashr i80 %3218, 72
+  %3220 = shl nsw i80 %3219, 32
+  %3221 = trunc i80 %3220 to i64
+  %3222 = ashr exact i64 %3221, 32
+  call fastcc void @transparent_crc(i64 %3222, ptr @.str.1736, i32 signext undef)
+  %3223 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 6), align 2, !tbaa !50
+  %3224 = sext i16 %3223 to i64
+  call fastcc void @transparent_crc(i64 %3224, ptr @.str.1737, i32 signext undef)
+  %3225 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2929, i64 0, i32 7), align 2, !tbaa !51
+  %3226 = zext i16 %3225 to i64
+  call fastcc void @transparent_crc(i64 %3226, ptr @.str.1738, i32 signext undef)
+  %3227 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 0), align 2, !tbaa !24
+  %3228 = sext i16 %3227 to i64
+  call fastcc void @transparent_crc(i64 %3228, ptr @.str.1739, i32 signext undef)
+  %3229 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 1), align 2, !tbaa !52
+  %3230 = sext i8 %3229 to i64
+  call fastcc void @transparent_crc(i64 %3230, ptr @.str.1740, i32 signext undef)
+  %3231 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3232 = lshr i120 %3231, 107
+  %3233 = trunc i120 %3232 to i64
+  call fastcc void @transparent_crc(i64 %3233, ptr @.str.1741, i32 signext undef)
+  %3234 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3235 = lshr i120 %3234, 78
+  %3236 = trunc i120 %3235 to i64
+  %3237 = and i64 %3236, 536870911
+  call fastcc void @transparent_crc(i64 %3237, ptr @.str.1742, i32 signext undef)
+  %3238 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3239 = shl i120 %3238, 42
+  %3240 = ashr i120 %3239, 104
+  %3241 = shl nsw i120 %3240, 32
+  %3242 = trunc i120 %3241 to i64
+  %3243 = ashr exact i64 %3242, 32
+  call fastcc void @transparent_crc(i64 %3243, ptr @.str.1743, i32 signext undef)
+  %3244 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3245 = shl i120 %3244, 58
+  %3246 = ashr i120 %3245, 105
+  %3247 = shl nsw i120 %3246, 32
+  %3248 = trunc i120 %3247 to i64
+  %3249 = ashr exact i64 %3248, 32
+  call fastcc void @transparent_crc(i64 %3249, ptr @.str.1744, i32 signext undef)
+  %3250 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3251 = lshr i120 %3250, 41
+  %3252 = trunc i120 %3251 to i64
+  %3253 = and i64 %3252, 63
+  call fastcc void @transparent_crc(i64 %3253, ptr @.str.1745, i32 signext undef)
+  %3254 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3255 = lshr i120 %3254, 19
+  %3256 = trunc i120 %3255 to i64
+  %3257 = and i64 %3256, 4194303
+  call fastcc void @transparent_crc(i64 %3257, ptr @.str.1746, i32 signext undef)
+  %3258 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 2, i32 0), align 1
+  %3259 = shl i120 %3258, 101
+  %3260 = ashr exact i120 %3259, 69
+  %3261 = trunc i120 %3260 to i64
+  %3262 = ashr exact i64 %3261, 32
+  call fastcc void @transparent_crc(i64 %3262, ptr @.str.1747, i32 signext undef)
+  %3263 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %3264 = zext i8 %3263 to i64
+  call fastcc void @transparent_crc(i64 %3264, ptr @.str.1748, i32 signext undef)
+  %3265 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %3266 = sext i8 %3265 to i64
+  call fastcc void @transparent_crc(i64 %3266, ptr @.str.1749, i32 signext undef)
+  %3267 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %3268 = sext i16 %3267 to i64
+  call fastcc void @transparent_crc(i64 %3268, ptr @.str.1750, i32 signext undef)
+  %3269 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3269, ptr @.str.1751, i32 signext undef)
+  %3270 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %3271 = sext i32 %3270 to i64
+  call fastcc void @transparent_crc(i64 %3271, ptr @.str.1752, i32 signext undef)
+  %3272 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 4, i32 0), align 2
+  %3273 = ashr i128 %3272, 99
+  %3274 = shl nsw i128 %3273, 32
+  %3275 = trunc i128 %3274 to i64
+  %3276 = ashr exact i64 %3275, 32
+  call fastcc void @transparent_crc(i64 %3276, ptr @.str.1753, i32 signext undef)
+  %3277 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 4, i32 0), align 2
+  %3278 = shl i128 %3277, 29
+  %3279 = ashr i128 %3278, 97
+  %3280 = shl nsw i128 %3279, 32
+  %3281 = trunc i128 %3280 to i64
+  %3282 = ashr exact i64 %3281, 32
+  call fastcc void @transparent_crc(i64 %3282, ptr @.str.1754, i32 signext undef)
+  %3283 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 4, i32 0), align 2
+  %3284 = shl i128 %3283, 60
+  %3285 = ashr i128 %3284, 108
+  %3286 = shl nsw i128 %3285, 32
+  %3287 = trunc i128 %3286 to i64
+  %3288 = ashr exact i64 %3287, 32
+  call fastcc void @transparent_crc(i64 %3288, ptr @.str.1755, i32 signext undef)
+  %3289 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 4, i32 0), align 2
+  %3290 = shl i128 %3289, 80
+  %3291 = ashr i128 %3290, 110
   %3292 = shl nsw i128 %3291, 32
   %3293 = trunc i128 %3292 to i64
   %3294 = ashr exact i64 %3293, 32
-  call fastcc void @transparent_crc(i64 %3294, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1753, i64 0, i64 0), i32 signext undef)
-  %3295 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 4, i32 0) to i128*), align 2
-  %3296 = shl i128 %3295, 29
-  %3297 = ashr i128 %3296, 97
-  %3298 = shl nsw i128 %3297, 32
-  %3299 = trunc i128 %3298 to i64
-  %3300 = ashr exact i64 %3299, 32
-  call fastcc void @transparent_crc(i64 %3300, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1754, i64 0, i64 0), i32 signext undef)
-  %3301 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 4, i32 0) to i128*), align 2
-  %3302 = shl i128 %3301, 60
-  %3303 = ashr i128 %3302, 108
-  %3304 = shl nsw i128 %3303, 32
-  %3305 = trunc i128 %3304 to i64
-  %3306 = ashr exact i64 %3305, 32
-  call fastcc void @transparent_crc(i64 %3306, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1755, i64 0, i64 0), i32 signext undef)
-  %3307 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 4, i32 0) to i128*), align 2
-  %3308 = shl i128 %3307, 80
-  %3309 = ashr i128 %3308, 110
-  %3310 = shl nsw i128 %3309, 32
-  %3311 = trunc i128 %3310 to i64
-  %3312 = ashr exact i64 %3311, 32
-  call fastcc void @transparent_crc(i64 %3312, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1756, i64 0, i64 0), i32 signext undef)
-  %3313 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 4, i32 0) to i128*), align 2
-  %3314 = lshr i128 %3313, 28
-  %3315 = trunc i128 %3314 to i64
-  %3316 = and i64 %3315, 3
-  call fastcc void @transparent_crc(i64 %3316, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1757, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1762, i64 0, i64 0), i32 signext undef)
-  %3317 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 5, i32 1) to i80*), align 2
-  %3318 = lshr i80 %3317, 49
-  %3319 = trunc i80 %3318 to i64
-  call fastcc void @transparent_crc(i64 %3319, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1763, i64 0, i64 0), i32 signext undef)
-  %3320 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2930, i64 0, i32 5, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1775, i64 0, i64 0), i32 signext undef)
-  %3321 = load volatile i120, i120* undef, align 1
-  %3322 = lshr i120 %3321, 41
-  %3323 = trunc i120 %3322 to i64
-  %3324 = and i64 %3323, 63
-  call fastcc void @transparent_crc(i64 %3324, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1776, i64 0, i64 0), i32 signext undef)
-  %3325 = load volatile i120, i120* undef, align 1
-  %3326 = lshr i120 %3325, 19
-  %3327 = trunc i120 %3326 to i64
-  %3328 = and i64 %3327, 4194303
-  call fastcc void @transparent_crc(i64 %3328, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1777, i64 0, i64 0), i32 signext undef)
-  %3329 = load volatile i120, i120* undef, align 1
-  %3330 = shl i120 %3329, 101
-  %3331 = ashr exact i120 %3330, 69
-  %3332 = trunc i120 %3331 to i64
-  %3333 = ashr exact i64 %3332, 32
-  call fastcc void @transparent_crc(i64 %3333, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1778, i64 0, i64 0), i32 signext undef)
-  %3334 = load i8, i8* undef, align 2, !tbaa !45
-  %3335 = zext i8 %3334 to i64
-  call fastcc void @transparent_crc(i64 %3335, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1779, i64 0, i64 0), i32 signext undef)
-  %3336 = load i8, i8* undef, align 1, !tbaa !46
-  %3337 = sext i8 %3336 to i64
-  call fastcc void @transparent_crc(i64 %3337, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1780, i64 0, i64 0), i32 signext undef)
-  %3338 = load i16, i16* undef, align 2, !tbaa !47
-  %3339 = sext i16 %3338 to i64
-  call fastcc void @transparent_crc(i64 %3339, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1781, i64 0, i64 0), i32 signext undef)
-  %3340 = load i64, i64* undef, align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3340, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1782, i64 0, i64 0), i32 signext undef)
-  %3341 = load i32, i32* undef, align 2, !tbaa !49
-  %3342 = sext i32 %3341 to i64
-  call fastcc void @transparent_crc(i64 %3342, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1783, i64 0, i64 0), i32 signext undef)
-  %3343 = getelementptr inbounds [5 x [4 x [2 x %5]]], [5 x [4 x [2 x %5]]]* bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2932 to [5 x [4 x [2 x %5]]]*), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
-  %3344 = load volatile i128, i128* %3343, align 2
-  %3345 = ashr i128 %3344, 99
-  %3346 = shl nsw i128 %3345, 32
-  %3347 = trunc i128 %3346 to i64
-  %3348 = ashr exact i64 %3347, 32
-  call fastcc void @transparent_crc(i64 %3348, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1784, i64 0, i64 0), i32 signext undef)
-  %3349 = load volatile i128, i128* %3343, align 2
-  %3350 = shl i128 %3349, 29
-  %3351 = ashr i128 %3350, 97
-  %3352 = shl nsw i128 %3351, 32
-  %3353 = trunc i128 %3352 to i64
-  %3354 = ashr exact i64 %3353, 32
-  call fastcc void @transparent_crc(i64 %3354, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1785, i64 0, i64 0), i32 signext undef)
-  %3355 = load volatile i128, i128* %3343, align 2
-  %3356 = shl i128 %3355, 60
-  %3357 = ashr i128 %3356, 108
-  %3358 = shl nsw i128 %3357, 32
-  %3359 = trunc i128 %3358 to i64
-  %3360 = ashr exact i64 %3359, 32
-  call fastcc void @transparent_crc(i64 %3360, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1786, i64 0, i64 0), i32 signext undef)
-  %3361 = load volatile i128, i128* %3343, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1793, i64 0, i64 0), i32 signext undef)
-  %3362 = load i80, i80* undef, align 2
-  %3363 = lshr i80 %3362, 49
-  %3364 = trunc i80 %3363 to i64
-  call fastcc void @transparent_crc(i64 %3364, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1794, i64 0, i64 0), i32 signext undef)
-  %3365 = load volatile i80, i80* undef, align 2
-  %3366 = lshr i80 %3365, 24
-  %3367 = trunc i80 %3366 to i64
-  %3368 = and i64 %3367, 33554431
-  call fastcc void @transparent_crc(i64 %3368, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1795, i64 0, i64 0), i32 signext undef)
-  %3369 = load i80, i80* undef, align 2
-  %3370 = shl i80 %3369, 56
-  %3371 = ashr i80 %3370, 68
-  %3372 = shl nsw i80 %3371, 32
-  %3373 = trunc i80 %3372 to i64
-  %3374 = ashr exact i64 %3373, 32
-  call fastcc void @transparent_crc(i64 %3374, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1796, i64 0, i64 0), i32 signext undef)
-  %3375 = load i80, i80* undef, align 2
-  %3376 = lshr i80 %3375, 11
-  %3377 = trunc i80 %3376 to i64
-  %3378 = and i64 %3377, 1
-  call fastcc void @transparent_crc(i64 %3378, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1797, i64 0, i64 0), i32 signext undef)
-  %3379 = load volatile i80, i80* undef, align 2
-  %3380 = shl i80 %3379, 69
-  %3381 = ashr i80 %3380, 72
-  %3382 = shl nsw i80 %3381, 32
-  %3383 = trunc i80 %3382 to i64
-  %3384 = ashr exact i64 %3383, 32
-  call fastcc void @transparent_crc(i64 %3384, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1798, i64 0, i64 0), i32 signext undef)
-  %3385 = load i16, i16* undef, align 2, !tbaa !50
-  %3386 = sext i16 %3385 to i64
-  call fastcc void @transparent_crc(i64 %3386, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1799, i64 0, i64 0), i32 signext undef)
-  %3387 = load i16, i16* undef, align 2, !tbaa !51
-  %3388 = zext i16 %3387 to i64
-  call fastcc void @transparent_crc(i64 %3388, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1800, i64 0, i64 0), i32 signext undef)
-  %3389 = load i16, i16* undef, align 2, !tbaa !24
-  %3390 = sext i16 %3389 to i64
-  call fastcc void @transparent_crc(i64 %3390, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1801, i64 0, i64 0), i32 signext undef)
-  %3391 = load i8, i8* undef, align 2, !tbaa !52
-  %3392 = sext i8 %3391 to i64
-  call fastcc void @transparent_crc(i64 %3392, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1802, i64 0, i64 0), i32 signext undef)
-  %3393 = load volatile i120, i120* undef, align 1
-  %3394 = lshr i120 %3393, 107
-  %3395 = trunc i120 %3394 to i64
-  call fastcc void @transparent_crc(i64 %3395, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1803, i64 0, i64 0), i32 signext undef)
-  %3396 = load volatile i120, i120* undef, align 1
-  %3397 = lshr i120 %3396, 78
-  %3398 = trunc i120 %3397 to i64
-  %3399 = and i64 %3398, 536870911
-  call fastcc void @transparent_crc(i64 %3399, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1804, i64 0, i64 0), i32 signext undef)
-  %3400 = load volatile i120, i120* undef, align 1
-  %3401 = shl i120 %3400, 42
-  %3402 = ashr i120 %3401, 104
-  %3403 = shl nsw i120 %3402, 32
-  %3404 = trunc i120 %3403 to i64
-  %3405 = ashr exact i64 %3404, 32
-  call fastcc void @transparent_crc(i64 %3405, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1805, i64 0, i64 0), i32 signext undef)
-  %3406 = load volatile i120, i120* undef, align 1
-  %3407 = shl i120 %3406, 58
-  %3408 = ashr i120 %3407, 105
-  %3409 = shl nsw i120 %3408, 32
-  %3410 = trunc i120 %3409 to i64
-  %3411 = ashr exact i64 %3410, 32
-  call fastcc void @transparent_crc(i64 %3411, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1806, i64 0, i64 0), i32 signext undef)
-  %3412 = load volatile i120, i120* undef, align 1
-  %3413 = lshr i120 %3412, 41
-  %3414 = trunc i120 %3413 to i64
-  %3415 = and i64 %3414, 63
-  call fastcc void @transparent_crc(i64 %3415, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1807, i64 0, i64 0), i32 signext undef)
-  %3416 = load volatile i120, i120* undef, align 1
-  %3417 = lshr i120 %3416, 19
-  %3418 = trunc i120 %3417 to i64
-  %3419 = and i64 %3418, 4194303
-  call fastcc void @transparent_crc(i64 %3419, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1808, i64 0, i64 0), i32 signext undef)
-  %3420 = load volatile i120, i120* undef, align 1
-  %3421 = shl i120 %3420, 101
-  %3422 = ashr exact i120 %3421, 69
-  %3423 = trunc i120 %3422 to i64
-  %3424 = ashr exact i64 %3423, 32
-  call fastcc void @transparent_crc(i64 %3424, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1809, i64 0, i64 0), i32 signext undef)
-  %3425 = load i8, i8* undef, align 2, !tbaa !45
-  %3426 = zext i8 %3425 to i64
-  call fastcc void @transparent_crc(i64 %3426, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1810, i64 0, i64 0), i32 signext undef)
-  %3427 = load i8, i8* undef, align 1, !tbaa !46
-  %3428 = sext i8 %3427 to i64
-  call fastcc void @transparent_crc(i64 %3428, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1811, i64 0, i64 0), i32 signext undef)
-  %3429 = load i16, i16* undef, align 2, !tbaa !47
-  %3430 = sext i16 %3429 to i64
-  call fastcc void @transparent_crc(i64 %3430, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1812, i64 0, i64 0), i32 signext undef)
-  %3431 = load i64, i64* undef, align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3431, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1813, i64 0, i64 0), i32 signext undef)
-  %3432 = load i32, i32* undef, align 2, !tbaa !49
-  %3433 = sext i32 %3432 to i64
-  call fastcc void @transparent_crc(i64 %3433, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1814, i64 0, i64 0), i32 signext undef)
-  %3434 = getelementptr inbounds [2 x [2 x %5]], [2 x [2 x %5]]* bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_2933 to [2 x [2 x %5]]*), i64 0, i64 0, i64 0, i32 4, i32 0
-  %3435 = load volatile i128, i128* %3434, align 2
-  %3436 = ashr i128 %3435, 99
+  call fastcc void @transparent_crc(i64 %3294, ptr @.str.1756, i32 signext undef)
+  %3295 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 4, i32 0), align 2
+  %3296 = lshr i128 %3295, 28
+  %3297 = trunc i128 %3296 to i64
+  %3298 = and i64 %3297, 3
+  call fastcc void @transparent_crc(i64 %3298, ptr @.str.1757, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1762, i32 signext undef)
+  %3299 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 5, i32 1), align 2
+  %3300 = lshr i80 %3299, 49
+  %3301 = trunc i80 %3300 to i64
+  call fastcc void @transparent_crc(i64 %3301, ptr @.str.1763, i32 signext undef)
+  %3302 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2930, i64 0, i32 5, i32 1), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1775, i32 signext undef)
+  %3303 = load volatile i120, ptr undef, align 1
+  %3304 = lshr i120 %3303, 41
+  %3305 = trunc i120 %3304 to i64
+  %3306 = and i64 %3305, 63
+  call fastcc void @transparent_crc(i64 %3306, ptr @.str.1776, i32 signext undef)
+  %3307 = load volatile i120, ptr undef, align 1
+  %3308 = lshr i120 %3307, 19
+  %3309 = trunc i120 %3308 to i64
+  %3310 = and i64 %3309, 4194303
+  call fastcc void @transparent_crc(i64 %3310, ptr @.str.1777, i32 signext undef)
+  %3311 = load volatile i120, ptr undef, align 1
+  %3312 = shl i120 %3311, 101
+  %3313 = ashr exact i120 %3312, 69
+  %3314 = trunc i120 %3313 to i64
+  %3315 = ashr exact i64 %3314, 32
+  call fastcc void @transparent_crc(i64 %3315, ptr @.str.1778, i32 signext undef)
+  %3316 = load i8, ptr undef, align 2, !tbaa !45
+  %3317 = zext i8 %3316 to i64
+  call fastcc void @transparent_crc(i64 %3317, ptr @.str.1779, i32 signext undef)
+  %3318 = load i8, ptr undef, align 1, !tbaa !46
+  %3319 = sext i8 %3318 to i64
+  call fastcc void @transparent_crc(i64 %3319, ptr @.str.1780, i32 signext undef)
+  %3320 = load i16, ptr undef, align 2, !tbaa !47
+  %3321 = sext i16 %3320 to i64
+  call fastcc void @transparent_crc(i64 %3321, ptr @.str.1781, i32 signext undef)
+  %3322 = load i64, ptr undef, align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3322, ptr @.str.1782, i32 signext undef)
+  %3323 = load i32, ptr undef, align 2, !tbaa !49
+  %3324 = sext i32 %3323 to i64
+  call fastcc void @transparent_crc(i64 %3324, ptr @.str.1783, i32 signext undef)
+  %3325 = getelementptr inbounds [5 x [4 x [2 x %5]]], ptr bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2932 to ptr), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
+  %3326 = load volatile i128, ptr %3325, align 2
+  %3327 = ashr i128 %3326, 99
+  %3328 = shl nsw i128 %3327, 32
+  %3329 = trunc i128 %3328 to i64
+  %3330 = ashr exact i64 %3329, 32
+  call fastcc void @transparent_crc(i64 %3330, ptr @.str.1784, i32 signext undef)
+  %3331 = load volatile i128, ptr %3325, align 2
+  %3332 = shl i128 %3331, 29
+  %3333 = ashr i128 %3332, 97
+  %3334 = shl nsw i128 %3333, 32
+  %3335 = trunc i128 %3334 to i64
+  %3336 = ashr exact i64 %3335, 32
+  call fastcc void @transparent_crc(i64 %3336, ptr @.str.1785, i32 signext undef)
+  %3337 = load volatile i128, ptr %3325, align 2
+  %3338 = shl i128 %3337, 60
+  %3339 = ashr i128 %3338, 108
+  %3340 = shl nsw i128 %3339, 32
+  %3341 = trunc i128 %3340 to i64
+  %3342 = ashr exact i64 %3341, 32
+  call fastcc void @transparent_crc(i64 %3342, ptr @.str.1786, i32 signext undef)
+  %3343 = load volatile i128, ptr %3325, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1793, i32 signext undef)
+  %3344 = load i80, ptr undef, align 2
+  %3345 = lshr i80 %3344, 49
+  %3346 = trunc i80 %3345 to i64
+  call fastcc void @transparent_crc(i64 %3346, ptr @.str.1794, i32 signext undef)
+  %3347 = load volatile i80, ptr undef, align 2
+  %3348 = lshr i80 %3347, 24
+  %3349 = trunc i80 %3348 to i64
+  %3350 = and i64 %3349, 33554431
+  call fastcc void @transparent_crc(i64 %3350, ptr @.str.1795, i32 signext undef)
+  %3351 = load i80, ptr undef, align 2
+  %3352 = shl i80 %3351, 56
+  %3353 = ashr i80 %3352, 68
+  %3354 = shl nsw i80 %3353, 32
+  %3355 = trunc i80 %3354 to i64
+  %3356 = ashr exact i64 %3355, 32
+  call fastcc void @transparent_crc(i64 %3356, ptr @.str.1796, i32 signext undef)
+  %3357 = load i80, ptr undef, align 2
+  %3358 = lshr i80 %3357, 11
+  %3359 = trunc i80 %3358 to i64
+  %3360 = and i64 %3359, 1
+  call fastcc void @transparent_crc(i64 %3360, ptr @.str.1797, i32 signext undef)
+  %3361 = load volatile i80, ptr undef, align 2
+  %3362 = shl i80 %3361, 69
+  %3363 = ashr i80 %3362, 72
+  %3364 = shl nsw i80 %3363, 32
+  %3365 = trunc i80 %3364 to i64
+  %3366 = ashr exact i64 %3365, 32
+  call fastcc void @transparent_crc(i64 %3366, ptr @.str.1798, i32 signext undef)
+  %3367 = load i16, ptr undef, align 2, !tbaa !50
+  %3368 = sext i16 %3367 to i64
+  call fastcc void @transparent_crc(i64 %3368, ptr @.str.1799, i32 signext undef)
+  %3369 = load i16, ptr undef, align 2, !tbaa !51
+  %3370 = zext i16 %3369 to i64
+  call fastcc void @transparent_crc(i64 %3370, ptr @.str.1800, i32 signext undef)
+  %3371 = load i16, ptr undef, align 2, !tbaa !24
+  %3372 = sext i16 %3371 to i64
+  call fastcc void @transparent_crc(i64 %3372, ptr @.str.1801, i32 signext undef)
+  %3373 = load i8, ptr undef, align 2, !tbaa !52
+  %3374 = sext i8 %3373 to i64
+  call fastcc void @transparent_crc(i64 %3374, ptr @.str.1802, i32 signext undef)
+  %3375 = load volatile i120, ptr undef, align 1
+  %3376 = lshr i120 %3375, 107
+  %3377 = trunc i120 %3376 to i64
+  call fastcc void @transparent_crc(i64 %3377, ptr @.str.1803, i32 signext undef)
+  %3378 = load volatile i120, ptr undef, align 1
+  %3379 = lshr i120 %3378, 78
+  %3380 = trunc i120 %3379 to i64
+  %3381 = and i64 %3380, 536870911
+  call fastcc void @transparent_crc(i64 %3381, ptr @.str.1804, i32 signext undef)
+  %3382 = load volatile i120, ptr undef, align 1
+  %3383 = shl i120 %3382, 42
+  %3384 = ashr i120 %3383, 104
+  %3385 = shl nsw i120 %3384, 32
+  %3386 = trunc i120 %3385 to i64
+  %3387 = ashr exact i64 %3386, 32
+  call fastcc void @transparent_crc(i64 %3387, ptr @.str.1805, i32 signext undef)
+  %3388 = load volatile i120, ptr undef, align 1
+  %3389 = shl i120 %3388, 58
+  %3390 = ashr i120 %3389, 105
+  %3391 = shl nsw i120 %3390, 32
+  %3392 = trunc i120 %3391 to i64
+  %3393 = ashr exact i64 %3392, 32
+  call fastcc void @transparent_crc(i64 %3393, ptr @.str.1806, i32 signext undef)
+  %3394 = load volatile i120, ptr undef, align 1
+  %3395 = lshr i120 %3394, 41
+  %3396 = trunc i120 %3395 to i64
+  %3397 = and i64 %3396, 63
+  call fastcc void @transparent_crc(i64 %3397, ptr @.str.1807, i32 signext undef)
+  %3398 = load volatile i120, ptr undef, align 1
+  %3399 = lshr i120 %3398, 19
+  %3400 = trunc i120 %3399 to i64
+  %3401 = and i64 %3400, 4194303
+  call fastcc void @transparent_crc(i64 %3401, ptr @.str.1808, i32 signext undef)
+  %3402 = load volatile i120, ptr undef, align 1
+  %3403 = shl i120 %3402, 101
+  %3404 = ashr exact i120 %3403, 69
+  %3405 = trunc i120 %3404 to i64
+  %3406 = ashr exact i64 %3405, 32
+  call fastcc void @transparent_crc(i64 %3406, ptr @.str.1809, i32 signext undef)
+  %3407 = load i8, ptr undef, align 2, !tbaa !45
+  %3408 = zext i8 %3407 to i64
+  call fastcc void @transparent_crc(i64 %3408, ptr @.str.1810, i32 signext undef)
+  %3409 = load i8, ptr undef, align 1, !tbaa !46
+  %3410 = sext i8 %3409 to i64
+  call fastcc void @transparent_crc(i64 %3410, ptr @.str.1811, i32 signext undef)
+  %3411 = load i16, ptr undef, align 2, !tbaa !47
+  %3412 = sext i16 %3411 to i64
+  call fastcc void @transparent_crc(i64 %3412, ptr @.str.1812, i32 signext undef)
+  %3413 = load i64, ptr undef, align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3413, ptr @.str.1813, i32 signext undef)
+  %3414 = load i32, ptr undef, align 2, !tbaa !49
+  %3415 = sext i32 %3414 to i64
+  call fastcc void @transparent_crc(i64 %3415, ptr @.str.1814, i32 signext undef)
+  %3416 = getelementptr inbounds [2 x [2 x %5]], ptr bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_2933 to ptr), i64 0, i64 0, i64 0, i32 4, i32 0
+  %3417 = load volatile i128, ptr %3416, align 2
+  %3418 = ashr i128 %3417, 99
+  %3419 = shl nsw i128 %3418, 32
+  %3420 = trunc i128 %3419 to i64
+  %3421 = ashr exact i64 %3420, 32
+  call fastcc void @transparent_crc(i64 %3421, ptr @.str.1815, i32 signext undef)
+  %3422 = load volatile i128, ptr %3416, align 2
+  %3423 = shl i128 %3422, 29
+  %3424 = ashr i128 %3423, 97
+  %3425 = shl nsw i128 %3424, 32
+  %3426 = trunc i128 %3425 to i64
+  %3427 = ashr exact i64 %3426, 32
+  call fastcc void @transparent_crc(i64 %3427, ptr @.str.1816, i32 signext undef)
+  %3428 = load volatile i128, ptr %3416, align 2
+  %3429 = shl i128 %3428, 60
+  %3430 = ashr i128 %3429, 108
+  %3431 = shl nsw i128 %3430, 32
+  %3432 = trunc i128 %3431 to i64
+  %3433 = ashr exact i64 %3432, 32
+  call fastcc void @transparent_crc(i64 %3433, ptr @.str.1817, i32 signext undef)
+  %3434 = load volatile i128, ptr %3416, align 2
+  %3435 = shl i128 %3434, 80
+  %3436 = ashr i128 %3435, 110
   %3437 = shl nsw i128 %3436, 32
   %3438 = trunc i128 %3437 to i64
   %3439 = ashr exact i64 %3438, 32
-  call fastcc void @transparent_crc(i64 %3439, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1815, i64 0, i64 0), i32 signext undef)
-  %3440 = load volatile i128, i128* %3434, align 2
-  %3441 = shl i128 %3440, 29
-  %3442 = ashr i128 %3441, 97
-  %3443 = shl nsw i128 %3442, 32
-  %3444 = trunc i128 %3443 to i64
-  %3445 = ashr exact i64 %3444, 32
-  call fastcc void @transparent_crc(i64 %3445, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1816, i64 0, i64 0), i32 signext undef)
-  %3446 = load volatile i128, i128* %3434, align 2
-  %3447 = shl i128 %3446, 60
-  %3448 = ashr i128 %3447, 108
-  %3449 = shl nsw i128 %3448, 32
-  %3450 = trunc i128 %3449 to i64
-  %3451 = ashr exact i64 %3450, 32
-  call fastcc void @transparent_crc(i64 %3451, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1817, i64 0, i64 0), i32 signext undef)
-  %3452 = load volatile i128, i128* %3434, align 2
-  %3453 = shl i128 %3452, 80
-  %3454 = ashr i128 %3453, 110
-  %3455 = shl nsw i128 %3454, 32
-  %3456 = trunc i128 %3455 to i64
-  %3457 = ashr exact i64 %3456, 32
-  call fastcc void @transparent_crc(i64 %3457, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1818, i64 0, i64 0), i32 signext undef)
-  %3458 = load volatile i128, i128* %3434, align 2
-  %3459 = lshr i128 %3458, 28
-  %3460 = trunc i128 %3459 to i64
-  %3461 = and i64 %3460, 3
-  call fastcc void @transparent_crc(i64 %3461, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1819, i64 0, i64 0), i32 signext undef)
-  %3462 = load volatile i128, i128* %3434, align 2
-  %3463 = shl i128 %3462, 100
-  %3464 = ashr i128 %3463, 107
-  %3465 = shl nsw i128 %3464, 32
-  %3466 = trunc i128 %3465 to i64
-  %3467 = ashr exact i64 %3466, 32
-  call fastcc void @transparent_crc(i64 %3467, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1820, i64 0, i64 0), i32 signext undef)
-  %3468 = load volatile i80, i80* undef, align 2
-  %3469 = lshr i80 %3468, 57
-  %3470 = trunc i80 %3469 to i64
-  call fastcc void @transparent_crc(i64 %3470, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1821, i64 0, i64 0), i32 signext undef)
-  %3471 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1826, i64 0, i64 0), i32 signext undef)
-  %3472 = load i80, i80* undef, align 2
-  %3473 = shl i80 %3472, 56
-  %3474 = ashr i80 %3473, 68
-  %3475 = shl nsw i80 %3474, 32
-  %3476 = trunc i80 %3475 to i64
-  %3477 = ashr exact i64 %3476, 32
-  call fastcc void @transparent_crc(i64 %3477, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1827, i64 0, i64 0), i32 signext undef)
-  %3478 = load i80, i80* undef, align 2
-  %3479 = lshr i80 %3478, 11
-  %3480 = trunc i80 %3479 to i64
-  %3481 = and i64 %3480, 1
-  call fastcc void @transparent_crc(i64 %3481, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1828, i64 0, i64 0), i32 signext undef)
-  %3482 = load volatile i80, i80* undef, align 2
-  %3483 = shl i80 %3482, 69
-  %3484 = ashr i80 %3483, 72
-  %3485 = shl nsw i80 %3484, 32
-  %3486 = trunc i80 %3485 to i64
-  %3487 = ashr exact i64 %3486, 32
-  call fastcc void @transparent_crc(i64 %3487, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1829, i64 0, i64 0), i32 signext undef)
-  %3488 = load i16, i16* undef, align 2, !tbaa !50
-  %3489 = sext i16 %3488 to i64
-  call fastcc void @transparent_crc(i64 %3489, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1830, i64 0, i64 0), i32 signext undef)
-  %3490 = load i16, i16* undef, align 2, !tbaa !51
-  %3491 = zext i16 %3490 to i64
-  call fastcc void @transparent_crc(i64 %3491, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1831, i64 0, i64 0), i32 signext undef)
-  %3492 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 0), align 2, !tbaa !24
-  %3493 = sext i16 %3492 to i64
-  call fastcc void @transparent_crc(i64 %3493, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1832, i64 0, i64 0), i32 signext undef)
-  %3494 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 1), align 2, !tbaa !52
-  %3495 = sext i8 %3494 to i64
-  call fastcc void @transparent_crc(i64 %3495, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1833, i64 0, i64 0), i32 signext undef)
-  %3496 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3497 = lshr i120 %3496, 107
-  %3498 = trunc i120 %3497 to i64
-  call fastcc void @transparent_crc(i64 %3498, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1834, i64 0, i64 0), i32 signext undef)
-  %3499 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3500 = lshr i120 %3499, 78
-  %3501 = trunc i120 %3500 to i64
-  %3502 = and i64 %3501, 536870911
-  call fastcc void @transparent_crc(i64 %3502, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1835, i64 0, i64 0), i32 signext undef)
-  %3503 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3504 = shl i120 %3503, 42
-  %3505 = ashr i120 %3504, 104
-  %3506 = shl nsw i120 %3505, 32
-  %3507 = trunc i120 %3506 to i64
-  %3508 = ashr exact i64 %3507, 32
-  call fastcc void @transparent_crc(i64 %3508, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1836, i64 0, i64 0), i32 signext undef)
-  %3509 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3510 = shl i120 %3509, 58
-  %3511 = ashr i120 %3510, 105
-  %3512 = shl nsw i120 %3511, 32
-  %3513 = trunc i120 %3512 to i64
-  %3514 = ashr exact i64 %3513, 32
-  call fastcc void @transparent_crc(i64 %3514, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1837, i64 0, i64 0), i32 signext undef)
-  %3515 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3516 = lshr i120 %3515, 41
-  %3517 = trunc i120 %3516 to i64
-  %3518 = and i64 %3517, 63
-  call fastcc void @transparent_crc(i64 %3518, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1838, i64 0, i64 0), i32 signext undef)
-  %3519 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3520 = lshr i120 %3519, 19
-  %3521 = trunc i120 %3520 to i64
-  %3522 = and i64 %3521, 4194303
-  call fastcc void @transparent_crc(i64 %3522, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1839, i64 0, i64 0), i32 signext undef)
-  %3523 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 2, i32 0) to i120*), align 1
-  %3524 = shl i120 %3523, 101
-  %3525 = ashr exact i120 %3524, 69
-  %3526 = trunc i120 %3525 to i64
-  %3527 = ashr exact i64 %3526, 32
-  call fastcc void @transparent_crc(i64 %3527, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1840, i64 0, i64 0), i32 signext undef)
-  %3528 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %3529 = zext i8 %3528 to i64
-  call fastcc void @transparent_crc(i64 %3529, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1841, i64 0, i64 0), i32 signext undef)
-  %3530 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %3531 = sext i8 %3530 to i64
-  call fastcc void @transparent_crc(i64 %3531, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1842, i64 0, i64 0), i32 signext undef)
-  %3532 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %3533 = sext i16 %3532 to i64
-  call fastcc void @transparent_crc(i64 %3533, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1843, i64 0, i64 0), i32 signext undef)
-  %3534 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3534, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1844, i64 0, i64 0), i32 signext undef)
-  %3535 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %3536 = sext i32 %3535 to i64
-  call fastcc void @transparent_crc(i64 %3536, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1845, i64 0, i64 0), i32 signext undef)
-  %3537 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 4, i32 0) to i128*), align 2
-  %3538 = ashr i128 %3537, 99
+  call fastcc void @transparent_crc(i64 %3439, ptr @.str.1818, i32 signext undef)
+  %3440 = load volatile i128, ptr %3416, align 2
+  %3441 = lshr i128 %3440, 28
+  %3442 = trunc i128 %3441 to i64
+  %3443 = and i64 %3442, 3
+  call fastcc void @transparent_crc(i64 %3443, ptr @.str.1819, i32 signext undef)
+  %3444 = load volatile i128, ptr %3416, align 2
+  %3445 = shl i128 %3444, 100
+  %3446 = ashr i128 %3445, 107
+  %3447 = shl nsw i128 %3446, 32
+  %3448 = trunc i128 %3447 to i64
+  %3449 = ashr exact i64 %3448, 32
+  call fastcc void @transparent_crc(i64 %3449, ptr @.str.1820, i32 signext undef)
+  %3450 = load volatile i80, ptr undef, align 2
+  %3451 = lshr i80 %3450, 57
+  %3452 = trunc i80 %3451 to i64
+  call fastcc void @transparent_crc(i64 %3452, ptr @.str.1821, i32 signext undef)
+  %3453 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.1826, i32 signext undef)
+  %3454 = load i80, ptr undef, align 2
+  %3455 = shl i80 %3454, 56
+  %3456 = ashr i80 %3455, 68
+  %3457 = shl nsw i80 %3456, 32
+  %3458 = trunc i80 %3457 to i64
+  %3459 = ashr exact i64 %3458, 32
+  call fastcc void @transparent_crc(i64 %3459, ptr @.str.1827, i32 signext undef)
+  %3460 = load i80, ptr undef, align 2
+  %3461 = lshr i80 %3460, 11
+  %3462 = trunc i80 %3461 to i64
+  %3463 = and i64 %3462, 1
+  call fastcc void @transparent_crc(i64 %3463, ptr @.str.1828, i32 signext undef)
+  %3464 = load volatile i80, ptr undef, align 2
+  %3465 = shl i80 %3464, 69
+  %3466 = ashr i80 %3465, 72
+  %3467 = shl nsw i80 %3466, 32
+  %3468 = trunc i80 %3467 to i64
+  %3469 = ashr exact i64 %3468, 32
+  call fastcc void @transparent_crc(i64 %3469, ptr @.str.1829, i32 signext undef)
+  %3470 = load i16, ptr undef, align 2, !tbaa !50
+  %3471 = sext i16 %3470 to i64
+  call fastcc void @transparent_crc(i64 %3471, ptr @.str.1830, i32 signext undef)
+  %3472 = load i16, ptr undef, align 2, !tbaa !51
+  %3473 = zext i16 %3472 to i64
+  call fastcc void @transparent_crc(i64 %3473, ptr @.str.1831, i32 signext undef)
+  %3474 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 0), align 2, !tbaa !24
+  %3475 = sext i16 %3474 to i64
+  call fastcc void @transparent_crc(i64 %3475, ptr @.str.1832, i32 signext undef)
+  %3476 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 1), align 2, !tbaa !52
+  %3477 = sext i8 %3476 to i64
+  call fastcc void @transparent_crc(i64 %3477, ptr @.str.1833, i32 signext undef)
+  %3478 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3479 = lshr i120 %3478, 107
+  %3480 = trunc i120 %3479 to i64
+  call fastcc void @transparent_crc(i64 %3480, ptr @.str.1834, i32 signext undef)
+  %3481 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3482 = lshr i120 %3481, 78
+  %3483 = trunc i120 %3482 to i64
+  %3484 = and i64 %3483, 536870911
+  call fastcc void @transparent_crc(i64 %3484, ptr @.str.1835, i32 signext undef)
+  %3485 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3486 = shl i120 %3485, 42
+  %3487 = ashr i120 %3486, 104
+  %3488 = shl nsw i120 %3487, 32
+  %3489 = trunc i120 %3488 to i64
+  %3490 = ashr exact i64 %3489, 32
+  call fastcc void @transparent_crc(i64 %3490, ptr @.str.1836, i32 signext undef)
+  %3491 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3492 = shl i120 %3491, 58
+  %3493 = ashr i120 %3492, 105
+  %3494 = shl nsw i120 %3493, 32
+  %3495 = trunc i120 %3494 to i64
+  %3496 = ashr exact i64 %3495, 32
+  call fastcc void @transparent_crc(i64 %3496, ptr @.str.1837, i32 signext undef)
+  %3497 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3498 = lshr i120 %3497, 41
+  %3499 = trunc i120 %3498 to i64
+  %3500 = and i64 %3499, 63
+  call fastcc void @transparent_crc(i64 %3500, ptr @.str.1838, i32 signext undef)
+  %3501 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3502 = lshr i120 %3501, 19
+  %3503 = trunc i120 %3502 to i64
+  %3504 = and i64 %3503, 4194303
+  call fastcc void @transparent_crc(i64 %3504, ptr @.str.1839, i32 signext undef)
+  %3505 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 2, i32 0), align 1
+  %3506 = shl i120 %3505, 101
+  %3507 = ashr exact i120 %3506, 69
+  %3508 = trunc i120 %3507 to i64
+  %3509 = ashr exact i64 %3508, 32
+  call fastcc void @transparent_crc(i64 %3509, ptr @.str.1840, i32 signext undef)
+  %3510 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %3511 = zext i8 %3510 to i64
+  call fastcc void @transparent_crc(i64 %3511, ptr @.str.1841, i32 signext undef)
+  %3512 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %3513 = sext i8 %3512 to i64
+  call fastcc void @transparent_crc(i64 %3513, ptr @.str.1842, i32 signext undef)
+  %3514 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %3515 = sext i16 %3514 to i64
+  call fastcc void @transparent_crc(i64 %3515, ptr @.str.1843, i32 signext undef)
+  %3516 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3516, ptr @.str.1844, i32 signext undef)
+  %3517 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %3518 = sext i32 %3517 to i64
+  call fastcc void @transparent_crc(i64 %3518, ptr @.str.1845, i32 signext undef)
+  %3519 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 4, i32 0), align 2
+  %3520 = ashr i128 %3519, 99
+  %3521 = shl nsw i128 %3520, 32
+  %3522 = trunc i128 %3521 to i64
+  %3523 = ashr exact i64 %3522, 32
+  call fastcc void @transparent_crc(i64 %3523, ptr @.str.1846, i32 signext undef)
+  %3524 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 4, i32 0), align 2
+  %3525 = shl i128 %3524, 29
+  %3526 = ashr i128 %3525, 97
+  %3527 = shl nsw i128 %3526, 32
+  %3528 = trunc i128 %3527 to i64
+  %3529 = ashr exact i64 %3528, 32
+  call fastcc void @transparent_crc(i64 %3529, ptr @.str.1847, i32 signext undef)
+  %3530 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 4, i32 0), align 2
+  %3531 = shl i128 %3530, 60
+  %3532 = ashr i128 %3531, 108
+  %3533 = shl nsw i128 %3532, 32
+  %3534 = trunc i128 %3533 to i64
+  %3535 = ashr exact i64 %3534, 32
+  call fastcc void @transparent_crc(i64 %3535, ptr @.str.1848, i32 signext undef)
+  %3536 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 4, i32 0), align 2
+  %3537 = shl i128 %3536, 80
+  %3538 = ashr i128 %3537, 110
   %3539 = shl nsw i128 %3538, 32
   %3540 = trunc i128 %3539 to i64
   %3541 = ashr exact i64 %3540, 32
-  call fastcc void @transparent_crc(i64 %3541, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1846, i64 0, i64 0), i32 signext undef)
-  %3542 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 4, i32 0) to i128*), align 2
-  %3543 = shl i128 %3542, 29
-  %3544 = ashr i128 %3543, 97
-  %3545 = shl nsw i128 %3544, 32
-  %3546 = trunc i128 %3545 to i64
-  %3547 = ashr exact i64 %3546, 32
-  call fastcc void @transparent_crc(i64 %3547, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1847, i64 0, i64 0), i32 signext undef)
-  %3548 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 4, i32 0) to i128*), align 2
-  %3549 = shl i128 %3548, 60
-  %3550 = ashr i128 %3549, 108
-  %3551 = shl nsw i128 %3550, 32
-  %3552 = trunc i128 %3551 to i64
-  %3553 = ashr exact i64 %3552, 32
-  call fastcc void @transparent_crc(i64 %3553, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1848, i64 0, i64 0), i32 signext undef)
-  %3554 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 4, i32 0) to i128*), align 2
-  %3555 = shl i128 %3554, 80
-  %3556 = ashr i128 %3555, 110
-  %3557 = shl nsw i128 %3556, 32
-  %3558 = trunc i128 %3557 to i64
-  %3559 = ashr exact i64 %3558, 32
-  call fastcc void @transparent_crc(i64 %3559, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1849, i64 0, i64 0), i32 signext undef)
-  %3560 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 4, i32 0) to i128*), align 2
-  %3561 = lshr i128 %3560, 28
-  %3562 = trunc i128 %3561 to i64
-  %3563 = and i64 %3562, 3
-  call fastcc void @transparent_crc(i64 %3563, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1850, i64 0, i64 0), i32 signext undef)
-  %3564 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 4, i32 0) to i128*), align 2
-  %3565 = shl i128 %3564, 100
-  %3566 = ashr i128 %3565, 107
-  %3567 = shl nsw i128 %3566, 32
-  %3568 = trunc i128 %3567 to i64
-  %3569 = ashr exact i64 %3568, 32
-  call fastcc void @transparent_crc(i64 %3569, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1851, i64 0, i64 0), i32 signext undef)
-  %3570 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3571 = lshr i80 %3570, 57
-  %3572 = trunc i80 %3571 to i64
-  call fastcc void @transparent_crc(i64 %3572, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1852, i64 0, i64 0), i32 signext undef)
-  %3573 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3574 = shl i80 %3573, 23
-  %3575 = ashr i80 %3574, 64
-  %3576 = shl nsw i80 %3575, 32
-  %3577 = trunc i80 %3576 to i64
-  %3578 = ashr exact i64 %3577, 32
-  call fastcc void @transparent_crc(i64 %3578, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1853, i64 0, i64 0), i32 signext undef)
-  %3579 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3580 = shl i80 %3579, 39
-  %3581 = ashr i80 %3580, 62
-  %3582 = shl nsw i80 %3581, 32
-  %3583 = trunc i80 %3582 to i64
-  %3584 = ashr exact i64 %3583, 32
-  call fastcc void @transparent_crc(i64 %3584, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1854, i64 0, i64 0), i32 signext undef)
-  %3585 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3586 = shl i80 %3585, 57
-  %3587 = ashr i80 %3586, 58
-  %3588 = shl nsw i80 %3587, 32
-  %3589 = trunc i80 %3588 to i64
-  %3590 = ashr exact i64 %3589, 32
-  call fastcc void @transparent_crc(i64 %3590, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1855, i64 0, i64 0), i32 signext undef)
-  %3591 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 1) to i80*), align 2
-  %3592 = lshr i80 %3591, 49
-  %3593 = trunc i80 %3592 to i64
-  call fastcc void @transparent_crc(i64 %3593, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1856, i64 0, i64 0), i32 signext undef)
-  %3594 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 1) to i80*), align 2
-  %3595 = lshr i80 %3594, 24
-  %3596 = trunc i80 %3595 to i64
-  %3597 = and i64 %3596, 33554431
-  call fastcc void @transparent_crc(i64 %3597, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1857, i64 0, i64 0), i32 signext undef)
-  %3598 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 1) to i80*), align 2
-  %3599 = shl i80 %3598, 56
-  %3600 = ashr i80 %3599, 68
-  %3601 = shl nsw i80 %3600, 32
-  %3602 = trunc i80 %3601 to i64
-  %3603 = ashr exact i64 %3602, 32
-  call fastcc void @transparent_crc(i64 %3603, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1858, i64 0, i64 0), i32 signext undef)
-  %3604 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 1) to i80*), align 2
-  %3605 = lshr i80 %3604, 11
-  %3606 = trunc i80 %3605 to i64
-  %3607 = and i64 %3606, 1
-  call fastcc void @transparent_crc(i64 %3607, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1859, i64 0, i64 0), i32 signext undef)
-  %3608 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 5, i32 1) to i80*), align 2
-  %3609 = shl i80 %3608, 69
-  %3610 = ashr i80 %3609, 72
-  %3611 = shl nsw i80 %3610, 32
-  %3612 = trunc i80 %3611 to i64
-  %3613 = ashr exact i64 %3612, 32
-  call fastcc void @transparent_crc(i64 %3613, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1860, i64 0, i64 0), i32 signext undef)
-  %3614 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 6), align 2, !tbaa !50
-  %3615 = sext i16 %3614 to i64
-  call fastcc void @transparent_crc(i64 %3615, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1861, i64 0, i64 0), i32 signext undef)
-  %3616 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2934, i64 0, i32 7), align 2, !tbaa !51
-  %3617 = zext i16 %3616 to i64
-  call fastcc void @transparent_crc(i64 %3617, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1862, i64 0, i64 0), i32 signext undef)
-  %3618 = load i16, i16* undef, align 2, !tbaa !24
-  %3619 = sext i16 %3618 to i64
-  call fastcc void @transparent_crc(i64 %3619, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1863, i64 0, i64 0), i32 signext undef)
-  %3620 = load i8, i8* undef, align 2, !tbaa !52
-  %3621 = sext i8 %3620 to i64
-  call fastcc void @transparent_crc(i64 %3621, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.1864, i64 0, i64 0), i32 signext undef)
-  %3622 = load volatile i120, i120* undef, align 1
-  %3623 = lshr i120 %3622, 107
+  call fastcc void @transparent_crc(i64 %3541, ptr @.str.1849, i32 signext undef)
+  %3542 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 4, i32 0), align 2
+  %3543 = lshr i128 %3542, 28
+  %3544 = trunc i128 %3543 to i64
+  %3545 = and i64 %3544, 3
+  call fastcc void @transparent_crc(i64 %3545, ptr @.str.1850, i32 signext undef)
+  %3546 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 4, i32 0), align 2
+  %3547 = shl i128 %3546, 100
+  %3548 = ashr i128 %3547, 107
+  %3549 = shl nsw i128 %3548, 32
+  %3550 = trunc i128 %3549 to i64
+  %3551 = ashr exact i64 %3550, 32
+  call fastcc void @transparent_crc(i64 %3551, ptr @.str.1851, i32 signext undef)
+  %3552 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 0, i32 0), align 2
+  %3553 = lshr i80 %3552, 57
+  %3554 = trunc i80 %3553 to i64
+  call fastcc void @transparent_crc(i64 %3554, ptr @.str.1852, i32 signext undef)
+  %3555 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 0, i32 0), align 2
+  %3556 = shl i80 %3555, 23
+  %3557 = ashr i80 %3556, 64
+  %3558 = shl nsw i80 %3557, 32
+  %3559 = trunc i80 %3558 to i64
+  %3560 = ashr exact i64 %3559, 32
+  call fastcc void @transparent_crc(i64 %3560, ptr @.str.1853, i32 signext undef)
+  %3561 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 0, i32 0), align 2
+  %3562 = shl i80 %3561, 39
+  %3563 = ashr i80 %3562, 62
+  %3564 = shl nsw i80 %3563, 32
+  %3565 = trunc i80 %3564 to i64
+  %3566 = ashr exact i64 %3565, 32
+  call fastcc void @transparent_crc(i64 %3566, ptr @.str.1854, i32 signext undef)
+  %3567 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 0, i32 0), align 2
+  %3568 = shl i80 %3567, 57
+  %3569 = ashr i80 %3568, 58
+  %3570 = shl nsw i80 %3569, 32
+  %3571 = trunc i80 %3570 to i64
+  %3572 = ashr exact i64 %3571, 32
+  call fastcc void @transparent_crc(i64 %3572, ptr @.str.1855, i32 signext undef)
+  %3573 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 1), align 2
+  %3574 = lshr i80 %3573, 49
+  %3575 = trunc i80 %3574 to i64
+  call fastcc void @transparent_crc(i64 %3575, ptr @.str.1856, i32 signext undef)
+  %3576 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 1), align 2
+  %3577 = lshr i80 %3576, 24
+  %3578 = trunc i80 %3577 to i64
+  %3579 = and i64 %3578, 33554431
+  call fastcc void @transparent_crc(i64 %3579, ptr @.str.1857, i32 signext undef)
+  %3580 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 1), align 2
+  %3581 = shl i80 %3580, 56
+  %3582 = ashr i80 %3581, 68
+  %3583 = shl nsw i80 %3582, 32
+  %3584 = trunc i80 %3583 to i64
+  %3585 = ashr exact i64 %3584, 32
+  call fastcc void @transparent_crc(i64 %3585, ptr @.str.1858, i32 signext undef)
+  %3586 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 1), align 2
+  %3587 = lshr i80 %3586, 11
+  %3588 = trunc i80 %3587 to i64
+  %3589 = and i64 %3588, 1
+  call fastcc void @transparent_crc(i64 %3589, ptr @.str.1859, i32 signext undef)
+  %3590 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 5, i32 1), align 2
+  %3591 = shl i80 %3590, 69
+  %3592 = ashr i80 %3591, 72
+  %3593 = shl nsw i80 %3592, 32
+  %3594 = trunc i80 %3593 to i64
+  %3595 = ashr exact i64 %3594, 32
+  call fastcc void @transparent_crc(i64 %3595, ptr @.str.1860, i32 signext undef)
+  %3596 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 6), align 2, !tbaa !50
+  %3597 = sext i16 %3596 to i64
+  call fastcc void @transparent_crc(i64 %3597, ptr @.str.1861, i32 signext undef)
+  %3598 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2934, i64 0, i32 7), align 2, !tbaa !51
+  %3599 = zext i16 %3598 to i64
+  call fastcc void @transparent_crc(i64 %3599, ptr @.str.1862, i32 signext undef)
+  %3600 = load i16, ptr undef, align 2, !tbaa !24
+  %3601 = sext i16 %3600 to i64
+  call fastcc void @transparent_crc(i64 %3601, ptr @.str.1863, i32 signext undef)
+  %3602 = load i8, ptr undef, align 2, !tbaa !52
+  %3603 = sext i8 %3602 to i64
+  call fastcc void @transparent_crc(i64 %3603, ptr @.str.1864, i32 signext undef)
+  %3604 = load volatile i120, ptr undef, align 1
+  %3605 = lshr i120 %3604, 107
+  %3606 = trunc i120 %3605 to i64
+  call fastcc void @transparent_crc(i64 %3606, ptr @.str.1865, i32 signext undef)
+  %3607 = load volatile i120, ptr undef, align 1
+  %3608 = lshr i120 %3607, 78
+  %3609 = trunc i120 %3608 to i64
+  %3610 = and i64 %3609, 536870911
+  call fastcc void @transparent_crc(i64 %3610, ptr @.str.1866, i32 signext undef)
+  %3611 = load volatile i120, ptr undef, align 1
+  %3612 = shl i120 %3611, 42
+  %3613 = ashr i120 %3612, 104
+  %3614 = shl nsw i120 %3613, 32
+  %3615 = trunc i120 %3614 to i64
+  %3616 = ashr exact i64 %3615, 32
+  call fastcc void @transparent_crc(i64 %3616, ptr @.str.1867, i32 signext undef)
+  %3617 = load volatile i120, ptr undef, align 1
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1868, i32 signext undef)
+  %3618 = load volatile i120, ptr undef, align 1
+  %3619 = lshr i120 %3618, 41
+  %3620 = trunc i120 %3619 to i64
+  %3621 = and i64 %3620, 63
+  call fastcc void @transparent_crc(i64 %3621, ptr @.str.1869, i32 signext undef)
+  %3622 = load volatile i120, ptr undef, align 1
+  %3623 = lshr i120 %3622, 19
   %3624 = trunc i120 %3623 to i64
-  call fastcc void @transparent_crc(i64 %3624, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1865, i64 0, i64 0), i32 signext undef)
-  %3625 = load volatile i120, i120* undef, align 1
-  %3626 = lshr i120 %3625, 78
-  %3627 = trunc i120 %3626 to i64
-  %3628 = and i64 %3627, 536870911
-  call fastcc void @transparent_crc(i64 %3628, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1866, i64 0, i64 0), i32 signext undef)
-  %3629 = load volatile i120, i120* undef, align 1
-  %3630 = shl i120 %3629, 42
-  %3631 = ashr i120 %3630, 104
-  %3632 = shl nsw i120 %3631, 32
-  %3633 = trunc i120 %3632 to i64
-  %3634 = ashr exact i64 %3633, 32
-  call fastcc void @transparent_crc(i64 %3634, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1867, i64 0, i64 0), i32 signext undef)
-  %3635 = load volatile i120, i120* undef, align 1
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1868, i64 0, i64 0), i32 signext undef)
-  %3636 = load volatile i120, i120* undef, align 1
-  %3637 = lshr i120 %3636, 41
-  %3638 = trunc i120 %3637 to i64
-  %3639 = and i64 %3638, 63
-  call fastcc void @transparent_crc(i64 %3639, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1869, i64 0, i64 0), i32 signext undef)
-  %3640 = load volatile i120, i120* undef, align 1
-  %3641 = lshr i120 %3640, 19
-  %3642 = trunc i120 %3641 to i64
-  %3643 = and i64 %3642, 4194303
-  call fastcc void @transparent_crc(i64 %3643, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1870, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1876, i64 0, i64 0), i32 signext undef)
-  %3644 = getelementptr inbounds [2 x [1 x [8 x %5]]], [2 x [1 x [8 x %5]]]* bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2935 to [2 x [1 x [8 x %5]]]*), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
-  %3645 = load volatile i128, i128* %3644, align 2
-  %3646 = ashr i128 %3645, 99
+  %3625 = and i64 %3624, 4194303
+  call fastcc void @transparent_crc(i64 %3625, ptr @.str.1870, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1876, i32 signext undef)
+  %3626 = getelementptr inbounds [2 x [1 x [8 x %5]]], ptr bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2935 to ptr), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
+  %3627 = load volatile i128, ptr %3626, align 2
+  %3628 = ashr i128 %3627, 99
+  %3629 = shl nsw i128 %3628, 32
+  %3630 = trunc i128 %3629 to i64
+  %3631 = ashr exact i64 %3630, 32
+  call fastcc void @transparent_crc(i64 %3631, ptr @.str.1877, i32 signext undef)
+  %3632 = load volatile i128, ptr %3626, align 2
+  %3633 = shl i128 %3632, 29
+  %3634 = ashr i128 %3633, 97
+  %3635 = shl nsw i128 %3634, 32
+  %3636 = trunc i128 %3635 to i64
+  %3637 = ashr exact i64 %3636, 32
+  call fastcc void @transparent_crc(i64 %3637, ptr @.str.1878, i32 signext undef)
+  %3638 = load volatile i128, ptr %3626, align 2
+  %3639 = shl i128 %3638, 60
+  %3640 = ashr i128 %3639, 108
+  %3641 = shl nsw i128 %3640, 32
+  %3642 = trunc i128 %3641 to i64
+  %3643 = ashr exact i64 %3642, 32
+  call fastcc void @transparent_crc(i64 %3643, ptr @.str.1879, i32 signext undef)
+  %3644 = load volatile i128, ptr %3626, align 2
+  %3645 = shl i128 %3644, 80
+  %3646 = ashr i128 %3645, 110
   %3647 = shl nsw i128 %3646, 32
   %3648 = trunc i128 %3647 to i64
   %3649 = ashr exact i64 %3648, 32
-  call fastcc void @transparent_crc(i64 %3649, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1877, i64 0, i64 0), i32 signext undef)
-  %3650 = load volatile i128, i128* %3644, align 2
-  %3651 = shl i128 %3650, 29
-  %3652 = ashr i128 %3651, 97
-  %3653 = shl nsw i128 %3652, 32
-  %3654 = trunc i128 %3653 to i64
-  %3655 = ashr exact i64 %3654, 32
-  call fastcc void @transparent_crc(i64 %3655, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1878, i64 0, i64 0), i32 signext undef)
-  %3656 = load volatile i128, i128* %3644, align 2
-  %3657 = shl i128 %3656, 60
-  %3658 = ashr i128 %3657, 108
-  %3659 = shl nsw i128 %3658, 32
-  %3660 = trunc i128 %3659 to i64
-  %3661 = ashr exact i64 %3660, 32
-  call fastcc void @transparent_crc(i64 %3661, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1879, i64 0, i64 0), i32 signext undef)
-  %3662 = load volatile i128, i128* %3644, align 2
-  %3663 = shl i128 %3662, 80
-  %3664 = ashr i128 %3663, 110
-  %3665 = shl nsw i128 %3664, 32
-  %3666 = trunc i128 %3665 to i64
-  %3667 = ashr exact i64 %3666, 32
-  call fastcc void @transparent_crc(i64 %3667, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1880, i64 0, i64 0), i32 signext undef)
-  %3668 = load volatile i128, i128* %3644, align 2
-  %3669 = lshr i128 %3668, 28
-  %3670 = trunc i128 %3669 to i64
-  %3671 = and i64 %3670, 3
-  call fastcc void @transparent_crc(i64 %3671, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1881, i64 0, i64 0), i32 signext undef)
-  %3672 = load volatile i128, i128* %3644, align 2
-  %3673 = shl i128 %3672, 100
-  %3674 = ashr i128 %3673, 107
-  %3675 = shl nsw i128 %3674, 32
-  %3676 = trunc i128 %3675 to i64
-  %3677 = ashr exact i64 %3676, 32
-  call fastcc void @transparent_crc(i64 %3677, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.1882, i64 0, i64 0), i32 signext undef)
-  %3678 = load volatile i80, i80* undef, align 2
-  %3679 = lshr i80 %3678, 57
+  call fastcc void @transparent_crc(i64 %3649, ptr @.str.1880, i32 signext undef)
+  %3650 = load volatile i128, ptr %3626, align 2
+  %3651 = lshr i128 %3650, 28
+  %3652 = trunc i128 %3651 to i64
+  %3653 = and i64 %3652, 3
+  call fastcc void @transparent_crc(i64 %3653, ptr @.str.1881, i32 signext undef)
+  %3654 = load volatile i128, ptr %3626, align 2
+  %3655 = shl i128 %3654, 100
+  %3656 = ashr i128 %3655, 107
+  %3657 = shl nsw i128 %3656, 32
+  %3658 = trunc i128 %3657 to i64
+  %3659 = ashr exact i64 %3658, 32
+  call fastcc void @transparent_crc(i64 %3659, ptr @.str.1882, i32 signext undef)
+  %3660 = load volatile i80, ptr undef, align 2
+  %3661 = lshr i80 %3660, 57
+  %3662 = trunc i80 %3661 to i64
+  call fastcc void @transparent_crc(i64 %3662, ptr @.str.1883, i32 signext undef)
+  %3663 = load volatile i80, ptr undef, align 2
+  %3664 = shl i80 %3663, 23
+  %3665 = ashr i80 %3664, 64
+  %3666 = shl nsw i80 %3665, 32
+  %3667 = trunc i80 %3666 to i64
+  %3668 = ashr exact i64 %3667, 32
+  call fastcc void @transparent_crc(i64 %3668, ptr @.str.1884, i32 signext undef)
+  %3669 = load volatile i80, ptr undef, align 2
+  %3670 = shl i80 %3669, 39
+  %3671 = ashr i80 %3670, 62
+  %3672 = shl nsw i80 %3671, 32
+  %3673 = trunc i80 %3672 to i64
+  %3674 = ashr exact i64 %3673, 32
+  call fastcc void @transparent_crc(i64 %3674, ptr @.str.1885, i32 signext undef)
+  %3675 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1921, i32 signext undef)
+  %3676 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2936, i64 0, i32 5, i32 1), align 2
+  %3677 = shl i80 %3676, 69
+  %3678 = ashr i80 %3677, 72
+  %3679 = shl nsw i80 %3678, 32
   %3680 = trunc i80 %3679 to i64
-  call fastcc void @transparent_crc(i64 %3680, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1883, i64 0, i64 0), i32 signext undef)
-  %3681 = load volatile i80, i80* undef, align 2
-  %3682 = shl i80 %3681, 23
-  %3683 = ashr i80 %3682, 64
-  %3684 = shl nsw i80 %3683, 32
-  %3685 = trunc i80 %3684 to i64
-  %3686 = ashr exact i64 %3685, 32
-  call fastcc void @transparent_crc(i64 %3686, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1884, i64 0, i64 0), i32 signext undef)
-  %3687 = load volatile i80, i80* undef, align 2
-  %3688 = shl i80 %3687, 39
-  %3689 = ashr i80 %3688, 62
-  %3690 = shl nsw i80 %3689, 32
-  %3691 = trunc i80 %3690 to i64
-  %3692 = ashr exact i64 %3691, 32
-  call fastcc void @transparent_crc(i64 %3692, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.1885, i64 0, i64 0), i32 signext undef)
-  %3693 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1921, i64 0, i64 0), i32 signext undef)
-  %3694 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2936, i64 0, i32 5, i32 1) to i80*), align 2
-  %3695 = shl i80 %3694, 69
-  %3696 = ashr i80 %3695, 72
-  %3697 = shl nsw i80 %3696, 32
-  %3698 = trunc i80 %3697 to i64
-  %3699 = ashr exact i64 %3698, 32
-  call fastcc void @transparent_crc(i64 %3699, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1922, i64 0, i64 0), i32 signext undef)
-  %3700 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2936, i64 0, i32 6), align 2, !tbaa !50
-  %3701 = sext i16 %3700 to i64
-  call fastcc void @transparent_crc(i64 %3701, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1923, i64 0, i64 0), i32 signext undef)
-  %3702 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2936, i64 0, i32 7), align 2, !tbaa !51
-  %3703 = zext i16 %3702 to i64
-  call fastcc void @transparent_crc(i64 %3703, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1924, i64 0, i64 0), i32 signext undef)
-  %3704 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 0), align 2, !tbaa !24
-  %3705 = sext i16 %3704 to i64
-  call fastcc void @transparent_crc(i64 %3705, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1925, i64 0, i64 0), i32 signext undef)
-  %3706 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 1), align 2, !tbaa !52
-  %3707 = sext i8 %3706 to i64
-  call fastcc void @transparent_crc(i64 %3707, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1926, i64 0, i64 0), i32 signext undef)
-  %3708 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3709 = lshr i120 %3708, 107
-  %3710 = trunc i120 %3709 to i64
-  call fastcc void @transparent_crc(i64 %3710, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1927, i64 0, i64 0), i32 signext undef)
-  %3711 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3712 = lshr i120 %3711, 78
-  %3713 = trunc i120 %3712 to i64
-  %3714 = and i64 %3713, 536870911
-  call fastcc void @transparent_crc(i64 %3714, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1928, i64 0, i64 0), i32 signext undef)
-  %3715 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3716 = shl i120 %3715, 42
-  %3717 = ashr i120 %3716, 104
-  %3718 = shl nsw i120 %3717, 32
-  %3719 = trunc i120 %3718 to i64
-  %3720 = ashr exact i64 %3719, 32
-  call fastcc void @transparent_crc(i64 %3720, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1929, i64 0, i64 0), i32 signext undef)
-  %3721 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3722 = shl i120 %3721, 58
-  %3723 = ashr i120 %3722, 105
-  %3724 = shl nsw i120 %3723, 32
-  %3725 = trunc i120 %3724 to i64
-  %3726 = ashr exact i64 %3725, 32
-  call fastcc void @transparent_crc(i64 %3726, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1930, i64 0, i64 0), i32 signext undef)
-  %3727 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3728 = lshr i120 %3727, 41
-  %3729 = trunc i120 %3728 to i64
-  %3730 = and i64 %3729, 63
-  call fastcc void @transparent_crc(i64 %3730, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1931, i64 0, i64 0), i32 signext undef)
-  %3731 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3732 = lshr i120 %3731, 19
-  %3733 = trunc i120 %3732 to i64
-  %3734 = and i64 %3733, 4194303
-  call fastcc void @transparent_crc(i64 %3734, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1932, i64 0, i64 0), i32 signext undef)
-  %3735 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 2, i32 0) to i120*), align 1
-  %3736 = shl i120 %3735, 101
-  %3737 = ashr exact i120 %3736, 69
-  %3738 = trunc i120 %3737 to i64
-  %3739 = ashr exact i64 %3738, 32
-  call fastcc void @transparent_crc(i64 %3739, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1933, i64 0, i64 0), i32 signext undef)
-  %3740 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %3741 = zext i8 %3740 to i64
-  call fastcc void @transparent_crc(i64 %3741, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1934, i64 0, i64 0), i32 signext undef)
-  %3742 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %3743 = sext i8 %3742 to i64
-  call fastcc void @transparent_crc(i64 %3743, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1935, i64 0, i64 0), i32 signext undef)
-  %3744 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %3745 = sext i16 %3744 to i64
-  call fastcc void @transparent_crc(i64 %3745, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1936, i64 0, i64 0), i32 signext undef)
-  %3746 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3746, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1937, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1953, i64 0, i64 0), i32 signext undef)
-  %3747 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 6), align 2, !tbaa !50
-  %3748 = sext i16 %3747 to i64
-  call fastcc void @transparent_crc(i64 %3748, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1954, i64 0, i64 0), i32 signext undef)
-  %3749 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2937, i64 0, i32 7), align 2, !tbaa !51
-  %3750 = zext i16 %3749 to i64
-  call fastcc void @transparent_crc(i64 %3750, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1955, i64 0, i64 0), i32 signext undef)
-  %3751 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 0), align 2, !tbaa !24
-  %3752 = sext i16 %3751 to i64
-  call fastcc void @transparent_crc(i64 %3752, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1956, i64 0, i64 0), i32 signext undef)
-  %3753 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 1), align 2, !tbaa !52
-  %3754 = sext i8 %3753 to i64
-  call fastcc void @transparent_crc(i64 %3754, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1957, i64 0, i64 0), i32 signext undef)
-  %3755 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3756 = lshr i120 %3755, 107
-  %3757 = trunc i120 %3756 to i64
-  call fastcc void @transparent_crc(i64 %3757, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1958, i64 0, i64 0), i32 signext undef)
-  %3758 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3759 = lshr i120 %3758, 78
-  %3760 = trunc i120 %3759 to i64
-  %3761 = and i64 %3760, 536870911
-  call fastcc void @transparent_crc(i64 %3761, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1959, i64 0, i64 0), i32 signext undef)
-  %3762 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3763 = shl i120 %3762, 42
-  %3764 = ashr i120 %3763, 104
-  %3765 = shl nsw i120 %3764, 32
-  %3766 = trunc i120 %3765 to i64
-  %3767 = ashr exact i64 %3766, 32
-  call fastcc void @transparent_crc(i64 %3767, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1960, i64 0, i64 0), i32 signext undef)
-  %3768 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3769 = shl i120 %3768, 58
-  %3770 = ashr i120 %3769, 105
-  %3771 = shl nsw i120 %3770, 32
-  %3772 = trunc i120 %3771 to i64
-  %3773 = ashr exact i64 %3772, 32
-  call fastcc void @transparent_crc(i64 %3773, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1961, i64 0, i64 0), i32 signext undef)
-  %3774 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3775 = lshr i120 %3774, 41
-  %3776 = trunc i120 %3775 to i64
-  %3777 = and i64 %3776, 63
-  call fastcc void @transparent_crc(i64 %3777, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1962, i64 0, i64 0), i32 signext undef)
-  %3778 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3779 = lshr i120 %3778, 19
-  %3780 = trunc i120 %3779 to i64
-  %3781 = and i64 %3780, 4194303
-  call fastcc void @transparent_crc(i64 %3781, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1963, i64 0, i64 0), i32 signext undef)
-  %3782 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 2, i32 0) to i120*), align 1
-  %3783 = shl i120 %3782, 101
-  %3784 = ashr exact i120 %3783, 69
-  %3785 = trunc i120 %3784 to i64
-  %3786 = ashr exact i64 %3785, 32
-  call fastcc void @transparent_crc(i64 %3786, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1964, i64 0, i64 0), i32 signext undef)
-  %3787 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %3788 = zext i8 %3787 to i64
-  call fastcc void @transparent_crc(i64 %3788, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1965, i64 0, i64 0), i32 signext undef)
-  %3789 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %3790 = sext i8 %3789 to i64
-  call fastcc void @transparent_crc(i64 %3790, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1966, i64 0, i64 0), i32 signext undef)
-  %3791 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %3792 = sext i16 %3791 to i64
-  call fastcc void @transparent_crc(i64 %3792, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1967, i64 0, i64 0), i32 signext undef)
-  %3793 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3793, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1968, i64 0, i64 0), i32 signext undef)
-  %3794 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %3795 = sext i32 %3794 to i64
-  call fastcc void @transparent_crc(i64 %3795, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1969, i64 0, i64 0), i32 signext undef)
-  %3796 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 4, i32 0) to i128*), align 2
-  %3797 = ashr i128 %3796, 99
+  %3681 = ashr exact i64 %3680, 32
+  call fastcc void @transparent_crc(i64 %3681, ptr @.str.1922, i32 signext undef)
+  %3682 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2936, i64 0, i32 6), align 2, !tbaa !50
+  %3683 = sext i16 %3682 to i64
+  call fastcc void @transparent_crc(i64 %3683, ptr @.str.1923, i32 signext undef)
+  %3684 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2936, i64 0, i32 7), align 2, !tbaa !51
+  %3685 = zext i16 %3684 to i64
+  call fastcc void @transparent_crc(i64 %3685, ptr @.str.1924, i32 signext undef)
+  %3686 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 0), align 2, !tbaa !24
+  %3687 = sext i16 %3686 to i64
+  call fastcc void @transparent_crc(i64 %3687, ptr @.str.1925, i32 signext undef)
+  %3688 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 1), align 2, !tbaa !52
+  %3689 = sext i8 %3688 to i64
+  call fastcc void @transparent_crc(i64 %3689, ptr @.str.1926, i32 signext undef)
+  %3690 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3691 = lshr i120 %3690, 107
+  %3692 = trunc i120 %3691 to i64
+  call fastcc void @transparent_crc(i64 %3692, ptr @.str.1927, i32 signext undef)
+  %3693 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3694 = lshr i120 %3693, 78
+  %3695 = trunc i120 %3694 to i64
+  %3696 = and i64 %3695, 536870911
+  call fastcc void @transparent_crc(i64 %3696, ptr @.str.1928, i32 signext undef)
+  %3697 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3698 = shl i120 %3697, 42
+  %3699 = ashr i120 %3698, 104
+  %3700 = shl nsw i120 %3699, 32
+  %3701 = trunc i120 %3700 to i64
+  %3702 = ashr exact i64 %3701, 32
+  call fastcc void @transparent_crc(i64 %3702, ptr @.str.1929, i32 signext undef)
+  %3703 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3704 = shl i120 %3703, 58
+  %3705 = ashr i120 %3704, 105
+  %3706 = shl nsw i120 %3705, 32
+  %3707 = trunc i120 %3706 to i64
+  %3708 = ashr exact i64 %3707, 32
+  call fastcc void @transparent_crc(i64 %3708, ptr @.str.1930, i32 signext undef)
+  %3709 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3710 = lshr i120 %3709, 41
+  %3711 = trunc i120 %3710 to i64
+  %3712 = and i64 %3711, 63
+  call fastcc void @transparent_crc(i64 %3712, ptr @.str.1931, i32 signext undef)
+  %3713 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3714 = lshr i120 %3713, 19
+  %3715 = trunc i120 %3714 to i64
+  %3716 = and i64 %3715, 4194303
+  call fastcc void @transparent_crc(i64 %3716, ptr @.str.1932, i32 signext undef)
+  %3717 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 2, i32 0), align 1
+  %3718 = shl i120 %3717, 101
+  %3719 = ashr exact i120 %3718, 69
+  %3720 = trunc i120 %3719 to i64
+  %3721 = ashr exact i64 %3720, 32
+  call fastcc void @transparent_crc(i64 %3721, ptr @.str.1933, i32 signext undef)
+  %3722 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %3723 = zext i8 %3722 to i64
+  call fastcc void @transparent_crc(i64 %3723, ptr @.str.1934, i32 signext undef)
+  %3724 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %3725 = sext i8 %3724 to i64
+  call fastcc void @transparent_crc(i64 %3725, ptr @.str.1935, i32 signext undef)
+  %3726 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %3727 = sext i16 %3726 to i64
+  call fastcc void @transparent_crc(i64 %3727, ptr @.str.1936, i32 signext undef)
+  %3728 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3728, ptr @.str.1937, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.1953, i32 signext undef)
+  %3729 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 6), align 2, !tbaa !50
+  %3730 = sext i16 %3729 to i64
+  call fastcc void @transparent_crc(i64 %3730, ptr @.str.1954, i32 signext undef)
+  %3731 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2937, i64 0, i32 7), align 2, !tbaa !51
+  %3732 = zext i16 %3731 to i64
+  call fastcc void @transparent_crc(i64 %3732, ptr @.str.1955, i32 signext undef)
+  %3733 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 0), align 2, !tbaa !24
+  %3734 = sext i16 %3733 to i64
+  call fastcc void @transparent_crc(i64 %3734, ptr @.str.1956, i32 signext undef)
+  %3735 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 1), align 2, !tbaa !52
+  %3736 = sext i8 %3735 to i64
+  call fastcc void @transparent_crc(i64 %3736, ptr @.str.1957, i32 signext undef)
+  %3737 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3738 = lshr i120 %3737, 107
+  %3739 = trunc i120 %3738 to i64
+  call fastcc void @transparent_crc(i64 %3739, ptr @.str.1958, i32 signext undef)
+  %3740 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3741 = lshr i120 %3740, 78
+  %3742 = trunc i120 %3741 to i64
+  %3743 = and i64 %3742, 536870911
+  call fastcc void @transparent_crc(i64 %3743, ptr @.str.1959, i32 signext undef)
+  %3744 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3745 = shl i120 %3744, 42
+  %3746 = ashr i120 %3745, 104
+  %3747 = shl nsw i120 %3746, 32
+  %3748 = trunc i120 %3747 to i64
+  %3749 = ashr exact i64 %3748, 32
+  call fastcc void @transparent_crc(i64 %3749, ptr @.str.1960, i32 signext undef)
+  %3750 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3751 = shl i120 %3750, 58
+  %3752 = ashr i120 %3751, 105
+  %3753 = shl nsw i120 %3752, 32
+  %3754 = trunc i120 %3753 to i64
+  %3755 = ashr exact i64 %3754, 32
+  call fastcc void @transparent_crc(i64 %3755, ptr @.str.1961, i32 signext undef)
+  %3756 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3757 = lshr i120 %3756, 41
+  %3758 = trunc i120 %3757 to i64
+  %3759 = and i64 %3758, 63
+  call fastcc void @transparent_crc(i64 %3759, ptr @.str.1962, i32 signext undef)
+  %3760 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3761 = lshr i120 %3760, 19
+  %3762 = trunc i120 %3761 to i64
+  %3763 = and i64 %3762, 4194303
+  call fastcc void @transparent_crc(i64 %3763, ptr @.str.1963, i32 signext undef)
+  %3764 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 2, i32 0), align 1
+  %3765 = shl i120 %3764, 101
+  %3766 = ashr exact i120 %3765, 69
+  %3767 = trunc i120 %3766 to i64
+  %3768 = ashr exact i64 %3767, 32
+  call fastcc void @transparent_crc(i64 %3768, ptr @.str.1964, i32 signext undef)
+  %3769 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %3770 = zext i8 %3769 to i64
+  call fastcc void @transparent_crc(i64 %3770, ptr @.str.1965, i32 signext undef)
+  %3771 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %3772 = sext i8 %3771 to i64
+  call fastcc void @transparent_crc(i64 %3772, ptr @.str.1966, i32 signext undef)
+  %3773 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %3774 = sext i16 %3773 to i64
+  call fastcc void @transparent_crc(i64 %3774, ptr @.str.1967, i32 signext undef)
+  %3775 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3775, ptr @.str.1968, i32 signext undef)
+  %3776 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %3777 = sext i32 %3776 to i64
+  call fastcc void @transparent_crc(i64 %3777, ptr @.str.1969, i32 signext undef)
+  %3778 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 4, i32 0), align 2
+  %3779 = ashr i128 %3778, 99
+  %3780 = shl nsw i128 %3779, 32
+  %3781 = trunc i128 %3780 to i64
+  %3782 = ashr exact i64 %3781, 32
+  call fastcc void @transparent_crc(i64 %3782, ptr @.str.1970, i32 signext undef)
+  %3783 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 4, i32 0), align 2
+  %3784 = shl i128 %3783, 29
+  %3785 = ashr i128 %3784, 97
+  %3786 = shl nsw i128 %3785, 32
+  %3787 = trunc i128 %3786 to i64
+  %3788 = ashr exact i64 %3787, 32
+  call fastcc void @transparent_crc(i64 %3788, ptr @.str.1971, i32 signext undef)
+  %3789 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 4, i32 0), align 2
+  %3790 = shl i128 %3789, 60
+  %3791 = ashr i128 %3790, 108
+  %3792 = shl nsw i128 %3791, 32
+  %3793 = trunc i128 %3792 to i64
+  %3794 = ashr exact i64 %3793, 32
+  call fastcc void @transparent_crc(i64 %3794, ptr @.str.1972, i32 signext undef)
+  %3795 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 4, i32 0), align 2
+  %3796 = shl i128 %3795, 80
+  %3797 = ashr i128 %3796, 110
   %3798 = shl nsw i128 %3797, 32
   %3799 = trunc i128 %3798 to i64
   %3800 = ashr exact i64 %3799, 32
-  call fastcc void @transparent_crc(i64 %3800, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1970, i64 0, i64 0), i32 signext undef)
-  %3801 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 4, i32 0) to i128*), align 2
-  %3802 = shl i128 %3801, 29
-  %3803 = ashr i128 %3802, 97
-  %3804 = shl nsw i128 %3803, 32
-  %3805 = trunc i128 %3804 to i64
-  %3806 = ashr exact i64 %3805, 32
-  call fastcc void @transparent_crc(i64 %3806, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1971, i64 0, i64 0), i32 signext undef)
-  %3807 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 4, i32 0) to i128*), align 2
-  %3808 = shl i128 %3807, 60
-  %3809 = ashr i128 %3808, 108
-  %3810 = shl nsw i128 %3809, 32
-  %3811 = trunc i128 %3810 to i64
-  %3812 = ashr exact i64 %3811, 32
-  call fastcc void @transparent_crc(i64 %3812, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1972, i64 0, i64 0), i32 signext undef)
-  %3813 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 4, i32 0) to i128*), align 2
-  %3814 = shl i128 %3813, 80
-  %3815 = ashr i128 %3814, 110
-  %3816 = shl nsw i128 %3815, 32
-  %3817 = trunc i128 %3816 to i64
-  %3818 = ashr exact i64 %3817, 32
-  call fastcc void @transparent_crc(i64 %3818, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1973, i64 0, i64 0), i32 signext undef)
-  %3819 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 4, i32 0) to i128*), align 2
-  %3820 = lshr i128 %3819, 28
-  %3821 = trunc i128 %3820 to i64
-  %3822 = and i64 %3821, 3
-  call fastcc void @transparent_crc(i64 %3822, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1974, i64 0, i64 0), i32 signext undef)
-  %3823 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 4, i32 0) to i128*), align 2
-  %3824 = shl i128 %3823, 100
-  %3825 = ashr i128 %3824, 107
-  %3826 = shl nsw i128 %3825, 32
-  %3827 = trunc i128 %3826 to i64
-  %3828 = ashr exact i64 %3827, 32
-  call fastcc void @transparent_crc(i64 %3828, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1975, i64 0, i64 0), i32 signext undef)
-  %3829 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3830 = lshr i80 %3829, 57
-  %3831 = trunc i80 %3830 to i64
-  call fastcc void @transparent_crc(i64 %3831, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1976, i64 0, i64 0), i32 signext undef)
-  %3832 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3833 = shl i80 %3832, 23
-  %3834 = ashr i80 %3833, 64
-  %3835 = shl nsw i80 %3834, 32
-  %3836 = trunc i80 %3835 to i64
-  %3837 = ashr exact i64 %3836, 32
-  call fastcc void @transparent_crc(i64 %3837, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1977, i64 0, i64 0), i32 signext undef)
-  %3838 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3839 = shl i80 %3838, 39
-  %3840 = ashr i80 %3839, 62
-  %3841 = shl nsw i80 %3840, 32
-  %3842 = trunc i80 %3841 to i64
-  %3843 = ashr exact i64 %3842, 32
-  call fastcc void @transparent_crc(i64 %3843, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1978, i64 0, i64 0), i32 signext undef)
-  %3844 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3845 = shl i80 %3844, 57
-  %3846 = ashr i80 %3845, 58
-  %3847 = shl nsw i80 %3846, 32
-  %3848 = trunc i80 %3847 to i64
-  %3849 = ashr exact i64 %3848, 32
-  call fastcc void @transparent_crc(i64 %3849, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.1979, i64 0, i64 0), i32 signext undef)
-  %3850 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 1) to i80*), align 2
-  %3851 = lshr i80 %3850, 49
-  %3852 = trunc i80 %3851 to i64
-  call fastcc void @transparent_crc(i64 %3852, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1980, i64 0, i64 0), i32 signext undef)
-  %3853 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 1) to i80*), align 2
-  %3854 = lshr i80 %3853, 24
-  %3855 = trunc i80 %3854 to i64
-  %3856 = and i64 %3855, 33554431
-  call fastcc void @transparent_crc(i64 %3856, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1981, i64 0, i64 0), i32 signext undef)
-  %3857 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 1) to i80*), align 2
-  %3858 = shl i80 %3857, 56
-  %3859 = ashr i80 %3858, 68
-  %3860 = shl nsw i80 %3859, 32
-  %3861 = trunc i80 %3860 to i64
-  %3862 = ashr exact i64 %3861, 32
-  call fastcc void @transparent_crc(i64 %3862, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1982, i64 0, i64 0), i32 signext undef)
-  %3863 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 1) to i80*), align 2
-  %3864 = lshr i80 %3863, 11
-  %3865 = trunc i80 %3864 to i64
-  %3866 = and i64 %3865, 1
-  call fastcc void @transparent_crc(i64 %3866, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1983, i64 0, i64 0), i32 signext undef)
-  %3867 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 5, i32 1) to i80*), align 2
-  %3868 = shl i80 %3867, 69
-  %3869 = ashr i80 %3868, 72
-  %3870 = shl nsw i80 %3869, 32
-  %3871 = trunc i80 %3870 to i64
-  %3872 = ashr exact i64 %3871, 32
-  call fastcc void @transparent_crc(i64 %3872, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1984, i64 0, i64 0), i32 signext undef)
-  %3873 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 6), align 2, !tbaa !50
-  %3874 = sext i16 %3873 to i64
-  call fastcc void @transparent_crc(i64 %3874, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1985, i64 0, i64 0), i32 signext undef)
-  %3875 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2938, i64 0, i32 7), align 2, !tbaa !51
-  %3876 = zext i16 %3875 to i64
-  call fastcc void @transparent_crc(i64 %3876, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.1986, i64 0, i64 0), i32 signext undef)
-  %3877 = load i16, i16* undef, align 2, !tbaa !24
-  %3878 = sext i16 %3877 to i64
-  call fastcc void @transparent_crc(i64 %3878, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.1987, i64 0, i64 0), i32 signext undef)
-  %3879 = load volatile i128, i128* undef, align 2
-  %3880 = shl i128 %3879, 29
-  %3881 = ashr i128 %3880, 97
-  %3882 = shl nsw i128 %3881, 32
-  %3883 = trunc i128 %3882 to i64
-  %3884 = ashr exact i64 %3883, 32
-  call fastcc void @transparent_crc(i64 %3884, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2002, i64 0, i64 0), i32 signext undef)
-  %3885 = load volatile i128, i128* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2003, i64 0, i64 0), i32 signext undef)
-  %3886 = load volatile i128, i128* undef, align 2
-  %3887 = shl i128 %3886, 80
-  %3888 = ashr i128 %3887, 110
-  %3889 = shl nsw i128 %3888, 32
-  %3890 = trunc i128 %3889 to i64
-  %3891 = ashr exact i64 %3890, 32
-  call fastcc void @transparent_crc(i64 %3891, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2004, i64 0, i64 0), i32 signext undef)
-  %3892 = load volatile i128, i128* undef, align 2
-  %3893 = lshr i128 %3892, 28
-  %3894 = trunc i128 %3893 to i64
-  %3895 = and i64 %3894, 3
-  call fastcc void @transparent_crc(i64 %3895, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2005, i64 0, i64 0), i32 signext undef)
-  %3896 = load volatile i128, i128* undef, align 2
-  %3897 = shl i128 %3896, 100
-  %3898 = ashr i128 %3897, 107
-  %3899 = shl nsw i128 %3898, 32
-  %3900 = trunc i128 %3899 to i64
-  %3901 = ashr exact i64 %3900, 32
-  call fastcc void @transparent_crc(i64 %3901, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2006, i64 0, i64 0), i32 signext undef)
-  %3902 = getelementptr inbounds [10 x %5], [10 x %5]* bitcast (<{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>* @g_2939 to [10 x %5]*), i64 0, i64 0, i32 5
-  %3903 = bitcast %4* %3902 to i80*
-  %3904 = load volatile i80, i80* %3903, align 2
-  %3905 = lshr i80 %3904, 57
-  %3906 = trunc i80 %3905 to i64
-  call fastcc void @transparent_crc(i64 %3906, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2007, i64 0, i64 0), i32 signext undef)
-  %3907 = load volatile i80, i80* %3903, align 2
-  %3908 = shl i80 %3907, 23
-  %3909 = ashr i80 %3908, 64
-  %3910 = shl nsw i80 %3909, 32
-  %3911 = trunc i80 %3910 to i64
-  %3912 = ashr exact i64 %3911, 32
-  call fastcc void @transparent_crc(i64 %3912, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2008, i64 0, i64 0), i32 signext undef)
-  %3913 = load volatile i80, i80* %3903, align 2
-  %3914 = shl i80 %3913, 39
-  %3915 = ashr i80 %3914, 62
-  %3916 = shl nsw i80 %3915, 32
-  %3917 = trunc i80 %3916 to i64
-  %3918 = ashr exact i64 %3917, 32
-  call fastcc void @transparent_crc(i64 %3918, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2009, i64 0, i64 0), i32 signext undef)
-  %3919 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %3920 = sext i8 %3919 to i64
-  call fastcc void @transparent_crc(i64 %3920, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2028, i64 0, i64 0), i32 signext undef)
-  %3921 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %3922 = sext i16 %3921 to i64
-  call fastcc void @transparent_crc(i64 %3922, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2029, i64 0, i64 0), i32 signext undef)
-  %3923 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %3923, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2030, i64 0, i64 0), i32 signext undef)
-  %3924 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %3925 = sext i32 %3924 to i64
-  call fastcc void @transparent_crc(i64 %3925, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2031, i64 0, i64 0), i32 signext undef)
-  %3926 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 4, i32 0) to i128*), align 2
-  %3927 = ashr i128 %3926, 99
-  %3928 = shl nsw i128 %3927, 32
-  %3929 = trunc i128 %3928 to i64
-  %3930 = ashr exact i64 %3929, 32
-  call fastcc void @transparent_crc(i64 %3930, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2032, i64 0, i64 0), i32 signext undef)
-  %3931 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 4, i32 0) to i128*), align 2
-  %3932 = shl i128 %3931, 29
-  %3933 = ashr i128 %3932, 97
-  %3934 = shl nsw i128 %3933, 32
-  %3935 = trunc i128 %3934 to i64
-  %3936 = ashr exact i64 %3935, 32
-  call fastcc void @transparent_crc(i64 %3936, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2033, i64 0, i64 0), i32 signext undef)
-  %3937 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 4, i32 0) to i128*), align 2
-  %3938 = shl i128 %3937, 60
-  %3939 = ashr i128 %3938, 108
-  %3940 = shl nsw i128 %3939, 32
-  %3941 = trunc i128 %3940 to i64
-  %3942 = ashr exact i64 %3941, 32
-  call fastcc void @transparent_crc(i64 %3942, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2034, i64 0, i64 0), i32 signext undef)
-  %3943 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 4, i32 0) to i128*), align 2
-  %3944 = shl i128 %3943, 80
-  %3945 = ashr i128 %3944, 110
-  %3946 = shl nsw i128 %3945, 32
-  %3947 = trunc i128 %3946 to i64
+  call fastcc void @transparent_crc(i64 %3800, ptr @.str.1973, i32 signext undef)
+  %3801 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 4, i32 0), align 2
+  %3802 = lshr i128 %3801, 28
+  %3803 = trunc i128 %3802 to i64
+  %3804 = and i64 %3803, 3
+  call fastcc void @transparent_crc(i64 %3804, ptr @.str.1974, i32 signext undef)
+  %3805 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 4, i32 0), align 2
+  %3806 = shl i128 %3805, 100
+  %3807 = ashr i128 %3806, 107
+  %3808 = shl nsw i128 %3807, 32
+  %3809 = trunc i128 %3808 to i64
+  %3810 = ashr exact i64 %3809, 32
+  call fastcc void @transparent_crc(i64 %3810, ptr @.str.1975, i32 signext undef)
+  %3811 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 0, i32 0), align 2
+  %3812 = lshr i80 %3811, 57
+  %3813 = trunc i80 %3812 to i64
+  call fastcc void @transparent_crc(i64 %3813, ptr @.str.1976, i32 signext undef)
+  %3814 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 0, i32 0), align 2
+  %3815 = shl i80 %3814, 23
+  %3816 = ashr i80 %3815, 64
+  %3817 = shl nsw i80 %3816, 32
+  %3818 = trunc i80 %3817 to i64
+  %3819 = ashr exact i64 %3818, 32
+  call fastcc void @transparent_crc(i64 %3819, ptr @.str.1977, i32 signext undef)
+  %3820 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 0, i32 0), align 2
+  %3821 = shl i80 %3820, 39
+  %3822 = ashr i80 %3821, 62
+  %3823 = shl nsw i80 %3822, 32
+  %3824 = trunc i80 %3823 to i64
+  %3825 = ashr exact i64 %3824, 32
+  call fastcc void @transparent_crc(i64 %3825, ptr @.str.1978, i32 signext undef)
+  %3826 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 0, i32 0), align 2
+  %3827 = shl i80 %3826, 57
+  %3828 = ashr i80 %3827, 58
+  %3829 = shl nsw i80 %3828, 32
+  %3830 = trunc i80 %3829 to i64
+  %3831 = ashr exact i64 %3830, 32
+  call fastcc void @transparent_crc(i64 %3831, ptr @.str.1979, i32 signext undef)
+  %3832 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 1), align 2
+  %3833 = lshr i80 %3832, 49
+  %3834 = trunc i80 %3833 to i64
+  call fastcc void @transparent_crc(i64 %3834, ptr @.str.1980, i32 signext undef)
+  %3835 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 1), align 2
+  %3836 = lshr i80 %3835, 24
+  %3837 = trunc i80 %3836 to i64
+  %3838 = and i64 %3837, 33554431
+  call fastcc void @transparent_crc(i64 %3838, ptr @.str.1981, i32 signext undef)
+  %3839 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 1), align 2
+  %3840 = shl i80 %3839, 56
+  %3841 = ashr i80 %3840, 68
+  %3842 = shl nsw i80 %3841, 32
+  %3843 = trunc i80 %3842 to i64
+  %3844 = ashr exact i64 %3843, 32
+  call fastcc void @transparent_crc(i64 %3844, ptr @.str.1982, i32 signext undef)
+  %3845 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 1), align 2
+  %3846 = lshr i80 %3845, 11
+  %3847 = trunc i80 %3846 to i64
+  %3848 = and i64 %3847, 1
+  call fastcc void @transparent_crc(i64 %3848, ptr @.str.1983, i32 signext undef)
+  %3849 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 5, i32 1), align 2
+  %3850 = shl i80 %3849, 69
+  %3851 = ashr i80 %3850, 72
+  %3852 = shl nsw i80 %3851, 32
+  %3853 = trunc i80 %3852 to i64
+  %3854 = ashr exact i64 %3853, 32
+  call fastcc void @transparent_crc(i64 %3854, ptr @.str.1984, i32 signext undef)
+  %3855 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 6), align 2, !tbaa !50
+  %3856 = sext i16 %3855 to i64
+  call fastcc void @transparent_crc(i64 %3856, ptr @.str.1985, i32 signext undef)
+  %3857 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2938, i64 0, i32 7), align 2, !tbaa !51
+  %3858 = zext i16 %3857 to i64
+  call fastcc void @transparent_crc(i64 %3858, ptr @.str.1986, i32 signext undef)
+  %3859 = load i16, ptr undef, align 2, !tbaa !24
+  %3860 = sext i16 %3859 to i64
+  call fastcc void @transparent_crc(i64 %3860, ptr @.str.1987, i32 signext undef)
+  %3861 = load volatile i128, ptr undef, align 2
+  %3862 = shl i128 %3861, 29
+  %3863 = ashr i128 %3862, 97
+  %3864 = shl nsw i128 %3863, 32
+  %3865 = trunc i128 %3864 to i64
+  %3866 = ashr exact i64 %3865, 32
+  call fastcc void @transparent_crc(i64 %3866, ptr @.str.2002, i32 signext undef)
+  %3867 = load volatile i128, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2003, i32 signext undef)
+  %3868 = load volatile i128, ptr undef, align 2
+  %3869 = shl i128 %3868, 80
+  %3870 = ashr i128 %3869, 110
+  %3871 = shl nsw i128 %3870, 32
+  %3872 = trunc i128 %3871 to i64
+  %3873 = ashr exact i64 %3872, 32
+  call fastcc void @transparent_crc(i64 %3873, ptr @.str.2004, i32 signext undef)
+  %3874 = load volatile i128, ptr undef, align 2
+  %3875 = lshr i128 %3874, 28
+  %3876 = trunc i128 %3875 to i64
+  %3877 = and i64 %3876, 3
+  call fastcc void @transparent_crc(i64 %3877, ptr @.str.2005, i32 signext undef)
+  %3878 = load volatile i128, ptr undef, align 2
+  %3879 = shl i128 %3878, 100
+  %3880 = ashr i128 %3879, 107
+  %3881 = shl nsw i128 %3880, 32
+  %3882 = trunc i128 %3881 to i64
+  %3883 = ashr exact i64 %3882, 32
+  call fastcc void @transparent_crc(i64 %3883, ptr @.str.2006, i32 signext undef)
+  %3884 = getelementptr inbounds [10 x %5], ptr bitcast (<{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>* @g_2939 to ptr), i64 0, i64 0, i32 5
+  %3885 = load volatile i80, ptr %3884, align 2
+  %3886 = lshr i80 %3885, 57
+  %3887 = trunc i80 %3886 to i64
+  call fastcc void @transparent_crc(i64 %3887, ptr @.str.2007, i32 signext undef)
+  %3888 = load volatile i80, ptr %3884, align 2
+  %3889 = shl i80 %3888, 23
+  %3890 = ashr i80 %3889, 64
+  %3891 = shl nsw i80 %3890, 32
+  %3892 = trunc i80 %3891 to i64
+  %3893 = ashr exact i64 %3892, 32
+  call fastcc void @transparent_crc(i64 %3893, ptr @.str.2008, i32 signext undef)
+  %3894 = load volatile i80, ptr %3884, align 2
+  %3895 = shl i80 %3894, 39
+  %3896 = ashr i80 %3895, 62
+  %3897 = shl nsw i80 %3896, 32
+  %3898 = trunc i80 %3897 to i64
+  %3899 = ashr exact i64 %3898, 32
+  call fastcc void @transparent_crc(i64 %3899, ptr @.str.2009, i32 signext undef)
+  %3900 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %3901 = sext i8 %3900 to i64
+  call fastcc void @transparent_crc(i64 %3901, ptr @.str.2028, i32 signext undef)
+  %3902 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %3903 = sext i16 %3902 to i64
+  call fastcc void @transparent_crc(i64 %3903, ptr @.str.2029, i32 signext undef)
+  %3904 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %3904, ptr @.str.2030, i32 signext undef)
+  %3905 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %3906 = sext i32 %3905 to i64
+  call fastcc void @transparent_crc(i64 %3906, ptr @.str.2031, i32 signext undef)
+  %3907 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 4, i32 0), align 2
+  %3908 = ashr i128 %3907, 99
+  %3909 = shl nsw i128 %3908, 32
+  %3910 = trunc i128 %3909 to i64
+  %3911 = ashr exact i64 %3910, 32
+  call fastcc void @transparent_crc(i64 %3911, ptr @.str.2032, i32 signext undef)
+  %3912 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 4, i32 0), align 2
+  %3913 = shl i128 %3912, 29
+  %3914 = ashr i128 %3913, 97
+  %3915 = shl nsw i128 %3914, 32
+  %3916 = trunc i128 %3915 to i64
+  %3917 = ashr exact i64 %3916, 32
+  call fastcc void @transparent_crc(i64 %3917, ptr @.str.2033, i32 signext undef)
+  %3918 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 4, i32 0), align 2
+  %3919 = shl i128 %3918, 60
+  %3920 = ashr i128 %3919, 108
+  %3921 = shl nsw i128 %3920, 32
+  %3922 = trunc i128 %3921 to i64
+  %3923 = ashr exact i64 %3922, 32
+  call fastcc void @transparent_crc(i64 %3923, ptr @.str.2034, i32 signext undef)
+  %3924 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 4, i32 0), align 2
+  %3925 = shl i128 %3924, 80
+  %3926 = ashr i128 %3925, 110
+  %3927 = shl nsw i128 %3926, 32
+  %3928 = trunc i128 %3927 to i64
+  %3929 = ashr exact i64 %3928, 32
+  call fastcc void @transparent_crc(i64 %3929, ptr @.str.2035, i32 signext undef)
+  %3930 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 4, i32 0), align 2
+  %3931 = lshr i128 %3930, 28
+  %3932 = trunc i128 %3931 to i64
+  %3933 = and i64 %3932, 3
+  call fastcc void @transparent_crc(i64 %3933, ptr @.str.2036, i32 signext undef)
+  %3934 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 4, i32 0), align 2
+  %3935 = shl i128 %3934, 100
+  %3936 = ashr i128 %3935, 107
+  %3937 = shl nsw i128 %3936, 32
+  %3938 = trunc i128 %3937 to i64
+  %3939 = ashr exact i64 %3938, 32
+  call fastcc void @transparent_crc(i64 %3939, ptr @.str.2037, i32 signext undef)
+  %3940 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 0, i32 0), align 2
+  %3941 = lshr i80 %3940, 57
+  %3942 = trunc i80 %3941 to i64
+  call fastcc void @transparent_crc(i64 %3942, ptr @.str.2038, i32 signext undef)
+  %3943 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 0, i32 0), align 2
+  %3944 = shl i80 %3943, 23
+  %3945 = ashr i80 %3944, 64
+  %3946 = shl nsw i80 %3945, 32
+  %3947 = trunc i80 %3946 to i64
   %3948 = ashr exact i64 %3947, 32
-  call fastcc void @transparent_crc(i64 %3948, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2035, i64 0, i64 0), i32 signext undef)
-  %3949 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 4, i32 0) to i128*), align 2
-  %3950 = lshr i128 %3949, 28
-  %3951 = trunc i128 %3950 to i64
-  %3952 = and i64 %3951, 3
-  call fastcc void @transparent_crc(i64 %3952, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2036, i64 0, i64 0), i32 signext undef)
-  %3953 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 4, i32 0) to i128*), align 2
-  %3954 = shl i128 %3953, 100
-  %3955 = ashr i128 %3954, 107
-  %3956 = shl nsw i128 %3955, 32
-  %3957 = trunc i128 %3956 to i64
-  %3958 = ashr exact i64 %3957, 32
-  call fastcc void @transparent_crc(i64 %3958, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2037, i64 0, i64 0), i32 signext undef)
-  %3959 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3960 = lshr i80 %3959, 57
-  %3961 = trunc i80 %3960 to i64
-  call fastcc void @transparent_crc(i64 %3961, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2038, i64 0, i64 0), i32 signext undef)
-  %3962 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3963 = shl i80 %3962, 23
-  %3964 = ashr i80 %3963, 64
-  %3965 = shl nsw i80 %3964, 32
+  call fastcc void @transparent_crc(i64 %3948, ptr @.str.2039, i32 signext undef)
+  %3949 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 0, i32 0), align 2
+  %3950 = shl i80 %3949, 39
+  %3951 = ashr i80 %3950, 62
+  %3952 = shl nsw i80 %3951, 32
+  %3953 = trunc i80 %3952 to i64
+  %3954 = ashr exact i64 %3953, 32
+  call fastcc void @transparent_crc(i64 %3954, ptr @.str.2040, i32 signext undef)
+  %3955 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 0, i32 0), align 2
+  %3956 = shl i80 %3955, 57
+  %3957 = ashr i80 %3956, 58
+  %3958 = shl nsw i80 %3957, 32
+  %3959 = trunc i80 %3958 to i64
+  %3960 = ashr exact i64 %3959, 32
+  call fastcc void @transparent_crc(i64 %3960, ptr @.str.2041, i32 signext undef)
+  %3961 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 1), align 2
+  %3962 = lshr i80 %3961, 49
+  %3963 = trunc i80 %3962 to i64
+  call fastcc void @transparent_crc(i64 %3963, ptr @.str.2042, i32 signext undef)
+  %3964 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 1), align 2
+  %3965 = lshr i80 %3964, 24
   %3966 = trunc i80 %3965 to i64
-  %3967 = ashr exact i64 %3966, 32
-  call fastcc void @transparent_crc(i64 %3967, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2039, i64 0, i64 0), i32 signext undef)
-  %3968 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3969 = shl i80 %3968, 39
-  %3970 = ashr i80 %3969, 62
+  %3967 = and i64 %3966, 33554431
+  call fastcc void @transparent_crc(i64 %3967, ptr @.str.2043, i32 signext undef)
+  %3968 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 1), align 2
+  %3969 = shl i80 %3968, 56
+  %3970 = ashr i80 %3969, 68
   %3971 = shl nsw i80 %3970, 32
   %3972 = trunc i80 %3971 to i64
   %3973 = ashr exact i64 %3972, 32
-  call fastcc void @transparent_crc(i64 %3973, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2040, i64 0, i64 0), i32 signext undef)
-  %3974 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %3975 = shl i80 %3974, 57
-  %3976 = ashr i80 %3975, 58
-  %3977 = shl nsw i80 %3976, 32
-  %3978 = trunc i80 %3977 to i64
-  %3979 = ashr exact i64 %3978, 32
-  call fastcc void @transparent_crc(i64 %3979, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2041, i64 0, i64 0), i32 signext undef)
-  %3980 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 1) to i80*), align 2
-  %3981 = lshr i80 %3980, 49
+  call fastcc void @transparent_crc(i64 %3973, ptr @.str.2044, i32 signext undef)
+  %3974 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 1), align 2
+  %3975 = lshr i80 %3974, 11
+  %3976 = trunc i80 %3975 to i64
+  %3977 = and i64 %3976, 1
+  call fastcc void @transparent_crc(i64 %3977, ptr @.str.2045, i32 signext undef)
+  %3978 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 5, i32 1), align 2
+  %3979 = shl i80 %3978, 69
+  %3980 = ashr i80 %3979, 72
+  %3981 = shl nsw i80 %3980, 32
   %3982 = trunc i80 %3981 to i64
-  call fastcc void @transparent_crc(i64 %3982, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2042, i64 0, i64 0), i32 signext undef)
-  %3983 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 1) to i80*), align 2
-  %3984 = lshr i80 %3983, 24
-  %3985 = trunc i80 %3984 to i64
-  %3986 = and i64 %3985, 33554431
-  call fastcc void @transparent_crc(i64 %3986, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2043, i64 0, i64 0), i32 signext undef)
-  %3987 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 1) to i80*), align 2
-  %3988 = shl i80 %3987, 56
-  %3989 = ashr i80 %3988, 68
-  %3990 = shl nsw i80 %3989, 32
-  %3991 = trunc i80 %3990 to i64
-  %3992 = ashr exact i64 %3991, 32
-  call fastcc void @transparent_crc(i64 %3992, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2044, i64 0, i64 0), i32 signext undef)
-  %3993 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 1) to i80*), align 2
-  %3994 = lshr i80 %3993, 11
-  %3995 = trunc i80 %3994 to i64
-  %3996 = and i64 %3995, 1
-  call fastcc void @transparent_crc(i64 %3996, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2045, i64 0, i64 0), i32 signext undef)
-  %3997 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 5, i32 1) to i80*), align 2
-  %3998 = shl i80 %3997, 69
-  %3999 = ashr i80 %3998, 72
-  %4000 = shl nsw i80 %3999, 32
-  %4001 = trunc i80 %4000 to i64
-  %4002 = ashr exact i64 %4001, 32
-  call fastcc void @transparent_crc(i64 %4002, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2046, i64 0, i64 0), i32 signext undef)
-  %4003 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 6), align 2, !tbaa !50
-  %4004 = sext i16 %4003 to i64
-  call fastcc void @transparent_crc(i64 %4004, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2047, i64 0, i64 0), i32 signext undef)
-  %4005 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2940, i64 0, i32 7), align 2, !tbaa !51
-  %4006 = zext i16 %4005 to i64
-  call fastcc void @transparent_crc(i64 %4006, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2048, i64 0, i64 0), i32 signext undef)
-  %4007 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 0), align 2, !tbaa !24
-  %4008 = sext i16 %4007 to i64
-  call fastcc void @transparent_crc(i64 %4008, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2049, i64 0, i64 0), i32 signext undef)
-  %4009 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 1), align 2, !tbaa !52
-  %4010 = sext i8 %4009 to i64
-  call fastcc void @transparent_crc(i64 %4010, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2050, i64 0, i64 0), i32 signext undef)
-  %4011 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 2, i32 0) to i120*), align 1
-  %4012 = lshr i120 %4011, 107
-  %4013 = trunc i120 %4012 to i64
-  call fastcc void @transparent_crc(i64 %4013, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2051, i64 0, i64 0), i32 signext undef)
-  %4014 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 2, i32 0) to i120*), align 1
-  %4015 = lshr i120 %4014, 78
-  %4016 = trunc i120 %4015 to i64
-  %4017 = and i64 %4016, 536870911
-  call fastcc void @transparent_crc(i64 %4017, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2052, i64 0, i64 0), i32 signext undef)
-  %4018 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 2, i32 0) to i120*), align 1
-  %4019 = shl i120 %4018, 42
-  %4020 = ashr i120 %4019, 104
-  %4021 = shl nsw i120 %4020, 32
-  %4022 = trunc i120 %4021 to i64
-  %4023 = ashr exact i64 %4022, 32
-  call fastcc void @transparent_crc(i64 %4023, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2053, i64 0, i64 0), i32 signext undef)
-  %4024 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 2, i32 0) to i120*), align 1
-  %4025 = shl i120 %4024, 58
-  %4026 = ashr i120 %4025, 105
-  %4027 = shl nsw i120 %4026, 32
-  %4028 = trunc i120 %4027 to i64
-  %4029 = ashr exact i64 %4028, 32
-  call fastcc void @transparent_crc(i64 %4029, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2054, i64 0, i64 0), i32 signext undef)
-  %4030 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 2, i32 0) to i120*), align 1
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2065, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2066, i64 0, i64 0), i32 signext undef)
-  %4031 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 4, i32 0) to i128*), align 2
-  %4032 = lshr i128 %4031, 28
-  %4033 = trunc i128 %4032 to i64
-  %4034 = and i64 %4033, 3
-  call fastcc void @transparent_crc(i64 %4034, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2067, i64 0, i64 0), i32 signext undef)
-  %4035 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 4, i32 0) to i128*), align 2
-  %4036 = shl i128 %4035, 100
-  %4037 = ashr i128 %4036, 107
-  %4038 = shl nsw i128 %4037, 32
-  %4039 = trunc i128 %4038 to i64
-  %4040 = ashr exact i64 %4039, 32
-  call fastcc void @transparent_crc(i64 %4040, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2068, i64 0, i64 0), i32 signext undef)
-  %4041 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4042 = lshr i80 %4041, 57
-  %4043 = trunc i80 %4042 to i64
-  call fastcc void @transparent_crc(i64 %4043, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2069, i64 0, i64 0), i32 signext undef)
-  %4044 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4045 = shl i80 %4044, 23
-  %4046 = ashr i80 %4045, 64
-  %4047 = shl nsw i80 %4046, 32
+  %3983 = ashr exact i64 %3982, 32
+  call fastcc void @transparent_crc(i64 %3983, ptr @.str.2046, i32 signext undef)
+  %3984 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 6), align 2, !tbaa !50
+  %3985 = sext i16 %3984 to i64
+  call fastcc void @transparent_crc(i64 %3985, ptr @.str.2047, i32 signext undef)
+  %3986 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2940, i64 0, i32 7), align 2, !tbaa !51
+  %3987 = zext i16 %3986 to i64
+  call fastcc void @transparent_crc(i64 %3987, ptr @.str.2048, i32 signext undef)
+  %3988 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 0), align 2, !tbaa !24
+  %3989 = sext i16 %3988 to i64
+  call fastcc void @transparent_crc(i64 %3989, ptr @.str.2049, i32 signext undef)
+  %3990 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 1), align 2, !tbaa !52
+  %3991 = sext i8 %3990 to i64
+  call fastcc void @transparent_crc(i64 %3991, ptr @.str.2050, i32 signext undef)
+  %3992 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 2, i32 0), align 1
+  %3993 = lshr i120 %3992, 107
+  %3994 = trunc i120 %3993 to i64
+  call fastcc void @transparent_crc(i64 %3994, ptr @.str.2051, i32 signext undef)
+  %3995 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 2, i32 0), align 1
+  %3996 = lshr i120 %3995, 78
+  %3997 = trunc i120 %3996 to i64
+  %3998 = and i64 %3997, 536870911
+  call fastcc void @transparent_crc(i64 %3998, ptr @.str.2052, i32 signext undef)
+  %3999 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 2, i32 0), align 1
+  %4000 = shl i120 %3999, 42
+  %4001 = ashr i120 %4000, 104
+  %4002 = shl nsw i120 %4001, 32
+  %4003 = trunc i120 %4002 to i64
+  %4004 = ashr exact i64 %4003, 32
+  call fastcc void @transparent_crc(i64 %4004, ptr @.str.2053, i32 signext undef)
+  %4005 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 2, i32 0), align 1
+  %4006 = shl i120 %4005, 58
+  %4007 = ashr i120 %4006, 105
+  %4008 = shl nsw i120 %4007, 32
+  %4009 = trunc i120 %4008 to i64
+  %4010 = ashr exact i64 %4009, 32
+  call fastcc void @transparent_crc(i64 %4010, ptr @.str.2054, i32 signext undef)
+  %4011 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 2, i32 0), align 1
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2065, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2066, i32 signext undef)
+  %4012 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 4, i32 0), align 2
+  %4013 = lshr i128 %4012, 28
+  %4014 = trunc i128 %4013 to i64
+  %4015 = and i64 %4014, 3
+  call fastcc void @transparent_crc(i64 %4015, ptr @.str.2067, i32 signext undef)
+  %4016 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 4, i32 0), align 2
+  %4017 = shl i128 %4016, 100
+  %4018 = ashr i128 %4017, 107
+  %4019 = shl nsw i128 %4018, 32
+  %4020 = trunc i128 %4019 to i64
+  %4021 = ashr exact i64 %4020, 32
+  call fastcc void @transparent_crc(i64 %4021, ptr @.str.2068, i32 signext undef)
+  %4022 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 0, i32 0), align 2
+  %4023 = lshr i80 %4022, 57
+  %4024 = trunc i80 %4023 to i64
+  call fastcc void @transparent_crc(i64 %4024, ptr @.str.2069, i32 signext undef)
+  %4025 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 0, i32 0), align 2
+  %4026 = shl i80 %4025, 23
+  %4027 = ashr i80 %4026, 64
+  %4028 = shl nsw i80 %4027, 32
+  %4029 = trunc i80 %4028 to i64
+  %4030 = ashr exact i64 %4029, 32
+  call fastcc void @transparent_crc(i64 %4030, ptr @.str.2070, i32 signext undef)
+  %4031 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 0, i32 0), align 2
+  %4032 = shl i80 %4031, 39
+  %4033 = ashr i80 %4032, 62
+  %4034 = shl nsw i80 %4033, 32
+  %4035 = trunc i80 %4034 to i64
+  %4036 = ashr exact i64 %4035, 32
+  call fastcc void @transparent_crc(i64 %4036, ptr @.str.2071, i32 signext undef)
+  %4037 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 0, i32 0), align 2
+  %4038 = shl i80 %4037, 57
+  %4039 = ashr i80 %4038, 58
+  %4040 = shl nsw i80 %4039, 32
+  %4041 = trunc i80 %4040 to i64
+  %4042 = ashr exact i64 %4041, 32
+  call fastcc void @transparent_crc(i64 %4042, ptr @.str.2072, i32 signext undef)
+  %4043 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 1), align 2
+  %4044 = lshr i80 %4043, 49
+  %4045 = trunc i80 %4044 to i64
+  call fastcc void @transparent_crc(i64 %4045, ptr @.str.2073, i32 signext undef)
+  %4046 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 1), align 2
+  %4047 = lshr i80 %4046, 24
   %4048 = trunc i80 %4047 to i64
-  %4049 = ashr exact i64 %4048, 32
-  call fastcc void @transparent_crc(i64 %4049, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2070, i64 0, i64 0), i32 signext undef)
-  %4050 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4051 = shl i80 %4050, 39
-  %4052 = ashr i80 %4051, 62
+  %4049 = and i64 %4048, 33554431
+  call fastcc void @transparent_crc(i64 %4049, ptr @.str.2074, i32 signext undef)
+  %4050 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 1), align 2
+  %4051 = shl i80 %4050, 56
+  %4052 = ashr i80 %4051, 68
   %4053 = shl nsw i80 %4052, 32
   %4054 = trunc i80 %4053 to i64
   %4055 = ashr exact i64 %4054, 32
-  call fastcc void @transparent_crc(i64 %4055, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2071, i64 0, i64 0), i32 signext undef)
-  %4056 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4057 = shl i80 %4056, 57
-  %4058 = ashr i80 %4057, 58
-  %4059 = shl nsw i80 %4058, 32
-  %4060 = trunc i80 %4059 to i64
-  %4061 = ashr exact i64 %4060, 32
-  call fastcc void @transparent_crc(i64 %4061, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2072, i64 0, i64 0), i32 signext undef)
-  %4062 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 1) to i80*), align 2
-  %4063 = lshr i80 %4062, 49
+  call fastcc void @transparent_crc(i64 %4055, ptr @.str.2075, i32 signext undef)
+  %4056 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 1), align 2
+  %4057 = lshr i80 %4056, 11
+  %4058 = trunc i80 %4057 to i64
+  %4059 = and i64 %4058, 1
+  call fastcc void @transparent_crc(i64 %4059, ptr @.str.2076, i32 signext undef)
+  %4060 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 5, i32 1), align 2
+  %4061 = shl i80 %4060, 69
+  %4062 = ashr i80 %4061, 72
+  %4063 = shl nsw i80 %4062, 32
   %4064 = trunc i80 %4063 to i64
-  call fastcc void @transparent_crc(i64 %4064, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2073, i64 0, i64 0), i32 signext undef)
-  %4065 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 1) to i80*), align 2
-  %4066 = lshr i80 %4065, 24
-  %4067 = trunc i80 %4066 to i64
-  %4068 = and i64 %4067, 33554431
-  call fastcc void @transparent_crc(i64 %4068, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2074, i64 0, i64 0), i32 signext undef)
-  %4069 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 1) to i80*), align 2
-  %4070 = shl i80 %4069, 56
-  %4071 = ashr i80 %4070, 68
-  %4072 = shl nsw i80 %4071, 32
-  %4073 = trunc i80 %4072 to i64
-  %4074 = ashr exact i64 %4073, 32
-  call fastcc void @transparent_crc(i64 %4074, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2075, i64 0, i64 0), i32 signext undef)
-  %4075 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 1) to i80*), align 2
-  %4076 = lshr i80 %4075, 11
-  %4077 = trunc i80 %4076 to i64
-  %4078 = and i64 %4077, 1
-  call fastcc void @transparent_crc(i64 %4078, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2076, i64 0, i64 0), i32 signext undef)
-  %4079 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 5, i32 1) to i80*), align 2
-  %4080 = shl i80 %4079, 69
-  %4081 = ashr i80 %4080, 72
-  %4082 = shl nsw i80 %4081, 32
-  %4083 = trunc i80 %4082 to i64
-  %4084 = ashr exact i64 %4083, 32
-  call fastcc void @transparent_crc(i64 %4084, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2077, i64 0, i64 0), i32 signext undef)
-  %4085 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 6), align 2, !tbaa !50
-  %4086 = sext i16 %4085 to i64
-  call fastcc void @transparent_crc(i64 %4086, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2078, i64 0, i64 0), i32 signext undef)
-  %4087 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2941, i64 0, i32 7), align 2, !tbaa !51
-  %4088 = zext i16 %4087 to i64
-  call fastcc void @transparent_crc(i64 %4088, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2079, i64 0, i64 0), i32 signext undef)
-  %4089 = load i16, i16* undef, align 2, !tbaa !24
-  %4090 = sext i16 %4089 to i64
-  call fastcc void @transparent_crc(i64 %4090, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2080, i64 0, i64 0), i32 signext undef)
-  %4091 = load i8, i8* undef, align 2, !tbaa !52
-  %4092 = sext i8 %4091 to i64
-  call fastcc void @transparent_crc(i64 %4092, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2081, i64 0, i64 0), i32 signext undef)
-  %4093 = load volatile i120, i120* undef, align 1
-  %4094 = lshr i120 %4093, 107
+  %4065 = ashr exact i64 %4064, 32
+  call fastcc void @transparent_crc(i64 %4065, ptr @.str.2077, i32 signext undef)
+  %4066 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 6), align 2, !tbaa !50
+  %4067 = sext i16 %4066 to i64
+  call fastcc void @transparent_crc(i64 %4067, ptr @.str.2078, i32 signext undef)
+  %4068 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2941, i64 0, i32 7), align 2, !tbaa !51
+  %4069 = zext i16 %4068 to i64
+  call fastcc void @transparent_crc(i64 %4069, ptr @.str.2079, i32 signext undef)
+  %4070 = load i16, ptr undef, align 2, !tbaa !24
+  %4071 = sext i16 %4070 to i64
+  call fastcc void @transparent_crc(i64 %4071, ptr @.str.2080, i32 signext undef)
+  %4072 = load i8, ptr undef, align 2, !tbaa !52
+  %4073 = sext i8 %4072 to i64
+  call fastcc void @transparent_crc(i64 %4073, ptr @.str.2081, i32 signext undef)
+  %4074 = load volatile i120, ptr undef, align 1
+  %4075 = lshr i120 %4074, 107
+  %4076 = trunc i120 %4075 to i64
+  call fastcc void @transparent_crc(i64 %4076, ptr @.str.2082, i32 signext undef)
+  %4077 = load volatile i120, ptr undef, align 1
+  %4078 = lshr i120 %4077, 78
+  %4079 = trunc i120 %4078 to i64
+  %4080 = and i64 %4079, 536870911
+  call fastcc void @transparent_crc(i64 %4080, ptr @.str.2083, i32 signext undef)
+  %4081 = load volatile i120, ptr undef, align 1
+  %4082 = shl i120 %4081, 42
+  %4083 = ashr i120 %4082, 104
+  %4084 = shl nsw i120 %4083, 32
+  %4085 = trunc i120 %4084 to i64
+  %4086 = ashr exact i64 %4085, 32
+  call fastcc void @transparent_crc(i64 %4086, ptr @.str.2084, i32 signext undef)
+  %4087 = load volatile i120, ptr undef, align 1
+  %4088 = shl i120 %4087, 58
+  %4089 = ashr i120 %4088, 105
+  %4090 = shl nsw i120 %4089, 32
+  %4091 = trunc i120 %4090 to i64
+  %4092 = ashr exact i64 %4091, 32
+  call fastcc void @transparent_crc(i64 %4092, ptr @.str.2085, i32 signext undef)
+  %4093 = load volatile i120, ptr undef, align 1
+  %4094 = lshr i120 %4093, 41
   %4095 = trunc i120 %4094 to i64
-  call fastcc void @transparent_crc(i64 %4095, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2082, i64 0, i64 0), i32 signext undef)
-  %4096 = load volatile i120, i120* undef, align 1
-  %4097 = lshr i120 %4096, 78
-  %4098 = trunc i120 %4097 to i64
-  %4099 = and i64 %4098, 536870911
-  call fastcc void @transparent_crc(i64 %4099, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2083, i64 0, i64 0), i32 signext undef)
-  %4100 = load volatile i120, i120* undef, align 1
-  %4101 = shl i120 %4100, 42
-  %4102 = ashr i120 %4101, 104
-  %4103 = shl nsw i120 %4102, 32
+  %4096 = and i64 %4095, 63
+  call fastcc void @transparent_crc(i64 %4096, ptr @.str.2086, i32 signext undef)
+  %4097 = load volatile i120, ptr undef, align 1
+  %4098 = lshr i120 %4097, 19
+  %4099 = trunc i120 %4098 to i64
+  %4100 = and i64 %4099, 4194303
+  call fastcc void @transparent_crc(i64 %4100, ptr @.str.2087, i32 signext undef)
+  %4101 = load volatile i120, ptr undef, align 1
+  %4102 = shl i120 %4101, 101
+  %4103 = ashr exact i120 %4102, 69
   %4104 = trunc i120 %4103 to i64
   %4105 = ashr exact i64 %4104, 32
-  call fastcc void @transparent_crc(i64 %4105, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2084, i64 0, i64 0), i32 signext undef)
-  %4106 = load volatile i120, i120* undef, align 1
-  %4107 = shl i120 %4106, 58
-  %4108 = ashr i120 %4107, 105
-  %4109 = shl nsw i120 %4108, 32
-  %4110 = trunc i120 %4109 to i64
-  %4111 = ashr exact i64 %4110, 32
-  call fastcc void @transparent_crc(i64 %4111, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2085, i64 0, i64 0), i32 signext undef)
-  %4112 = load volatile i120, i120* undef, align 1
-  %4113 = lshr i120 %4112, 41
-  %4114 = trunc i120 %4113 to i64
-  %4115 = and i64 %4114, 63
-  call fastcc void @transparent_crc(i64 %4115, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2086, i64 0, i64 0), i32 signext undef)
-  %4116 = load volatile i120, i120* undef, align 1
-  %4117 = lshr i120 %4116, 19
-  %4118 = trunc i120 %4117 to i64
-  %4119 = and i64 %4118, 4194303
-  call fastcc void @transparent_crc(i64 %4119, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2087, i64 0, i64 0), i32 signext undef)
-  %4120 = load volatile i120, i120* undef, align 1
-  %4121 = shl i120 %4120, 101
-  %4122 = ashr exact i120 %4121, 69
-  %4123 = trunc i120 %4122 to i64
-  %4124 = ashr exact i64 %4123, 32
-  call fastcc void @transparent_crc(i64 %4124, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2088, i64 0, i64 0), i32 signext undef)
-  %4125 = load i8, i8* undef, align 2, !tbaa !45
-  %4126 = zext i8 %4125 to i64
-  call fastcc void @transparent_crc(i64 %4126, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2089, i64 0, i64 0), i32 signext undef)
-  %4127 = load i8, i8* undef, align 1, !tbaa !46
-  %4128 = sext i8 %4127 to i64
-  call fastcc void @transparent_crc(i64 %4128, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2090, i64 0, i64 0), i32 signext undef)
-  %4129 = load i16, i16* undef, align 2, !tbaa !47
-  %4130 = sext i16 %4129 to i64
-  call fastcc void @transparent_crc(i64 %4130, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2091, i64 0, i64 0), i32 signext undef)
-  %4131 = load i64, i64* undef, align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4131, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2092, i64 0, i64 0), i32 signext undef)
-  %4132 = load i32, i32* undef, align 2, !tbaa !49
-  %4133 = sext i32 %4132 to i64
-  call fastcc void @transparent_crc(i64 %4133, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2093, i64 0, i64 0), i32 signext undef)
-  %4134 = getelementptr inbounds [6 x [7 x [6 x %5]]], [6 x [7 x [6 x %5]]]* bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2942 to [6 x [7 x [6 x %5]]]*), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
-  %4135 = load volatile i128, i128* %4134, align 2
-  %4136 = ashr i128 %4135, 99
-  %4137 = shl nsw i128 %4136, 32
-  %4138 = trunc i128 %4137 to i64
-  %4139 = ashr exact i64 %4138, 32
-  call fastcc void @transparent_crc(i64 %4139, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2094, i64 0, i64 0), i32 signext undef)
-  %4140 = load volatile i128, i128* %4134, align 2
-  %4141 = shl i128 %4140, 29
-  %4142 = ashr i128 %4141, 97
-  %4143 = shl nsw i128 %4142, 32
-  %4144 = trunc i128 %4143 to i64
-  %4145 = ashr exact i64 %4144, 32
-  call fastcc void @transparent_crc(i64 %4145, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2095, i64 0, i64 0), i32 signext undef)
-  %4146 = load volatile i128, i128* %4134, align 2
-  %4147 = shl i128 %4146, 60
-  %4148 = ashr i128 %4147, 108
-  %4149 = shl nsw i128 %4148, 32
-  %4150 = trunc i128 %4149 to i64
-  %4151 = ashr exact i64 %4150, 32
-  call fastcc void @transparent_crc(i64 %4151, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2096, i64 0, i64 0), i32 signext undef)
-  %4152 = load volatile i128, i128* %4134, align 2
-  %4153 = shl i128 %4152, 80
-  %4154 = ashr i128 %4153, 110
-  %4155 = shl nsw i128 %4154, 32
-  %4156 = trunc i128 %4155 to i64
-  %4157 = ashr exact i64 %4156, 32
-  call fastcc void @transparent_crc(i64 %4157, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2097, i64 0, i64 0), i32 signext undef)
-  %4158 = load volatile i128, i128* %4134, align 2
-  %4159 = lshr i128 %4158, 28
-  %4160 = trunc i128 %4159 to i64
-  %4161 = and i64 %4160, 3
-  call fastcc void @transparent_crc(i64 %4161, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2098, i64 0, i64 0), i32 signext undef)
-  %4162 = load volatile i128, i128* %4134, align 2
-  %4163 = shl i128 %4162, 100
-  %4164 = ashr i128 %4163, 107
-  %4165 = shl nsw i128 %4164, 32
-  %4166 = trunc i128 %4165 to i64
-  %4167 = ashr exact i64 %4166, 32
-  call fastcc void @transparent_crc(i64 %4167, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2099, i64 0, i64 0), i32 signext undef)
-  %4168 = load volatile i80, i80* undef, align 2
-  %4169 = load i16, i16* undef, align 2, !tbaa !50
-  %4170 = sext i16 %4169 to i64
-  call fastcc void @transparent_crc(i64 %4170, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2109, i64 0, i64 0), i32 signext undef)
-  %4171 = load i16, i16* undef, align 2, !tbaa !51
-  %4172 = zext i16 %4171 to i64
-  call fastcc void @transparent_crc(i64 %4172, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2110, i64 0, i64 0), i32 signext undef)
-  %4173 = load i16, i16* undef, align 2, !tbaa !24
-  %4174 = sext i16 %4173 to i64
-  call fastcc void @transparent_crc(i64 %4174, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2111, i64 0, i64 0), i32 signext undef)
-  %4175 = getelementptr inbounds [6 x [10 x [4 x %5]]], [6 x [10 x [4 x %5]]]* bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2943 to [6 x [10 x [4 x %5]]]*), i64 0, i64 0, i64 0, i64 0, i32 1
-  %4176 = load i8, i8* %4175, align 2, !tbaa !52
-  %4177 = sext i8 %4176 to i64
-  call fastcc void @transparent_crc(i64 %4177, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2112, i64 0, i64 0), i32 signext undef)
-  %4178 = load volatile i120, i120* undef, align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2116, i64 0, i64 0), i32 signext undef)
-  %4179 = load volatile i120, i120* undef, align 1
-  %4180 = lshr i120 %4179, 41
-  %4181 = trunc i120 %4180 to i64
-  %4182 = and i64 %4181, 63
-  call fastcc void @transparent_crc(i64 %4182, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2117, i64 0, i64 0), i32 signext undef)
-  %4183 = load volatile i120, i120* undef, align 1
-  %4184 = lshr i120 %4183, 19
-  %4185 = trunc i120 %4184 to i64
-  %4186 = and i64 %4185, 4194303
-  call fastcc void @transparent_crc(i64 %4186, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2118, i64 0, i64 0), i32 signext undef)
-  %4187 = load volatile i120, i120* undef, align 1
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2127, i64 0, i64 0), i32 signext undef)
-  %4188 = load volatile i128, i128* undef, align 2
-  %4189 = shl i128 %4188, 80
-  %4190 = ashr i128 %4189, 110
-  %4191 = shl nsw i128 %4190, 32
-  %4192 = trunc i128 %4191 to i64
+  call fastcc void @transparent_crc(i64 %4105, ptr @.str.2088, i32 signext undef)
+  %4106 = load i8, ptr undef, align 2, !tbaa !45
+  %4107 = zext i8 %4106 to i64
+  call fastcc void @transparent_crc(i64 %4107, ptr @.str.2089, i32 signext undef)
+  %4108 = load i8, ptr undef, align 1, !tbaa !46
+  %4109 = sext i8 %4108 to i64
+  call fastcc void @transparent_crc(i64 %4109, ptr @.str.2090, i32 signext undef)
+  %4110 = load i16, ptr undef, align 2, !tbaa !47
+  %4111 = sext i16 %4110 to i64
+  call fastcc void @transparent_crc(i64 %4111, ptr @.str.2091, i32 signext undef)
+  %4112 = load i64, ptr undef, align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4112, ptr @.str.2092, i32 signext undef)
+  %4113 = load i32, ptr undef, align 2, !tbaa !49
+  %4114 = sext i32 %4113 to i64
+  call fastcc void @transparent_crc(i64 %4114, ptr @.str.2093, i32 signext undef)
+  %4115 = getelementptr inbounds [6 x [7 x [6 x %5]]], ptr bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2942 to ptr), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
+  %4116 = load volatile i128, ptr %4115, align 2
+  %4117 = ashr i128 %4116, 99
+  %4118 = shl nsw i128 %4117, 32
+  %4119 = trunc i128 %4118 to i64
+  %4120 = ashr exact i64 %4119, 32
+  call fastcc void @transparent_crc(i64 %4120, ptr @.str.2094, i32 signext undef)
+  %4121 = load volatile i128, ptr %4115, align 2
+  %4122 = shl i128 %4121, 29
+  %4123 = ashr i128 %4122, 97
+  %4124 = shl nsw i128 %4123, 32
+  %4125 = trunc i128 %4124 to i64
+  %4126 = ashr exact i64 %4125, 32
+  call fastcc void @transparent_crc(i64 %4126, ptr @.str.2095, i32 signext undef)
+  %4127 = load volatile i128, ptr %4115, align 2
+  %4128 = shl i128 %4127, 60
+  %4129 = ashr i128 %4128, 108
+  %4130 = shl nsw i128 %4129, 32
+  %4131 = trunc i128 %4130 to i64
+  %4132 = ashr exact i64 %4131, 32
+  call fastcc void @transparent_crc(i64 %4132, ptr @.str.2096, i32 signext undef)
+  %4133 = load volatile i128, ptr %4115, align 2
+  %4134 = shl i128 %4133, 80
+  %4135 = ashr i128 %4134, 110
+  %4136 = shl nsw i128 %4135, 32
+  %4137 = trunc i128 %4136 to i64
+  %4138 = ashr exact i64 %4137, 32
+  call fastcc void @transparent_crc(i64 %4138, ptr @.str.2097, i32 signext undef)
+  %4139 = load volatile i128, ptr %4115, align 2
+  %4140 = lshr i128 %4139, 28
+  %4141 = trunc i128 %4140 to i64
+  %4142 = and i64 %4141, 3
+  call fastcc void @transparent_crc(i64 %4142, ptr @.str.2098, i32 signext undef)
+  %4143 = load volatile i128, ptr %4115, align 2
+  %4144 = shl i128 %4143, 100
+  %4145 = ashr i128 %4144, 107
+  %4146 = shl nsw i128 %4145, 32
+  %4147 = trunc i128 %4146 to i64
+  %4148 = ashr exact i64 %4147, 32
+  call fastcc void @transparent_crc(i64 %4148, ptr @.str.2099, i32 signext undef)
+  %4149 = load volatile i80, ptr undef, align 2
+  %4150 = load i16, ptr undef, align 2, !tbaa !50
+  %4151 = sext i16 %4150 to i64
+  call fastcc void @transparent_crc(i64 %4151, ptr @.str.2109, i32 signext undef)
+  %4152 = load i16, ptr undef, align 2, !tbaa !51
+  %4153 = zext i16 %4152 to i64
+  call fastcc void @transparent_crc(i64 %4153, ptr @.str.2110, i32 signext undef)
+  %4154 = load i16, ptr undef, align 2, !tbaa !24
+  %4155 = sext i16 %4154 to i64
+  call fastcc void @transparent_crc(i64 %4155, ptr @.str.2111, i32 signext undef)
+  %4156 = getelementptr inbounds [6 x [10 x [4 x %5]]], ptr bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2943 to ptr), i64 0, i64 0, i64 0, i64 0, i32 1
+  %4157 = load i8, ptr %4156, align 2, !tbaa !52
+  %4158 = sext i8 %4157 to i64
+  call fastcc void @transparent_crc(i64 %4158, ptr @.str.2112, i32 signext undef)
+  %4159 = load volatile i120, ptr undef, align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2116, i32 signext undef)
+  %4160 = load volatile i120, ptr undef, align 1
+  %4161 = lshr i120 %4160, 41
+  %4162 = trunc i120 %4161 to i64
+  %4163 = and i64 %4162, 63
+  call fastcc void @transparent_crc(i64 %4163, ptr @.str.2117, i32 signext undef)
+  %4164 = load volatile i120, ptr undef, align 1
+  %4165 = lshr i120 %4164, 19
+  %4166 = trunc i120 %4165 to i64
+  %4167 = and i64 %4166, 4194303
+  call fastcc void @transparent_crc(i64 %4167, ptr @.str.2118, i32 signext undef)
+  %4168 = load volatile i120, ptr undef, align 1
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2127, i32 signext undef)
+  %4169 = load volatile i128, ptr undef, align 2
+  %4170 = shl i128 %4169, 80
+  %4171 = ashr i128 %4170, 110
+  %4172 = shl nsw i128 %4171, 32
+  %4173 = trunc i128 %4172 to i64
+  %4174 = ashr exact i64 %4173, 32
+  call fastcc void @transparent_crc(i64 %4174, ptr @.str.2128, i32 signext undef)
+  %4175 = load volatile i128, ptr undef, align 2
+  %4176 = lshr i128 %4175, 28
+  %4177 = trunc i128 %4176 to i64
+  %4178 = and i64 %4177, 3
+  call fastcc void @transparent_crc(i64 %4178, ptr @.str.2129, i32 signext undef)
+  %4179 = load volatile i128, ptr undef, align 2
+  %4180 = shl i128 %4179, 100
+  %4181 = ashr i128 %4180, 107
+  %4182 = shl nsw i128 %4181, 32
+  %4183 = trunc i128 %4182 to i64
+  %4184 = ashr exact i64 %4183, 32
+  call fastcc void @transparent_crc(i64 %4184, ptr @.str.2130, i32 signext undef)
+  %4185 = load volatile i80, ptr undef, align 2
+  %4186 = lshr i80 %4185, 57
+  %4187 = trunc i80 %4186 to i64
+  call fastcc void @transparent_crc(i64 %4187, ptr @.str.2131, i32 signext undef)
+  %4188 = load volatile i80, ptr undef, align 2
+  %4189 = shl i80 %4188, 23
+  %4190 = ashr i80 %4189, 64
+  %4191 = shl nsw i80 %4190, 32
+  %4192 = trunc i80 %4191 to i64
   %4193 = ashr exact i64 %4192, 32
-  call fastcc void @transparent_crc(i64 %4193, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2128, i64 0, i64 0), i32 signext undef)
-  %4194 = load volatile i128, i128* undef, align 2
-  %4195 = lshr i128 %4194, 28
-  %4196 = trunc i128 %4195 to i64
-  %4197 = and i64 %4196, 3
-  call fastcc void @transparent_crc(i64 %4197, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2129, i64 0, i64 0), i32 signext undef)
-  %4198 = load volatile i128, i128* undef, align 2
-  %4199 = shl i128 %4198, 100
-  %4200 = ashr i128 %4199, 107
-  %4201 = shl nsw i128 %4200, 32
-  %4202 = trunc i128 %4201 to i64
-  %4203 = ashr exact i64 %4202, 32
-  call fastcc void @transparent_crc(i64 %4203, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2130, i64 0, i64 0), i32 signext undef)
-  %4204 = load volatile i80, i80* undef, align 2
-  %4205 = lshr i80 %4204, 57
-  %4206 = trunc i80 %4205 to i64
-  call fastcc void @transparent_crc(i64 %4206, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2131, i64 0, i64 0), i32 signext undef)
-  %4207 = load volatile i80, i80* undef, align 2
-  %4208 = shl i80 %4207, 23
-  %4209 = ashr i80 %4208, 64
-  %4210 = shl nsw i80 %4209, 32
-  %4211 = trunc i80 %4210 to i64
-  %4212 = ashr exact i64 %4211, 32
-  call fastcc void @transparent_crc(i64 %4212, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2132, i64 0, i64 0), i32 signext undef)
-  %4213 = load volatile i80, i80* undef, align 2
-  %4214 = shl i80 %4213, 39
-  %4215 = ashr i80 %4214, 62
-  %4216 = shl nsw i80 %4215, 32
-  %4217 = trunc i80 %4216 to i64
-  %4218 = ashr exact i64 %4217, 32
-  call fastcc void @transparent_crc(i64 %4218, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2133, i64 0, i64 0), i32 signext undef)
-  %4219 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2136, i64 0, i64 0), i32 signext undef)
-  %4220 = load i80, i80* undef, align 2
-  %4221 = shl i80 %4220, 56
-  %4222 = ashr i80 %4221, 68
-  %4223 = shl nsw i80 %4222, 32
-  %4224 = trunc i80 %4223 to i64
-  %4225 = ashr exact i64 %4224, 32
-  call fastcc void @transparent_crc(i64 %4225, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2137, i64 0, i64 0), i32 signext undef)
-  %4226 = load i80, i80* undef, align 2
-  %4227 = lshr i80 %4226, 11
-  %4228 = trunc i80 %4227 to i64
-  %4229 = and i64 %4228, 1
-  call fastcc void @transparent_crc(i64 %4229, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2138, i64 0, i64 0), i32 signext undef)
-  %4230 = load volatile i80, i80* undef, align 2
-  %4231 = shl i80 %4230, 69
-  %4232 = ashr i80 %4231, 72
-  %4233 = shl nsw i80 %4232, 32
-  %4234 = trunc i80 %4233 to i64
-  %4235 = ashr exact i64 %4234, 32
-  call fastcc void @transparent_crc(i64 %4235, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2139, i64 0, i64 0), i32 signext undef)
-  %4236 = load i16, i16* undef, align 2, !tbaa !50
-  %4237 = sext i16 %4236 to i64
-  call fastcc void @transparent_crc(i64 %4237, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2140, i64 0, i64 0), i32 signext undef)
-  %4238 = load i16, i16* undef, align 2, !tbaa !51
-  %4239 = zext i16 %4238 to i64
-  call fastcc void @transparent_crc(i64 %4239, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2141, i64 0, i64 0), i32 signext undef)
-  %4240 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 0), align 2, !tbaa !24
-  %4241 = sext i16 %4240 to i64
-  call fastcc void @transparent_crc(i64 %4241, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2142, i64 0, i64 0), i32 signext undef)
-  %4242 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 1), align 2, !tbaa !52
-  %4243 = sext i8 %4242 to i64
-  call fastcc void @transparent_crc(i64 %4243, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2143, i64 0, i64 0), i32 signext undef)
-  %4244 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4245 = lshr i120 %4244, 107
+  call fastcc void @transparent_crc(i64 %4193, ptr @.str.2132, i32 signext undef)
+  %4194 = load volatile i80, ptr undef, align 2
+  %4195 = shl i80 %4194, 39
+  %4196 = ashr i80 %4195, 62
+  %4197 = shl nsw i80 %4196, 32
+  %4198 = trunc i80 %4197 to i64
+  %4199 = ashr exact i64 %4198, 32
+  call fastcc void @transparent_crc(i64 %4199, ptr @.str.2133, i32 signext undef)
+  %4200 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2136, i32 signext undef)
+  %4201 = load i80, ptr undef, align 2
+  %4202 = shl i80 %4201, 56
+  %4203 = ashr i80 %4202, 68
+  %4204 = shl nsw i80 %4203, 32
+  %4205 = trunc i80 %4204 to i64
+  %4206 = ashr exact i64 %4205, 32
+  call fastcc void @transparent_crc(i64 %4206, ptr @.str.2137, i32 signext undef)
+  %4207 = load i80, ptr undef, align 2
+  %4208 = lshr i80 %4207, 11
+  %4209 = trunc i80 %4208 to i64
+  %4210 = and i64 %4209, 1
+  call fastcc void @transparent_crc(i64 %4210, ptr @.str.2138, i32 signext undef)
+  %4211 = load volatile i80, ptr undef, align 2
+  %4212 = shl i80 %4211, 69
+  %4213 = ashr i80 %4212, 72
+  %4214 = shl nsw i80 %4213, 32
+  %4215 = trunc i80 %4214 to i64
+  %4216 = ashr exact i64 %4215, 32
+  call fastcc void @transparent_crc(i64 %4216, ptr @.str.2139, i32 signext undef)
+  %4217 = load i16, ptr undef, align 2, !tbaa !50
+  %4218 = sext i16 %4217 to i64
+  call fastcc void @transparent_crc(i64 %4218, ptr @.str.2140, i32 signext undef)
+  %4219 = load i16, ptr undef, align 2, !tbaa !51
+  %4220 = zext i16 %4219 to i64
+  call fastcc void @transparent_crc(i64 %4220, ptr @.str.2141, i32 signext undef)
+  %4221 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 0), align 2, !tbaa !24
+  %4222 = sext i16 %4221 to i64
+  call fastcc void @transparent_crc(i64 %4222, ptr @.str.2142, i32 signext undef)
+  %4223 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 1), align 2, !tbaa !52
+  %4224 = sext i8 %4223 to i64
+  call fastcc void @transparent_crc(i64 %4224, ptr @.str.2143, i32 signext undef)
+  %4225 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4226 = lshr i120 %4225, 107
+  %4227 = trunc i120 %4226 to i64
+  call fastcc void @transparent_crc(i64 %4227, ptr @.str.2144, i32 signext undef)
+  %4228 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4229 = lshr i120 %4228, 78
+  %4230 = trunc i120 %4229 to i64
+  %4231 = and i64 %4230, 536870911
+  call fastcc void @transparent_crc(i64 %4231, ptr @.str.2145, i32 signext undef)
+  %4232 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4233 = shl i120 %4232, 42
+  %4234 = ashr i120 %4233, 104
+  %4235 = shl nsw i120 %4234, 32
+  %4236 = trunc i120 %4235 to i64
+  %4237 = ashr exact i64 %4236, 32
+  call fastcc void @transparent_crc(i64 %4237, ptr @.str.2146, i32 signext undef)
+  %4238 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4239 = shl i120 %4238, 58
+  %4240 = ashr i120 %4239, 105
+  %4241 = shl nsw i120 %4240, 32
+  %4242 = trunc i120 %4241 to i64
+  %4243 = ashr exact i64 %4242, 32
+  call fastcc void @transparent_crc(i64 %4243, ptr @.str.2147, i32 signext undef)
+  %4244 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4245 = lshr i120 %4244, 41
   %4246 = trunc i120 %4245 to i64
-  call fastcc void @transparent_crc(i64 %4246, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2144, i64 0, i64 0), i32 signext undef)
-  %4247 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4248 = lshr i120 %4247, 78
-  %4249 = trunc i120 %4248 to i64
-  %4250 = and i64 %4249, 536870911
-  call fastcc void @transparent_crc(i64 %4250, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2145, i64 0, i64 0), i32 signext undef)
-  %4251 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4252 = shl i120 %4251, 42
-  %4253 = ashr i120 %4252, 104
-  %4254 = shl nsw i120 %4253, 32
+  %4247 = and i64 %4246, 63
+  call fastcc void @transparent_crc(i64 %4247, ptr @.str.2148, i32 signext undef)
+  %4248 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4249 = lshr i120 %4248, 19
+  %4250 = trunc i120 %4249 to i64
+  %4251 = and i64 %4250, 4194303
+  call fastcc void @transparent_crc(i64 %4251, ptr @.str.2149, i32 signext undef)
+  %4252 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 2, i32 0), align 1
+  %4253 = shl i120 %4252, 101
+  %4254 = ashr exact i120 %4253, 69
   %4255 = trunc i120 %4254 to i64
   %4256 = ashr exact i64 %4255, 32
-  call fastcc void @transparent_crc(i64 %4256, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2146, i64 0, i64 0), i32 signext undef)
-  %4257 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4258 = shl i120 %4257, 58
-  %4259 = ashr i120 %4258, 105
-  %4260 = shl nsw i120 %4259, 32
-  %4261 = trunc i120 %4260 to i64
-  %4262 = ashr exact i64 %4261, 32
-  call fastcc void @transparent_crc(i64 %4262, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2147, i64 0, i64 0), i32 signext undef)
-  %4263 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4264 = lshr i120 %4263, 41
-  %4265 = trunc i120 %4264 to i64
-  %4266 = and i64 %4265, 63
-  call fastcc void @transparent_crc(i64 %4266, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2148, i64 0, i64 0), i32 signext undef)
-  %4267 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4268 = lshr i120 %4267, 19
-  %4269 = trunc i120 %4268 to i64
-  %4270 = and i64 %4269, 4194303
-  call fastcc void @transparent_crc(i64 %4270, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2149, i64 0, i64 0), i32 signext undef)
-  %4271 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 2, i32 0) to i120*), align 1
-  %4272 = shl i120 %4271, 101
-  %4273 = ashr exact i120 %4272, 69
-  %4274 = trunc i120 %4273 to i64
-  %4275 = ashr exact i64 %4274, 32
-  call fastcc void @transparent_crc(i64 %4275, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2150, i64 0, i64 0), i32 signext undef)
-  %4276 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %4277 = zext i8 %4276 to i64
-  call fastcc void @transparent_crc(i64 %4277, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2151, i64 0, i64 0), i32 signext undef)
-  %4278 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %4279 = sext i8 %4278 to i64
-  call fastcc void @transparent_crc(i64 %4279, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2152, i64 0, i64 0), i32 signext undef)
-  %4280 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %4281 = sext i16 %4280 to i64
-  call fastcc void @transparent_crc(i64 %4281, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2153, i64 0, i64 0), i32 signext undef)
-  %4282 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4282, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2154, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2159, i64 0, i64 0), i32 signext undef)
-  %4283 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 4, i32 0) to i128*), align 2
-  %4284 = lshr i128 %4283, 28
-  %4285 = trunc i128 %4284 to i64
-  %4286 = and i64 %4285, 3
-  call fastcc void @transparent_crc(i64 %4286, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2160, i64 0, i64 0), i32 signext undef)
-  %4287 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 4, i32 0) to i128*), align 2
-  %4288 = shl i128 %4287, 100
-  %4289 = ashr i128 %4288, 107
-  %4290 = shl nsw i128 %4289, 32
-  %4291 = trunc i128 %4290 to i64
-  %4292 = ashr exact i64 %4291, 32
-  call fastcc void @transparent_crc(i64 %4292, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2161, i64 0, i64 0), i32 signext undef)
-  %4293 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4294 = lshr i80 %4293, 57
-  %4295 = trunc i80 %4294 to i64
-  call fastcc void @transparent_crc(i64 %4295, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2162, i64 0, i64 0), i32 signext undef)
-  %4296 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4297 = shl i80 %4296, 23
-  %4298 = ashr i80 %4297, 64
-  %4299 = shl nsw i80 %4298, 32
+  call fastcc void @transparent_crc(i64 %4256, ptr @.str.2150, i32 signext undef)
+  %4257 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %4258 = zext i8 %4257 to i64
+  call fastcc void @transparent_crc(i64 %4258, ptr @.str.2151, i32 signext undef)
+  %4259 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %4260 = sext i8 %4259 to i64
+  call fastcc void @transparent_crc(i64 %4260, ptr @.str.2152, i32 signext undef)
+  %4261 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %4262 = sext i16 %4261 to i64
+  call fastcc void @transparent_crc(i64 %4262, ptr @.str.2153, i32 signext undef)
+  %4263 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4263, ptr @.str.2154, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2159, i32 signext undef)
+  %4264 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 4, i32 0), align 2
+  %4265 = lshr i128 %4264, 28
+  %4266 = trunc i128 %4265 to i64
+  %4267 = and i64 %4266, 3
+  call fastcc void @transparent_crc(i64 %4267, ptr @.str.2160, i32 signext undef)
+  %4268 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 4, i32 0), align 2
+  %4269 = shl i128 %4268, 100
+  %4270 = ashr i128 %4269, 107
+  %4271 = shl nsw i128 %4270, 32
+  %4272 = trunc i128 %4271 to i64
+  %4273 = ashr exact i64 %4272, 32
+  call fastcc void @transparent_crc(i64 %4273, ptr @.str.2161, i32 signext undef)
+  %4274 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 0, i32 0), align 2
+  %4275 = lshr i80 %4274, 57
+  %4276 = trunc i80 %4275 to i64
+  call fastcc void @transparent_crc(i64 %4276, ptr @.str.2162, i32 signext undef)
+  %4277 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 0, i32 0), align 2
+  %4278 = shl i80 %4277, 23
+  %4279 = ashr i80 %4278, 64
+  %4280 = shl nsw i80 %4279, 32
+  %4281 = trunc i80 %4280 to i64
+  %4282 = ashr exact i64 %4281, 32
+  call fastcc void @transparent_crc(i64 %4282, ptr @.str.2163, i32 signext undef)
+  %4283 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 0, i32 0), align 2
+  %4284 = shl i80 %4283, 39
+  %4285 = ashr i80 %4284, 62
+  %4286 = shl nsw i80 %4285, 32
+  %4287 = trunc i80 %4286 to i64
+  %4288 = ashr exact i64 %4287, 32
+  call fastcc void @transparent_crc(i64 %4288, ptr @.str.2164, i32 signext undef)
+  %4289 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 0, i32 0), align 2
+  %4290 = shl i80 %4289, 57
+  %4291 = ashr i80 %4290, 58
+  %4292 = shl nsw i80 %4291, 32
+  %4293 = trunc i80 %4292 to i64
+  %4294 = ashr exact i64 %4293, 32
+  call fastcc void @transparent_crc(i64 %4294, ptr @.str.2165, i32 signext undef)
+  %4295 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 1), align 2
+  %4296 = lshr i80 %4295, 49
+  %4297 = trunc i80 %4296 to i64
+  call fastcc void @transparent_crc(i64 %4297, ptr @.str.2166, i32 signext undef)
+  %4298 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 1), align 2
+  %4299 = lshr i80 %4298, 24
   %4300 = trunc i80 %4299 to i64
-  %4301 = ashr exact i64 %4300, 32
-  call fastcc void @transparent_crc(i64 %4301, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2163, i64 0, i64 0), i32 signext undef)
-  %4302 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4303 = shl i80 %4302, 39
-  %4304 = ashr i80 %4303, 62
+  %4301 = and i64 %4300, 33554431
+  call fastcc void @transparent_crc(i64 %4301, ptr @.str.2167, i32 signext undef)
+  %4302 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 1), align 2
+  %4303 = shl i80 %4302, 56
+  %4304 = ashr i80 %4303, 68
   %4305 = shl nsw i80 %4304, 32
   %4306 = trunc i80 %4305 to i64
   %4307 = ashr exact i64 %4306, 32
-  call fastcc void @transparent_crc(i64 %4307, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2164, i64 0, i64 0), i32 signext undef)
-  %4308 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4309 = shl i80 %4308, 57
-  %4310 = ashr i80 %4309, 58
-  %4311 = shl nsw i80 %4310, 32
-  %4312 = trunc i80 %4311 to i64
-  %4313 = ashr exact i64 %4312, 32
-  call fastcc void @transparent_crc(i64 %4313, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2165, i64 0, i64 0), i32 signext undef)
-  %4314 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 1) to i80*), align 2
-  %4315 = lshr i80 %4314, 49
+  call fastcc void @transparent_crc(i64 %4307, ptr @.str.2168, i32 signext undef)
+  %4308 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 1), align 2
+  %4309 = lshr i80 %4308, 11
+  %4310 = trunc i80 %4309 to i64
+  %4311 = and i64 %4310, 1
+  call fastcc void @transparent_crc(i64 %4311, ptr @.str.2169, i32 signext undef)
+  %4312 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 5, i32 1), align 2
+  %4313 = shl i80 %4312, 69
+  %4314 = ashr i80 %4313, 72
+  %4315 = shl nsw i80 %4314, 32
   %4316 = trunc i80 %4315 to i64
-  call fastcc void @transparent_crc(i64 %4316, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2166, i64 0, i64 0), i32 signext undef)
-  %4317 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 1) to i80*), align 2
-  %4318 = lshr i80 %4317, 24
-  %4319 = trunc i80 %4318 to i64
-  %4320 = and i64 %4319, 33554431
-  call fastcc void @transparent_crc(i64 %4320, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2167, i64 0, i64 0), i32 signext undef)
-  %4321 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 1) to i80*), align 2
-  %4322 = shl i80 %4321, 56
-  %4323 = ashr i80 %4322, 68
-  %4324 = shl nsw i80 %4323, 32
-  %4325 = trunc i80 %4324 to i64
-  %4326 = ashr exact i64 %4325, 32
-  call fastcc void @transparent_crc(i64 %4326, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2168, i64 0, i64 0), i32 signext undef)
-  %4327 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 1) to i80*), align 2
-  %4328 = lshr i80 %4327, 11
-  %4329 = trunc i80 %4328 to i64
-  %4330 = and i64 %4329, 1
-  call fastcc void @transparent_crc(i64 %4330, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2169, i64 0, i64 0), i32 signext undef)
-  %4331 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 5, i32 1) to i80*), align 2
-  %4332 = shl i80 %4331, 69
-  %4333 = ashr i80 %4332, 72
-  %4334 = shl nsw i80 %4333, 32
-  %4335 = trunc i80 %4334 to i64
-  %4336 = ashr exact i64 %4335, 32
-  call fastcc void @transparent_crc(i64 %4336, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2170, i64 0, i64 0), i32 signext undef)
-  %4337 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 6), align 2, !tbaa !50
-  %4338 = sext i16 %4337 to i64
-  call fastcc void @transparent_crc(i64 %4338, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2171, i64 0, i64 0), i32 signext undef)
-  %4339 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2944, i64 0, i32 7), align 2, !tbaa !51
-  %4340 = zext i16 %4339 to i64
-  call fastcc void @transparent_crc(i64 %4340, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2172, i64 0, i64 0), i32 signext undef)
-  %4341 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 0), align 2, !tbaa !24
-  %4342 = sext i16 %4341 to i64
-  call fastcc void @transparent_crc(i64 %4342, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2173, i64 0, i64 0), i32 signext undef)
-  %4343 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 1), align 2, !tbaa !52
-  %4344 = sext i8 %4343 to i64
-  call fastcc void @transparent_crc(i64 %4344, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2174, i64 0, i64 0), i32 signext undef)
-  %4345 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4346 = lshr i120 %4345, 107
+  %4317 = ashr exact i64 %4316, 32
+  call fastcc void @transparent_crc(i64 %4317, ptr @.str.2170, i32 signext undef)
+  %4318 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 6), align 2, !tbaa !50
+  %4319 = sext i16 %4318 to i64
+  call fastcc void @transparent_crc(i64 %4319, ptr @.str.2171, i32 signext undef)
+  %4320 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2944, i64 0, i32 7), align 2, !tbaa !51
+  %4321 = zext i16 %4320 to i64
+  call fastcc void @transparent_crc(i64 %4321, ptr @.str.2172, i32 signext undef)
+  %4322 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 0), align 2, !tbaa !24
+  %4323 = sext i16 %4322 to i64
+  call fastcc void @transparent_crc(i64 %4323, ptr @.str.2173, i32 signext undef)
+  %4324 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 1), align 2, !tbaa !52
+  %4325 = sext i8 %4324 to i64
+  call fastcc void @transparent_crc(i64 %4325, ptr @.str.2174, i32 signext undef)
+  %4326 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4327 = lshr i120 %4326, 107
+  %4328 = trunc i120 %4327 to i64
+  call fastcc void @transparent_crc(i64 %4328, ptr @.str.2175, i32 signext undef)
+  %4329 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4330 = lshr i120 %4329, 78
+  %4331 = trunc i120 %4330 to i64
+  %4332 = and i64 %4331, 536870911
+  call fastcc void @transparent_crc(i64 %4332, ptr @.str.2176, i32 signext undef)
+  %4333 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4334 = shl i120 %4333, 42
+  %4335 = ashr i120 %4334, 104
+  %4336 = shl nsw i120 %4335, 32
+  %4337 = trunc i120 %4336 to i64
+  %4338 = ashr exact i64 %4337, 32
+  call fastcc void @transparent_crc(i64 %4338, ptr @.str.2177, i32 signext undef)
+  %4339 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4340 = shl i120 %4339, 58
+  %4341 = ashr i120 %4340, 105
+  %4342 = shl nsw i120 %4341, 32
+  %4343 = trunc i120 %4342 to i64
+  %4344 = ashr exact i64 %4343, 32
+  call fastcc void @transparent_crc(i64 %4344, ptr @.str.2178, i32 signext undef)
+  %4345 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4346 = lshr i120 %4345, 41
   %4347 = trunc i120 %4346 to i64
-  call fastcc void @transparent_crc(i64 %4347, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2175, i64 0, i64 0), i32 signext undef)
-  %4348 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4349 = lshr i120 %4348, 78
-  %4350 = trunc i120 %4349 to i64
-  %4351 = and i64 %4350, 536870911
-  call fastcc void @transparent_crc(i64 %4351, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2176, i64 0, i64 0), i32 signext undef)
-  %4352 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4353 = shl i120 %4352, 42
-  %4354 = ashr i120 %4353, 104
-  %4355 = shl nsw i120 %4354, 32
+  %4348 = and i64 %4347, 63
+  call fastcc void @transparent_crc(i64 %4348, ptr @.str.2179, i32 signext undef)
+  %4349 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4350 = lshr i120 %4349, 19
+  %4351 = trunc i120 %4350 to i64
+  %4352 = and i64 %4351, 4194303
+  call fastcc void @transparent_crc(i64 %4352, ptr @.str.2180, i32 signext undef)
+  %4353 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 2, i32 0), align 1
+  %4354 = shl i120 %4353, 101
+  %4355 = ashr exact i120 %4354, 69
   %4356 = trunc i120 %4355 to i64
   %4357 = ashr exact i64 %4356, 32
-  call fastcc void @transparent_crc(i64 %4357, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2177, i64 0, i64 0), i32 signext undef)
-  %4358 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4359 = shl i120 %4358, 58
-  %4360 = ashr i120 %4359, 105
-  %4361 = shl nsw i120 %4360, 32
-  %4362 = trunc i120 %4361 to i64
-  %4363 = ashr exact i64 %4362, 32
-  call fastcc void @transparent_crc(i64 %4363, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2178, i64 0, i64 0), i32 signext undef)
-  %4364 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4365 = lshr i120 %4364, 41
-  %4366 = trunc i120 %4365 to i64
-  %4367 = and i64 %4366, 63
-  call fastcc void @transparent_crc(i64 %4367, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2179, i64 0, i64 0), i32 signext undef)
-  %4368 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4369 = lshr i120 %4368, 19
-  %4370 = trunc i120 %4369 to i64
-  %4371 = and i64 %4370, 4194303
-  call fastcc void @transparent_crc(i64 %4371, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2180, i64 0, i64 0), i32 signext undef)
-  %4372 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 2, i32 0) to i120*), align 1
-  %4373 = shl i120 %4372, 101
-  %4374 = ashr exact i120 %4373, 69
-  %4375 = trunc i120 %4374 to i64
-  %4376 = ashr exact i64 %4375, 32
-  call fastcc void @transparent_crc(i64 %4376, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2181, i64 0, i64 0), i32 signext undef)
-  %4377 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %4378 = zext i8 %4377 to i64
-  call fastcc void @transparent_crc(i64 %4378, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2182, i64 0, i64 0), i32 signext undef)
-  %4379 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %4380 = sext i8 %4379 to i64
-  call fastcc void @transparent_crc(i64 %4380, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2183, i64 0, i64 0), i32 signext undef)
-  %4381 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %4382 = sext i16 %4381 to i64
-  call fastcc void @transparent_crc(i64 %4382, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2184, i64 0, i64 0), i32 signext undef)
-  %4383 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4383, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2185, i64 0, i64 0), i32 signext undef)
-  %4384 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %4385 = sext i32 %4384 to i64
-  call fastcc void @transparent_crc(i64 %4385, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2186, i64 0, i64 0), i32 signext undef)
-  %4386 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 4, i32 0) to i128*), align 2
-  %4387 = ashr i128 %4386, 99
-  %4388 = shl nsw i128 %4387, 32
-  %4389 = trunc i128 %4388 to i64
-  %4390 = ashr exact i64 %4389, 32
-  call fastcc void @transparent_crc(i64 %4390, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2187, i64 0, i64 0), i32 signext undef)
-  %4391 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 4, i32 0) to i128*), align 2
-  %4392 = shl i128 %4391, 29
-  %4393 = ashr i128 %4392, 97
-  %4394 = shl nsw i128 %4393, 32
-  %4395 = trunc i128 %4394 to i64
-  %4396 = ashr exact i64 %4395, 32
-  call fastcc void @transparent_crc(i64 %4396, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2188, i64 0, i64 0), i32 signext undef)
-  %4397 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 4, i32 0) to i128*), align 2
-  %4398 = shl i128 %4397, 60
-  %4399 = ashr i128 %4398, 108
-  %4400 = shl nsw i128 %4399, 32
-  %4401 = trunc i128 %4400 to i64
-  %4402 = ashr exact i64 %4401, 32
-  call fastcc void @transparent_crc(i64 %4402, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2189, i64 0, i64 0), i32 signext undef)
-  %4403 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 4, i32 0) to i128*), align 2
-  %4404 = shl i128 %4403, 80
-  %4405 = ashr i128 %4404, 110
-  %4406 = shl nsw i128 %4405, 32
-  %4407 = trunc i128 %4406 to i64
+  call fastcc void @transparent_crc(i64 %4357, ptr @.str.2181, i32 signext undef)
+  %4358 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %4359 = zext i8 %4358 to i64
+  call fastcc void @transparent_crc(i64 %4359, ptr @.str.2182, i32 signext undef)
+  %4360 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %4361 = sext i8 %4360 to i64
+  call fastcc void @transparent_crc(i64 %4361, ptr @.str.2183, i32 signext undef)
+  %4362 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %4363 = sext i16 %4362 to i64
+  call fastcc void @transparent_crc(i64 %4363, ptr @.str.2184, i32 signext undef)
+  %4364 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4364, ptr @.str.2185, i32 signext undef)
+  %4365 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %4366 = sext i32 %4365 to i64
+  call fastcc void @transparent_crc(i64 %4366, ptr @.str.2186, i32 signext undef)
+  %4367 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 4, i32 0), align 2
+  %4368 = ashr i128 %4367, 99
+  %4369 = shl nsw i128 %4368, 32
+  %4370 = trunc i128 %4369 to i64
+  %4371 = ashr exact i64 %4370, 32
+  call fastcc void @transparent_crc(i64 %4371, ptr @.str.2187, i32 signext undef)
+  %4372 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 4, i32 0), align 2
+  %4373 = shl i128 %4372, 29
+  %4374 = ashr i128 %4373, 97
+  %4375 = shl nsw i128 %4374, 32
+  %4376 = trunc i128 %4375 to i64
+  %4377 = ashr exact i64 %4376, 32
+  call fastcc void @transparent_crc(i64 %4377, ptr @.str.2188, i32 signext undef)
+  %4378 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 4, i32 0), align 2
+  %4379 = shl i128 %4378, 60
+  %4380 = ashr i128 %4379, 108
+  %4381 = shl nsw i128 %4380, 32
+  %4382 = trunc i128 %4381 to i64
+  %4383 = ashr exact i64 %4382, 32
+  call fastcc void @transparent_crc(i64 %4383, ptr @.str.2189, i32 signext undef)
+  %4384 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 4, i32 0), align 2
+  %4385 = shl i128 %4384, 80
+  %4386 = ashr i128 %4385, 110
+  %4387 = shl nsw i128 %4386, 32
+  %4388 = trunc i128 %4387 to i64
+  %4389 = ashr exact i64 %4388, 32
+  call fastcc void @transparent_crc(i64 %4389, ptr @.str.2190, i32 signext undef)
+  %4390 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 4, i32 0), align 2
+  %4391 = lshr i128 %4390, 28
+  %4392 = trunc i128 %4391 to i64
+  %4393 = and i64 %4392, 3
+  call fastcc void @transparent_crc(i64 %4393, ptr @.str.2191, i32 signext undef)
+  %4394 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 4, i32 0), align 2
+  %4395 = shl i128 %4394, 100
+  %4396 = ashr i128 %4395, 107
+  %4397 = shl nsw i128 %4396, 32
+  %4398 = trunc i128 %4397 to i64
+  %4399 = ashr exact i64 %4398, 32
+  call fastcc void @transparent_crc(i64 %4399, ptr @.str.2192, i32 signext undef)
+  %4400 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 0, i32 0), align 2
+  %4401 = lshr i80 %4400, 57
+  %4402 = trunc i80 %4401 to i64
+  call fastcc void @transparent_crc(i64 %4402, ptr @.str.2193, i32 signext undef)
+  %4403 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 0, i32 0), align 2
+  %4404 = shl i80 %4403, 23
+  %4405 = ashr i80 %4404, 64
+  %4406 = shl nsw i80 %4405, 32
+  %4407 = trunc i80 %4406 to i64
   %4408 = ashr exact i64 %4407, 32
-  call fastcc void @transparent_crc(i64 %4408, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2190, i64 0, i64 0), i32 signext undef)
-  %4409 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 4, i32 0) to i128*), align 2
-  %4410 = lshr i128 %4409, 28
-  %4411 = trunc i128 %4410 to i64
-  %4412 = and i64 %4411, 3
-  call fastcc void @transparent_crc(i64 %4412, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2191, i64 0, i64 0), i32 signext undef)
-  %4413 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 4, i32 0) to i128*), align 2
-  %4414 = shl i128 %4413, 100
-  %4415 = ashr i128 %4414, 107
-  %4416 = shl nsw i128 %4415, 32
-  %4417 = trunc i128 %4416 to i64
-  %4418 = ashr exact i64 %4417, 32
-  call fastcc void @transparent_crc(i64 %4418, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2192, i64 0, i64 0), i32 signext undef)
-  %4419 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4420 = lshr i80 %4419, 57
-  %4421 = trunc i80 %4420 to i64
-  call fastcc void @transparent_crc(i64 %4421, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2193, i64 0, i64 0), i32 signext undef)
-  %4422 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4423 = shl i80 %4422, 23
-  %4424 = ashr i80 %4423, 64
-  %4425 = shl nsw i80 %4424, 32
+  call fastcc void @transparent_crc(i64 %4408, ptr @.str.2194, i32 signext undef)
+  %4409 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 0, i32 0), align 2
+  %4410 = shl i80 %4409, 39
+  %4411 = ashr i80 %4410, 62
+  %4412 = shl nsw i80 %4411, 32
+  %4413 = trunc i80 %4412 to i64
+  %4414 = ashr exact i64 %4413, 32
+  call fastcc void @transparent_crc(i64 %4414, ptr @.str.2195, i32 signext undef)
+  %4415 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 0, i32 0), align 2
+  %4416 = shl i80 %4415, 57
+  %4417 = ashr i80 %4416, 58
+  %4418 = shl nsw i80 %4417, 32
+  %4419 = trunc i80 %4418 to i64
+  %4420 = ashr exact i64 %4419, 32
+  call fastcc void @transparent_crc(i64 %4420, ptr @.str.2196, i32 signext undef)
+  %4421 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 1), align 2
+  %4422 = lshr i80 %4421, 49
+  %4423 = trunc i80 %4422 to i64
+  call fastcc void @transparent_crc(i64 %4423, ptr @.str.2197, i32 signext undef)
+  %4424 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 1), align 2
+  %4425 = lshr i80 %4424, 24
   %4426 = trunc i80 %4425 to i64
-  %4427 = ashr exact i64 %4426, 32
-  call fastcc void @transparent_crc(i64 %4427, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2194, i64 0, i64 0), i32 signext undef)
-  %4428 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4429 = shl i80 %4428, 39
-  %4430 = ashr i80 %4429, 62
+  %4427 = and i64 %4426, 33554431
+  call fastcc void @transparent_crc(i64 %4427, ptr @.str.2198, i32 signext undef)
+  %4428 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 1), align 2
+  %4429 = shl i80 %4428, 56
+  %4430 = ashr i80 %4429, 68
   %4431 = shl nsw i80 %4430, 32
   %4432 = trunc i80 %4431 to i64
   %4433 = ashr exact i64 %4432, 32
-  call fastcc void @transparent_crc(i64 %4433, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2195, i64 0, i64 0), i32 signext undef)
-  %4434 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4435 = shl i80 %4434, 57
-  %4436 = ashr i80 %4435, 58
-  %4437 = shl nsw i80 %4436, 32
-  %4438 = trunc i80 %4437 to i64
-  %4439 = ashr exact i64 %4438, 32
-  call fastcc void @transparent_crc(i64 %4439, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2196, i64 0, i64 0), i32 signext undef)
-  %4440 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 1) to i80*), align 2
-  %4441 = lshr i80 %4440, 49
+  call fastcc void @transparent_crc(i64 %4433, ptr @.str.2199, i32 signext undef)
+  %4434 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 1), align 2
+  %4435 = lshr i80 %4434, 11
+  %4436 = trunc i80 %4435 to i64
+  %4437 = and i64 %4436, 1
+  call fastcc void @transparent_crc(i64 %4437, ptr @.str.2200, i32 signext undef)
+  %4438 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 5, i32 1), align 2
+  %4439 = shl i80 %4438, 69
+  %4440 = ashr i80 %4439, 72
+  %4441 = shl nsw i80 %4440, 32
   %4442 = trunc i80 %4441 to i64
-  call fastcc void @transparent_crc(i64 %4442, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2197, i64 0, i64 0), i32 signext undef)
-  %4443 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 1) to i80*), align 2
-  %4444 = lshr i80 %4443, 24
-  %4445 = trunc i80 %4444 to i64
-  %4446 = and i64 %4445, 33554431
-  call fastcc void @transparent_crc(i64 %4446, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2198, i64 0, i64 0), i32 signext undef)
-  %4447 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 1) to i80*), align 2
-  %4448 = shl i80 %4447, 56
-  %4449 = ashr i80 %4448, 68
-  %4450 = shl nsw i80 %4449, 32
-  %4451 = trunc i80 %4450 to i64
-  %4452 = ashr exact i64 %4451, 32
-  call fastcc void @transparent_crc(i64 %4452, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2199, i64 0, i64 0), i32 signext undef)
-  %4453 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 1) to i80*), align 2
-  %4454 = lshr i80 %4453, 11
-  %4455 = trunc i80 %4454 to i64
-  %4456 = and i64 %4455, 1
-  call fastcc void @transparent_crc(i64 %4456, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2200, i64 0, i64 0), i32 signext undef)
-  %4457 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 5, i32 1) to i80*), align 2
-  %4458 = shl i80 %4457, 69
-  %4459 = ashr i80 %4458, 72
-  %4460 = shl nsw i80 %4459, 32
-  %4461 = trunc i80 %4460 to i64
-  %4462 = ashr exact i64 %4461, 32
-  call fastcc void @transparent_crc(i64 %4462, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2201, i64 0, i64 0), i32 signext undef)
-  %4463 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 6), align 2, !tbaa !50
-  %4464 = sext i16 %4463 to i64
-  call fastcc void @transparent_crc(i64 %4464, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2202, i64 0, i64 0), i32 signext undef)
-  %4465 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2945, i64 0, i32 7), align 2, !tbaa !51
-  %4466 = zext i16 %4465 to i64
-  call fastcc void @transparent_crc(i64 %4466, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2203, i64 0, i64 0), i32 signext undef)
-  %4467 = load i16, i16* undef, align 2, !tbaa !24
-  %4468 = sext i16 %4467 to i64
-  call fastcc void @transparent_crc(i64 %4468, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2204, i64 0, i64 0), i32 signext undef)
-  %4469 = load i8, i8* undef, align 2, !tbaa !52
-  %4470 = sext i8 %4469 to i64
-  call fastcc void @transparent_crc(i64 %4470, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2205, i64 0, i64 0), i32 signext undef)
-  %4471 = load volatile i120, i120* undef, align 1
-  %4472 = lshr i120 %4471, 107
+  %4443 = ashr exact i64 %4442, 32
+  call fastcc void @transparent_crc(i64 %4443, ptr @.str.2201, i32 signext undef)
+  %4444 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 6), align 2, !tbaa !50
+  %4445 = sext i16 %4444 to i64
+  call fastcc void @transparent_crc(i64 %4445, ptr @.str.2202, i32 signext undef)
+  %4446 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2945, i64 0, i32 7), align 2, !tbaa !51
+  %4447 = zext i16 %4446 to i64
+  call fastcc void @transparent_crc(i64 %4447, ptr @.str.2203, i32 signext undef)
+  %4448 = load i16, ptr undef, align 2, !tbaa !24
+  %4449 = sext i16 %4448 to i64
+  call fastcc void @transparent_crc(i64 %4449, ptr @.str.2204, i32 signext undef)
+  %4450 = load i8, ptr undef, align 2, !tbaa !52
+  %4451 = sext i8 %4450 to i64
+  call fastcc void @transparent_crc(i64 %4451, ptr @.str.2205, i32 signext undef)
+  %4452 = load volatile i120, ptr undef, align 1
+  %4453 = lshr i120 %4452, 107
+  %4454 = trunc i120 %4453 to i64
+  call fastcc void @transparent_crc(i64 %4454, ptr @.str.2206, i32 signext undef)
+  %4455 = load volatile i120, ptr undef, align 1
+  %4456 = lshr i120 %4455, 78
+  %4457 = trunc i120 %4456 to i64
+  %4458 = and i64 %4457, 536870911
+  call fastcc void @transparent_crc(i64 %4458, ptr @.str.2207, i32 signext undef)
+  %4459 = load volatile i120, ptr undef, align 1
+  %4460 = shl i120 %4459, 42
+  %4461 = ashr i120 %4460, 104
+  %4462 = shl nsw i120 %4461, 32
+  %4463 = trunc i120 %4462 to i64
+  %4464 = ashr exact i64 %4463, 32
+  call fastcc void @transparent_crc(i64 %4464, ptr @.str.2208, i32 signext undef)
+  %4465 = load volatile i120, ptr undef, align 1
+  %4466 = shl i120 %4465, 58
+  %4467 = ashr i120 %4466, 105
+  %4468 = shl nsw i120 %4467, 32
+  %4469 = trunc i120 %4468 to i64
+  %4470 = ashr exact i64 %4469, 32
+  call fastcc void @transparent_crc(i64 %4470, ptr @.str.2209, i32 signext undef)
+  %4471 = load volatile i120, ptr undef, align 1
+  %4472 = lshr i120 %4471, 41
   %4473 = trunc i120 %4472 to i64
-  call fastcc void @transparent_crc(i64 %4473, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2206, i64 0, i64 0), i32 signext undef)
-  %4474 = load volatile i120, i120* undef, align 1
-  %4475 = lshr i120 %4474, 78
-  %4476 = trunc i120 %4475 to i64
-  %4477 = and i64 %4476, 536870911
-  call fastcc void @transparent_crc(i64 %4477, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2207, i64 0, i64 0), i32 signext undef)
-  %4478 = load volatile i120, i120* undef, align 1
-  %4479 = shl i120 %4478, 42
-  %4480 = ashr i120 %4479, 104
-  %4481 = shl nsw i120 %4480, 32
+  %4474 = and i64 %4473, 63
+  call fastcc void @transparent_crc(i64 %4474, ptr @.str.2210, i32 signext undef)
+  %4475 = load volatile i120, ptr undef, align 1
+  %4476 = lshr i120 %4475, 19
+  %4477 = trunc i120 %4476 to i64
+  %4478 = and i64 %4477, 4194303
+  call fastcc void @transparent_crc(i64 %4478, ptr @.str.2211, i32 signext undef)
+  %4479 = load volatile i120, ptr undef, align 1
+  %4480 = shl i120 %4479, 101
+  %4481 = ashr exact i120 %4480, 69
   %4482 = trunc i120 %4481 to i64
   %4483 = ashr exact i64 %4482, 32
-  call fastcc void @transparent_crc(i64 %4483, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2208, i64 0, i64 0), i32 signext undef)
-  %4484 = load volatile i120, i120* undef, align 1
-  %4485 = shl i120 %4484, 58
-  %4486 = ashr i120 %4485, 105
-  %4487 = shl nsw i120 %4486, 32
-  %4488 = trunc i120 %4487 to i64
-  %4489 = ashr exact i64 %4488, 32
-  call fastcc void @transparent_crc(i64 %4489, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2209, i64 0, i64 0), i32 signext undef)
-  %4490 = load volatile i120, i120* undef, align 1
-  %4491 = lshr i120 %4490, 41
-  %4492 = trunc i120 %4491 to i64
-  %4493 = and i64 %4492, 63
-  call fastcc void @transparent_crc(i64 %4493, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2210, i64 0, i64 0), i32 signext undef)
-  %4494 = load volatile i120, i120* undef, align 1
-  %4495 = lshr i120 %4494, 19
-  %4496 = trunc i120 %4495 to i64
-  %4497 = and i64 %4496, 4194303
-  call fastcc void @transparent_crc(i64 %4497, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2211, i64 0, i64 0), i32 signext undef)
-  %4498 = load volatile i120, i120* undef, align 1
-  %4499 = shl i120 %4498, 101
-  %4500 = ashr exact i120 %4499, 69
-  %4501 = trunc i120 %4500 to i64
-  %4502 = ashr exact i64 %4501, 32
-  call fastcc void @transparent_crc(i64 %4502, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2212, i64 0, i64 0), i32 signext undef)
-  %4503 = load i8, i8* undef, align 2, !tbaa !45
-  %4504 = zext i8 %4503 to i64
-  call fastcc void @transparent_crc(i64 %4504, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2213, i64 0, i64 0), i32 signext undef)
-  %4505 = load i8, i8* undef, align 1, !tbaa !46
-  %4506 = sext i8 %4505 to i64
-  call fastcc void @transparent_crc(i64 %4506, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2214, i64 0, i64 0), i32 signext undef)
-  %4507 = load i16, i16* undef, align 2, !tbaa !47
-  %4508 = sext i16 %4507 to i64
-  call fastcc void @transparent_crc(i64 %4508, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2215, i64 0, i64 0), i32 signext undef)
-  %4509 = load i64, i64* undef, align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4509, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2216, i64 0, i64 0), i32 signext undef)
-  %4510 = load i32, i32* undef, align 2, !tbaa !49
-  %4511 = sext i32 %4510 to i64
-  call fastcc void @transparent_crc(i64 %4511, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2217, i64 0, i64 0), i32 signext undef)
-  %4512 = getelementptr inbounds [3 x [9 x [9 x %5]]], [3 x [9 x [9 x %5]]]* bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2946 to [3 x [9 x [9 x %5]]]*), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
-  %4513 = load volatile i128, i128* %4512, align 2
-  %4514 = ashr i128 %4513, 99
-  %4515 = shl nsw i128 %4514, 32
-  %4516 = trunc i128 %4515 to i64
-  %4517 = ashr exact i64 %4516, 32
-  call fastcc void @transparent_crc(i64 %4517, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2218, i64 0, i64 0), i32 signext undef)
-  %4518 = load volatile i128, i128* %4512, align 2
-  %4519 = shl i128 %4518, 29
-  %4520 = ashr i128 %4519, 97
-  %4521 = shl nsw i128 %4520, 32
-  %4522 = trunc i128 %4521 to i64
-  %4523 = ashr exact i64 %4522, 32
-  call fastcc void @transparent_crc(i64 %4523, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2219, i64 0, i64 0), i32 signext undef)
-  %4524 = load volatile i128, i128* %4512, align 2
-  %4525 = shl i128 %4524, 60
-  %4526 = ashr i128 %4525, 108
-  %4527 = shl nsw i128 %4526, 32
-  %4528 = trunc i128 %4527 to i64
-  %4529 = ashr exact i64 %4528, 32
-  call fastcc void @transparent_crc(i64 %4529, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2220, i64 0, i64 0), i32 signext undef)
-  %4530 = load volatile i128, i128* %4512, align 2
-  %4531 = shl i128 %4530, 80
-  %4532 = ashr i128 %4531, 110
-  %4533 = shl nsw i128 %4532, 32
-  %4534 = trunc i128 %4533 to i64
-  %4535 = ashr exact i64 %4534, 32
-  call fastcc void @transparent_crc(i64 %4535, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2221, i64 0, i64 0), i32 signext undef)
-  %4536 = load volatile i128, i128* %4512, align 2
-  %4537 = lshr i128 %4536, 28
-  %4538 = trunc i128 %4537 to i64
-  %4539 = and i64 %4538, 3
-  call fastcc void @transparent_crc(i64 %4539, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2222, i64 0, i64 0), i32 signext undef)
-  %4540 = load volatile i128, i128* %4512, align 2
-  %4541 = shl i128 %4540, 100
-  %4542 = ashr i128 %4541, 107
-  %4543 = shl nsw i128 %4542, 32
+  call fastcc void @transparent_crc(i64 %4483, ptr @.str.2212, i32 signext undef)
+  %4484 = load i8, ptr undef, align 2, !tbaa !45
+  %4485 = zext i8 %4484 to i64
+  call fastcc void @transparent_crc(i64 %4485, ptr @.str.2213, i32 signext undef)
+  %4486 = load i8, ptr undef, align 1, !tbaa !46
+  %4487 = sext i8 %4486 to i64
+  call fastcc void @transparent_crc(i64 %4487, ptr @.str.2214, i32 signext undef)
+  %4488 = load i16, ptr undef, align 2, !tbaa !47
+  %4489 = sext i16 %4488 to i64
+  call fastcc void @transparent_crc(i64 %4489, ptr @.str.2215, i32 signext undef)
+  %4490 = load i64, ptr undef, align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4490, ptr @.str.2216, i32 signext undef)
+  %4491 = load i32, ptr undef, align 2, !tbaa !49
+  %4492 = sext i32 %4491 to i64
+  call fastcc void @transparent_crc(i64 %4492, ptr @.str.2217, i32 signext undef)
+  %4493 = getelementptr inbounds [3 x [9 x [9 x %5]]], ptr bitcast (<{ <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>, <{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }> }>* @g_2946 to ptr), i64 0, i64 0, i64 0, i64 0, i32 4, i32 0
+  %4494 = load volatile i128, ptr %4493, align 2
+  %4495 = ashr i128 %4494, 99
+  %4496 = shl nsw i128 %4495, 32
+  %4497 = trunc i128 %4496 to i64
+  %4498 = ashr exact i64 %4497, 32
+  call fastcc void @transparent_crc(i64 %4498, ptr @.str.2218, i32 signext undef)
+  %4499 = load volatile i128, ptr %4493, align 2
+  %4500 = shl i128 %4499, 29
+  %4501 = ashr i128 %4500, 97
+  %4502 = shl nsw i128 %4501, 32
+  %4503 = trunc i128 %4502 to i64
+  %4504 = ashr exact i64 %4503, 32
+  call fastcc void @transparent_crc(i64 %4504, ptr @.str.2219, i32 signext undef)
+  %4505 = load volatile i128, ptr %4493, align 2
+  %4506 = shl i128 %4505, 60
+  %4507 = ashr i128 %4506, 108
+  %4508 = shl nsw i128 %4507, 32
+  %4509 = trunc i128 %4508 to i64
+  %4510 = ashr exact i64 %4509, 32
+  call fastcc void @transparent_crc(i64 %4510, ptr @.str.2220, i32 signext undef)
+  %4511 = load volatile i128, ptr %4493, align 2
+  %4512 = shl i128 %4511, 80
+  %4513 = ashr i128 %4512, 110
+  %4514 = shl nsw i128 %4513, 32
+  %4515 = trunc i128 %4514 to i64
+  %4516 = ashr exact i64 %4515, 32
+  call fastcc void @transparent_crc(i64 %4516, ptr @.str.2221, i32 signext undef)
+  %4517 = load volatile i128, ptr %4493, align 2
+  %4518 = lshr i128 %4517, 28
+  %4519 = trunc i128 %4518 to i64
+  %4520 = and i64 %4519, 3
+  call fastcc void @transparent_crc(i64 %4520, ptr @.str.2222, i32 signext undef)
+  %4521 = load volatile i128, ptr %4493, align 2
+  %4522 = shl i128 %4521, 100
+  %4523 = ashr i128 %4522, 107
+  %4524 = shl nsw i128 %4523, 32
+  %4525 = trunc i128 %4524 to i64
+  %4526 = ashr exact i64 %4525, 32
+  call fastcc void @transparent_crc(i64 %4526, ptr @.str.2223, i32 signext undef)
+  %4527 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2227, i32 signext undef)
+  %4528 = load i80, ptr undef, align 2
+  %4529 = lshr i80 %4528, 49
+  %4530 = trunc i80 %4529 to i64
+  call fastcc void @transparent_crc(i64 %4530, ptr @.str.2228, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2229, i32 signext undef)
+  %4531 = load i80, ptr undef, align 2
+  %4532 = shl i80 %4531, 56
+  %4533 = ashr i80 %4532, 68
+  %4534 = shl nsw i80 %4533, 32
+  %4535 = trunc i80 %4534 to i64
+  %4536 = ashr exact i64 %4535, 32
+  call fastcc void @transparent_crc(i64 %4536, ptr @.str.2230, i32 signext undef)
+  %4537 = load i80, ptr undef, align 2
+  %4538 = lshr i80 %4537, 11
+  %4539 = trunc i80 %4538 to i64
+  %4540 = and i64 %4539, 1
+  call fastcc void @transparent_crc(i64 %4540, ptr @.str.2231, i32 signext undef)
+  %4541 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2252, i32 signext undef)
+  %4542 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 4, i32 0), align 2
+  %4543 = lshr i128 %4542, 28
   %4544 = trunc i128 %4543 to i64
-  %4545 = ashr exact i64 %4544, 32
-  call fastcc void @transparent_crc(i64 %4545, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2223, i64 0, i64 0), i32 signext undef)
-  %4546 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.2227, i64 0, i64 0), i32 signext undef)
-  %4547 = load i80, i80* undef, align 2
-  %4548 = lshr i80 %4547, 49
-  %4549 = trunc i80 %4548 to i64
-  call fastcc void @transparent_crc(i64 %4549, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2228, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2229, i64 0, i64 0), i32 signext undef)
-  %4550 = load i80, i80* undef, align 2
-  %4551 = shl i80 %4550, 56
-  %4552 = ashr i80 %4551, 68
-  %4553 = shl nsw i80 %4552, 32
+  %4545 = and i64 %4544, 3
+  call fastcc void @transparent_crc(i64 %4545, ptr @.str.2253, i32 signext undef)
+  %4546 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 4, i32 0), align 2
+  %4547 = shl i128 %4546, 100
+  %4548 = ashr i128 %4547, 107
+  %4549 = shl nsw i128 %4548, 32
+  %4550 = trunc i128 %4549 to i64
+  %4551 = ashr exact i64 %4550, 32
+  call fastcc void @transparent_crc(i64 %4551, ptr @.str.2254, i32 signext undef)
+  %4552 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 5, i32 0, i32 0), align 2
+  %4553 = lshr i80 %4552, 57
   %4554 = trunc i80 %4553 to i64
-  %4555 = ashr exact i64 %4554, 32
-  call fastcc void @transparent_crc(i64 %4555, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2230, i64 0, i64 0), i32 signext undef)
-  %4556 = load i80, i80* undef, align 2
-  %4557 = lshr i80 %4556, 11
-  %4558 = trunc i80 %4557 to i64
-  %4559 = and i64 %4558, 1
-  call fastcc void @transparent_crc(i64 %4559, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2231, i64 0, i64 0), i32 signext undef)
-  %4560 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2252, i64 0, i64 0), i32 signext undef)
-  %4561 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 4, i32 0) to i128*), align 2
-  %4562 = lshr i128 %4561, 28
-  %4563 = trunc i128 %4562 to i64
-  %4564 = and i64 %4563, 3
-  call fastcc void @transparent_crc(i64 %4564, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2253, i64 0, i64 0), i32 signext undef)
-  %4565 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 4, i32 0) to i128*), align 2
-  %4566 = shl i128 %4565, 100
-  %4567 = ashr i128 %4566, 107
-  %4568 = shl nsw i128 %4567, 32
-  %4569 = trunc i128 %4568 to i64
-  %4570 = ashr exact i64 %4569, 32
-  call fastcc void @transparent_crc(i64 %4570, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2254, i64 0, i64 0), i32 signext undef)
-  %4571 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4572 = lshr i80 %4571, 57
-  %4573 = trunc i80 %4572 to i64
-  call fastcc void @transparent_crc(i64 %4573, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2255, i64 0, i64 0), i32 signext undef)
-  %4574 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4575 = shl i80 %4574, 23
-  %4576 = ashr i80 %4575, 64
-  %4577 = shl nsw i80 %4576, 32
+  call fastcc void @transparent_crc(i64 %4554, ptr @.str.2255, i32 signext undef)
+  %4555 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 5, i32 0, i32 0), align 2
+  %4556 = shl i80 %4555, 23
+  %4557 = ashr i80 %4556, 64
+  %4558 = shl nsw i80 %4557, 32
+  %4559 = trunc i80 %4558 to i64
+  %4560 = ashr exact i64 %4559, 32
+  call fastcc void @transparent_crc(i64 %4560, ptr @.str.2256, i32 signext undef)
+  %4561 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 5, i32 0, i32 0), align 2
+  %4562 = shl i80 %4561, 39
+  %4563 = ashr i80 %4562, 62
+  %4564 = shl nsw i80 %4563, 32
+  %4565 = trunc i80 %4564 to i64
+  %4566 = ashr exact i64 %4565, 32
+  call fastcc void @transparent_crc(i64 %4566, ptr @.str.2257, i32 signext undef)
+  %4567 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 5, i32 0, i32 0), align 2
+  %4568 = shl i80 %4567, 57
+  %4569 = ashr i80 %4568, 58
+  %4570 = shl nsw i80 %4569, 32
+  %4571 = trunc i80 %4570 to i64
+  %4572 = ashr exact i64 %4571, 32
+  call fastcc void @transparent_crc(i64 %4572, ptr @.str.2258, i32 signext undef)
+  %4573 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 5, i32 1), align 2
+  %4574 = lshr i80 %4573, 49
+  %4575 = trunc i80 %4574 to i64
+  call fastcc void @transparent_crc(i64 %4575, ptr @.str.2259, i32 signext undef)
+  %4576 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2947, i64 0, i32 5, i32 1), align 2
+  %4577 = lshr i80 %4576, 24
   %4578 = trunc i80 %4577 to i64
-  %4579 = ashr exact i64 %4578, 32
-  call fastcc void @transparent_crc(i64 %4579, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2256, i64 0, i64 0), i32 signext undef)
-  %4580 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4581 = shl i80 %4580, 39
-  %4582 = ashr i80 %4581, 62
-  %4583 = shl nsw i80 %4582, 32
-  %4584 = trunc i80 %4583 to i64
-  %4585 = ashr exact i64 %4584, 32
-  call fastcc void @transparent_crc(i64 %4585, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2257, i64 0, i64 0), i32 signext undef)
-  %4586 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4587 = shl i80 %4586, 57
-  %4588 = ashr i80 %4587, 58
-  %4589 = shl nsw i80 %4588, 32
-  %4590 = trunc i80 %4589 to i64
-  %4591 = ashr exact i64 %4590, 32
-  call fastcc void @transparent_crc(i64 %4591, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2258, i64 0, i64 0), i32 signext undef)
-  %4592 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 5, i32 1) to i80*), align 2
-  %4593 = lshr i80 %4592, 49
-  %4594 = trunc i80 %4593 to i64
-  call fastcc void @transparent_crc(i64 %4594, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2259, i64 0, i64 0), i32 signext undef)
-  %4595 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2947, i64 0, i32 5, i32 1) to i80*), align 2
-  %4596 = lshr i80 %4595, 24
-  %4597 = trunc i80 %4596 to i64
-  %4598 = and i64 %4597, 33554431
-  call fastcc void @transparent_crc(i64 %4598, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2260, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2268, i64 0, i64 0), i32 signext undef)
-  %4599 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 2, i32 0) to i120*), align 1
-  %4600 = lshr i120 %4599, 78
-  %4601 = trunc i120 %4600 to i64
-  %4602 = and i64 %4601, 536870911
-  call fastcc void @transparent_crc(i64 %4602, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2269, i64 0, i64 0), i32 signext undef)
-  %4603 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 2, i32 0) to i120*), align 1
-  %4604 = shl i120 %4603, 42
-  %4605 = ashr i120 %4604, 104
-  %4606 = shl nsw i120 %4605, 32
+  %4579 = and i64 %4578, 33554431
+  call fastcc void @transparent_crc(i64 %4579, ptr @.str.2260, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2268, i32 signext undef)
+  %4580 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 2, i32 0), align 1
+  %4581 = lshr i120 %4580, 78
+  %4582 = trunc i120 %4581 to i64
+  %4583 = and i64 %4582, 536870911
+  call fastcc void @transparent_crc(i64 %4583, ptr @.str.2269, i32 signext undef)
+  %4584 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 2, i32 0), align 1
+  %4585 = shl i120 %4584, 42
+  %4586 = ashr i120 %4585, 104
+  %4587 = shl nsw i120 %4586, 32
+  %4588 = trunc i120 %4587 to i64
+  %4589 = ashr exact i64 %4588, 32
+  call fastcc void @transparent_crc(i64 %4589, ptr @.str.2270, i32 signext undef)
+  %4590 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 2, i32 0), align 1
+  %4591 = shl i120 %4590, 58
+  %4592 = ashr i120 %4591, 105
+  %4593 = shl nsw i120 %4592, 32
+  %4594 = trunc i120 %4593 to i64
+  %4595 = ashr exact i64 %4594, 32
+  call fastcc void @transparent_crc(i64 %4595, ptr @.str.2271, i32 signext undef)
+  %4596 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 2, i32 0), align 1
+  %4597 = lshr i120 %4596, 41
+  %4598 = trunc i120 %4597 to i64
+  %4599 = and i64 %4598, 63
+  call fastcc void @transparent_crc(i64 %4599, ptr @.str.2272, i32 signext undef)
+  %4600 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 2, i32 0), align 1
+  %4601 = lshr i120 %4600, 19
+  %4602 = trunc i120 %4601 to i64
+  %4603 = and i64 %4602, 4194303
+  call fastcc void @transparent_crc(i64 %4603, ptr @.str.2273, i32 signext undef)
+  %4604 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 2, i32 0), align 1
+  %4605 = shl i120 %4604, 101
+  %4606 = ashr exact i120 %4605, 69
   %4607 = trunc i120 %4606 to i64
   %4608 = ashr exact i64 %4607, 32
-  call fastcc void @transparent_crc(i64 %4608, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2270, i64 0, i64 0), i32 signext undef)
-  %4609 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 2, i32 0) to i120*), align 1
-  %4610 = shl i120 %4609, 58
-  %4611 = ashr i120 %4610, 105
-  %4612 = shl nsw i120 %4611, 32
-  %4613 = trunc i120 %4612 to i64
-  %4614 = ashr exact i64 %4613, 32
-  call fastcc void @transparent_crc(i64 %4614, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2271, i64 0, i64 0), i32 signext undef)
-  %4615 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 2, i32 0) to i120*), align 1
-  %4616 = lshr i120 %4615, 41
-  %4617 = trunc i120 %4616 to i64
-  %4618 = and i64 %4617, 63
-  call fastcc void @transparent_crc(i64 %4618, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2272, i64 0, i64 0), i32 signext undef)
-  %4619 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 2, i32 0) to i120*), align 1
-  %4620 = lshr i120 %4619, 19
-  %4621 = trunc i120 %4620 to i64
-  %4622 = and i64 %4621, 4194303
-  call fastcc void @transparent_crc(i64 %4622, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2273, i64 0, i64 0), i32 signext undef)
-  %4623 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 2, i32 0) to i120*), align 1
-  %4624 = shl i120 %4623, 101
-  %4625 = ashr exact i120 %4624, 69
-  %4626 = trunc i120 %4625 to i64
-  %4627 = ashr exact i64 %4626, 32
-  call fastcc void @transparent_crc(i64 %4627, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2274, i64 0, i64 0), i32 signext undef)
-  %4628 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %4629 = zext i8 %4628 to i64
-  call fastcc void @transparent_crc(i64 %4629, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2275, i64 0, i64 0), i32 signext undef)
-  %4630 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %4631 = sext i8 %4630 to i64
-  call fastcc void @transparent_crc(i64 %4631, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2276, i64 0, i64 0), i32 signext undef)
-  %4632 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %4633 = sext i16 %4632 to i64
-  call fastcc void @transparent_crc(i64 %4633, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2277, i64 0, i64 0), i32 signext undef)
-  %4634 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4634, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2278, i64 0, i64 0), i32 signext undef)
-  %4635 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %4636 = sext i32 %4635 to i64
-  call fastcc void @transparent_crc(i64 %4636, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2279, i64 0, i64 0), i32 signext undef)
-  %4637 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 4, i32 0) to i128*), align 2
-  %4638 = ashr i128 %4637, 99
-  %4639 = shl nsw i128 %4638, 32
-  %4640 = trunc i128 %4639 to i64
-  %4641 = ashr exact i64 %4640, 32
-  call fastcc void @transparent_crc(i64 %4641, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2280, i64 0, i64 0), i32 signext undef)
-  %4642 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 4, i32 0) to i128*), align 2
-  %4643 = shl i128 %4642, 29
-  %4644 = ashr i128 %4643, 97
-  %4645 = shl nsw i128 %4644, 32
-  %4646 = trunc i128 %4645 to i64
-  %4647 = ashr exact i64 %4646, 32
-  call fastcc void @transparent_crc(i64 %4647, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2281, i64 0, i64 0), i32 signext undef)
-  %4648 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 4, i32 0) to i128*), align 2
-  %4649 = shl i128 %4648, 60
-  %4650 = ashr i128 %4649, 108
-  %4651 = shl nsw i128 %4650, 32
-  %4652 = trunc i128 %4651 to i64
-  %4653 = ashr exact i64 %4652, 32
-  call fastcc void @transparent_crc(i64 %4653, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2282, i64 0, i64 0), i32 signext undef)
-  %4654 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 4, i32 0) to i128*), align 2
-  %4655 = shl i128 %4654, 80
-  %4656 = ashr i128 %4655, 110
-  %4657 = shl nsw i128 %4656, 32
-  %4658 = trunc i128 %4657 to i64
-  %4659 = ashr exact i64 %4658, 32
-  call fastcc void @transparent_crc(i64 %4659, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2283, i64 0, i64 0), i32 signext undef)
-  %4660 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 4, i32 0) to i128*), align 2
-  %4661 = lshr i128 %4660, 28
-  %4662 = trunc i128 %4661 to i64
-  %4663 = and i64 %4662, 3
-  call fastcc void @transparent_crc(i64 %4663, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2284, i64 0, i64 0), i32 signext undef)
-  %4664 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 4, i32 0) to i128*), align 2
-  %4665 = shl i128 %4664, 100
-  %4666 = ashr i128 %4665, 107
-  %4667 = shl nsw i128 %4666, 32
-  %4668 = trunc i128 %4667 to i64
-  %4669 = ashr exact i64 %4668, 32
-  call fastcc void @transparent_crc(i64 %4669, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2285, i64 0, i64 0), i32 signext undef)
-  %4670 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4671 = lshr i80 %4670, 57
-  %4672 = trunc i80 %4671 to i64
-  call fastcc void @transparent_crc(i64 %4672, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2286, i64 0, i64 0), i32 signext undef)
-  %4673 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2948, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2299, i64 0, i64 0), i32 signext undef)
-  %4674 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 2, i32 0) to i120*), align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2301, i64 0, i64 0), i32 signext undef)
-  %4675 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 2, i32 0) to i120*), align 1
-  %4676 = shl i120 %4675, 58
-  %4677 = ashr i120 %4676, 105
-  %4678 = shl nsw i120 %4677, 32
-  %4679 = trunc i120 %4678 to i64
-  %4680 = ashr exact i64 %4679, 32
-  call fastcc void @transparent_crc(i64 %4680, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2302, i64 0, i64 0), i32 signext undef)
-  %4681 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 2, i32 0) to i120*), align 1
-  %4682 = lshr i120 %4681, 41
-  %4683 = trunc i120 %4682 to i64
-  %4684 = and i64 %4683, 63
-  call fastcc void @transparent_crc(i64 %4684, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2303, i64 0, i64 0), i32 signext undef)
-  %4685 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 2, i32 0) to i120*), align 1
-  %4686 = lshr i120 %4685, 19
-  %4687 = trunc i120 %4686 to i64
-  %4688 = and i64 %4687, 4194303
-  call fastcc void @transparent_crc(i64 %4688, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2304, i64 0, i64 0), i32 signext undef)
-  %4689 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 2, i32 0) to i120*), align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2319, i64 0, i64 0), i32 signext undef)
-  %4690 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4691 = shl i80 %4690, 57
-  %4692 = ashr i80 %4691, 58
-  %4693 = shl nsw i80 %4692, 32
-  %4694 = trunc i80 %4693 to i64
-  %4695 = ashr exact i64 %4694, 32
-  call fastcc void @transparent_crc(i64 %4695, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2320, i64 0, i64 0), i32 signext undef)
-  %4696 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 5, i32 1) to i80*), align 2
-  %4697 = lshr i80 %4696, 49
+  call fastcc void @transparent_crc(i64 %4608, ptr @.str.2274, i32 signext undef)
+  %4609 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %4610 = zext i8 %4609 to i64
+  call fastcc void @transparent_crc(i64 %4610, ptr @.str.2275, i32 signext undef)
+  %4611 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %4612 = sext i8 %4611 to i64
+  call fastcc void @transparent_crc(i64 %4612, ptr @.str.2276, i32 signext undef)
+  %4613 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %4614 = sext i16 %4613 to i64
+  call fastcc void @transparent_crc(i64 %4614, ptr @.str.2277, i32 signext undef)
+  %4615 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4615, ptr @.str.2278, i32 signext undef)
+  %4616 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %4617 = sext i32 %4616 to i64
+  call fastcc void @transparent_crc(i64 %4617, ptr @.str.2279, i32 signext undef)
+  %4618 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 4, i32 0), align 2
+  %4619 = ashr i128 %4618, 99
+  %4620 = shl nsw i128 %4619, 32
+  %4621 = trunc i128 %4620 to i64
+  %4622 = ashr exact i64 %4621, 32
+  call fastcc void @transparent_crc(i64 %4622, ptr @.str.2280, i32 signext undef)
+  %4623 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 4, i32 0), align 2
+  %4624 = shl i128 %4623, 29
+  %4625 = ashr i128 %4624, 97
+  %4626 = shl nsw i128 %4625, 32
+  %4627 = trunc i128 %4626 to i64
+  %4628 = ashr exact i64 %4627, 32
+  call fastcc void @transparent_crc(i64 %4628, ptr @.str.2281, i32 signext undef)
+  %4629 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 4, i32 0), align 2
+  %4630 = shl i128 %4629, 60
+  %4631 = ashr i128 %4630, 108
+  %4632 = shl nsw i128 %4631, 32
+  %4633 = trunc i128 %4632 to i64
+  %4634 = ashr exact i64 %4633, 32
+  call fastcc void @transparent_crc(i64 %4634, ptr @.str.2282, i32 signext undef)
+  %4635 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 4, i32 0), align 2
+  %4636 = shl i128 %4635, 80
+  %4637 = ashr i128 %4636, 110
+  %4638 = shl nsw i128 %4637, 32
+  %4639 = trunc i128 %4638 to i64
+  %4640 = ashr exact i64 %4639, 32
+  call fastcc void @transparent_crc(i64 %4640, ptr @.str.2283, i32 signext undef)
+  %4641 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 4, i32 0), align 2
+  %4642 = lshr i128 %4641, 28
+  %4643 = trunc i128 %4642 to i64
+  %4644 = and i64 %4643, 3
+  call fastcc void @transparent_crc(i64 %4644, ptr @.str.2284, i32 signext undef)
+  %4645 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 4, i32 0), align 2
+  %4646 = shl i128 %4645, 100
+  %4647 = ashr i128 %4646, 107
+  %4648 = shl nsw i128 %4647, 32
+  %4649 = trunc i128 %4648 to i64
+  %4650 = ashr exact i64 %4649, 32
+  call fastcc void @transparent_crc(i64 %4650, ptr @.str.2285, i32 signext undef)
+  %4651 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 5, i32 0, i32 0), align 2
+  %4652 = lshr i80 %4651, 57
+  %4653 = trunc i80 %4652 to i64
+  call fastcc void @transparent_crc(i64 %4653, ptr @.str.2286, i32 signext undef)
+  %4654 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2948, i64 0, i32 5, i32 0, i32 0), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2299, i32 signext undef)
+  %4655 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 2, i32 0), align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2301, i32 signext undef)
+  %4656 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 2, i32 0), align 1
+  %4657 = shl i120 %4656, 58
+  %4658 = ashr i120 %4657, 105
+  %4659 = shl nsw i120 %4658, 32
+  %4660 = trunc i120 %4659 to i64
+  %4661 = ashr exact i64 %4660, 32
+  call fastcc void @transparent_crc(i64 %4661, ptr @.str.2302, i32 signext undef)
+  %4662 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 2, i32 0), align 1
+  %4663 = lshr i120 %4662, 41
+  %4664 = trunc i120 %4663 to i64
+  %4665 = and i64 %4664, 63
+  call fastcc void @transparent_crc(i64 %4665, ptr @.str.2303, i32 signext undef)
+  %4666 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 2, i32 0), align 1
+  %4667 = lshr i120 %4666, 19
+  %4668 = trunc i120 %4667 to i64
+  %4669 = and i64 %4668, 4194303
+  call fastcc void @transparent_crc(i64 %4669, ptr @.str.2304, i32 signext undef)
+  %4670 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 2, i32 0), align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2319, i32 signext undef)
+  %4671 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 5, i32 0, i32 0), align 2
+  %4672 = shl i80 %4671, 57
+  %4673 = ashr i80 %4672, 58
+  %4674 = shl nsw i80 %4673, 32
+  %4675 = trunc i80 %4674 to i64
+  %4676 = ashr exact i64 %4675, 32
+  call fastcc void @transparent_crc(i64 %4676, ptr @.str.2320, i32 signext undef)
+  %4677 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 5, i32 1), align 2
+  %4678 = lshr i80 %4677, 49
+  %4679 = trunc i80 %4678 to i64
+  call fastcc void @transparent_crc(i64 %4679, ptr @.str.2321, i32 signext undef)
+  %4680 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 5, i32 1), align 2
+  %4681 = lshr i80 %4680, 24
+  %4682 = trunc i80 %4681 to i64
+  %4683 = and i64 %4682, 33554431
+  call fastcc void @transparent_crc(i64 %4683, ptr @.str.2322, i32 signext undef)
+  %4684 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 5, i32 1), align 2
+  %4685 = shl i80 %4684, 56
+  %4686 = ashr i80 %4685, 68
+  %4687 = shl nsw i80 %4686, 32
+  %4688 = trunc i80 %4687 to i64
+  %4689 = ashr exact i64 %4688, 32
+  call fastcc void @transparent_crc(i64 %4689, ptr @.str.2323, i32 signext undef)
+  %4690 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 5, i32 1), align 2
+  %4691 = lshr i80 %4690, 11
+  %4692 = trunc i80 %4691 to i64
+  %4693 = and i64 %4692, 1
+  call fastcc void @transparent_crc(i64 %4693, ptr @.str.2324, i32 signext undef)
+  %4694 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 5, i32 1), align 2
+  %4695 = shl i80 %4694, 69
+  %4696 = ashr i80 %4695, 72
+  %4697 = shl nsw i80 %4696, 32
   %4698 = trunc i80 %4697 to i64
-  call fastcc void @transparent_crc(i64 %4698, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2321, i64 0, i64 0), i32 signext undef)
-  %4699 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 5, i32 1) to i80*), align 2
-  %4700 = lshr i80 %4699, 24
-  %4701 = trunc i80 %4700 to i64
-  %4702 = and i64 %4701, 33554431
-  call fastcc void @transparent_crc(i64 %4702, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2322, i64 0, i64 0), i32 signext undef)
-  %4703 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 5, i32 1) to i80*), align 2
-  %4704 = shl i80 %4703, 56
-  %4705 = ashr i80 %4704, 68
-  %4706 = shl nsw i80 %4705, 32
-  %4707 = trunc i80 %4706 to i64
-  %4708 = ashr exact i64 %4707, 32
-  call fastcc void @transparent_crc(i64 %4708, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2323, i64 0, i64 0), i32 signext undef)
-  %4709 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 5, i32 1) to i80*), align 2
-  %4710 = lshr i80 %4709, 11
-  %4711 = trunc i80 %4710 to i64
-  %4712 = and i64 %4711, 1
-  call fastcc void @transparent_crc(i64 %4712, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2324, i64 0, i64 0), i32 signext undef)
-  %4713 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 5, i32 1) to i80*), align 2
-  %4714 = shl i80 %4713, 69
-  %4715 = ashr i80 %4714, 72
-  %4716 = shl nsw i80 %4715, 32
-  %4717 = trunc i80 %4716 to i64
-  %4718 = ashr exact i64 %4717, 32
-  call fastcc void @transparent_crc(i64 %4718, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2325, i64 0, i64 0), i32 signext undef)
-  %4719 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 6), align 2, !tbaa !50
-  %4720 = sext i16 %4719 to i64
-  call fastcc void @transparent_crc(i64 %4720, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2326, i64 0, i64 0), i32 signext undef)
-  %4721 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2949, i64 0, i32 7), align 2, !tbaa !51
-  %4722 = zext i16 %4721 to i64
-  call fastcc void @transparent_crc(i64 %4722, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2327, i64 0, i64 0), i32 signext undef)
-  %4723 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 0), align 2, !tbaa !24
-  %4724 = sext i16 %4723 to i64
-  call fastcc void @transparent_crc(i64 %4724, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2328, i64 0, i64 0), i32 signext undef)
-  %4725 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 1), align 2, !tbaa !52
-  %4726 = sext i8 %4725 to i64
-  call fastcc void @transparent_crc(i64 %4726, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2329, i64 0, i64 0), i32 signext undef)
-  %4727 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4728 = lshr i120 %4727, 107
+  %4699 = ashr exact i64 %4698, 32
+  call fastcc void @transparent_crc(i64 %4699, ptr @.str.2325, i32 signext undef)
+  %4700 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 6), align 2, !tbaa !50
+  %4701 = sext i16 %4700 to i64
+  call fastcc void @transparent_crc(i64 %4701, ptr @.str.2326, i32 signext undef)
+  %4702 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2949, i64 0, i32 7), align 2, !tbaa !51
+  %4703 = zext i16 %4702 to i64
+  call fastcc void @transparent_crc(i64 %4703, ptr @.str.2327, i32 signext undef)
+  %4704 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 0), align 2, !tbaa !24
+  %4705 = sext i16 %4704 to i64
+  call fastcc void @transparent_crc(i64 %4705, ptr @.str.2328, i32 signext undef)
+  %4706 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 1), align 2, !tbaa !52
+  %4707 = sext i8 %4706 to i64
+  call fastcc void @transparent_crc(i64 %4707, ptr @.str.2329, i32 signext undef)
+  %4708 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4709 = lshr i120 %4708, 107
+  %4710 = trunc i120 %4709 to i64
+  call fastcc void @transparent_crc(i64 %4710, ptr @.str.2330, i32 signext undef)
+  %4711 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4712 = lshr i120 %4711, 78
+  %4713 = trunc i120 %4712 to i64
+  %4714 = and i64 %4713, 536870911
+  call fastcc void @transparent_crc(i64 %4714, ptr @.str.2331, i32 signext undef)
+  %4715 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4716 = shl i120 %4715, 42
+  %4717 = ashr i120 %4716, 104
+  %4718 = shl nsw i120 %4717, 32
+  %4719 = trunc i120 %4718 to i64
+  %4720 = ashr exact i64 %4719, 32
+  call fastcc void @transparent_crc(i64 %4720, ptr @.str.2332, i32 signext undef)
+  %4721 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4722 = shl i120 %4721, 58
+  %4723 = ashr i120 %4722, 105
+  %4724 = shl nsw i120 %4723, 32
+  %4725 = trunc i120 %4724 to i64
+  %4726 = ashr exact i64 %4725, 32
+  call fastcc void @transparent_crc(i64 %4726, ptr @.str.2333, i32 signext undef)
+  %4727 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4728 = lshr i120 %4727, 41
   %4729 = trunc i120 %4728 to i64
-  call fastcc void @transparent_crc(i64 %4729, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2330, i64 0, i64 0), i32 signext undef)
-  %4730 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4731 = lshr i120 %4730, 78
-  %4732 = trunc i120 %4731 to i64
-  %4733 = and i64 %4732, 536870911
-  call fastcc void @transparent_crc(i64 %4733, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2331, i64 0, i64 0), i32 signext undef)
-  %4734 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4735 = shl i120 %4734, 42
-  %4736 = ashr i120 %4735, 104
-  %4737 = shl nsw i120 %4736, 32
+  %4730 = and i64 %4729, 63
+  call fastcc void @transparent_crc(i64 %4730, ptr @.str.2334, i32 signext undef)
+  %4731 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4732 = lshr i120 %4731, 19
+  %4733 = trunc i120 %4732 to i64
+  %4734 = and i64 %4733, 4194303
+  call fastcc void @transparent_crc(i64 %4734, ptr @.str.2335, i32 signext undef)
+  %4735 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 2, i32 0), align 1
+  %4736 = shl i120 %4735, 101
+  %4737 = ashr exact i120 %4736, 69
   %4738 = trunc i120 %4737 to i64
   %4739 = ashr exact i64 %4738, 32
-  call fastcc void @transparent_crc(i64 %4739, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2332, i64 0, i64 0), i32 signext undef)
-  %4740 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4741 = shl i120 %4740, 58
-  %4742 = ashr i120 %4741, 105
-  %4743 = shl nsw i120 %4742, 32
-  %4744 = trunc i120 %4743 to i64
-  %4745 = ashr exact i64 %4744, 32
-  call fastcc void @transparent_crc(i64 %4745, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2333, i64 0, i64 0), i32 signext undef)
-  %4746 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4747 = lshr i120 %4746, 41
-  %4748 = trunc i120 %4747 to i64
-  %4749 = and i64 %4748, 63
-  call fastcc void @transparent_crc(i64 %4749, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2334, i64 0, i64 0), i32 signext undef)
-  %4750 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4751 = lshr i120 %4750, 19
-  %4752 = trunc i120 %4751 to i64
-  %4753 = and i64 %4752, 4194303
-  call fastcc void @transparent_crc(i64 %4753, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2335, i64 0, i64 0), i32 signext undef)
-  %4754 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 2, i32 0) to i120*), align 1
-  %4755 = shl i120 %4754, 101
-  %4756 = ashr exact i120 %4755, 69
-  %4757 = trunc i120 %4756 to i64
-  %4758 = ashr exact i64 %4757, 32
-  call fastcc void @transparent_crc(i64 %4758, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2336, i64 0, i64 0), i32 signext undef)
-  %4759 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %4760 = zext i8 %4759 to i64
-  call fastcc void @transparent_crc(i64 %4760, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2337, i64 0, i64 0), i32 signext undef)
-  %4761 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %4762 = sext i8 %4761 to i64
-  call fastcc void @transparent_crc(i64 %4762, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2338, i64 0, i64 0), i32 signext undef)
-  %4763 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %4764 = sext i16 %4763 to i64
-  call fastcc void @transparent_crc(i64 %4764, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2339, i64 0, i64 0), i32 signext undef)
-  %4765 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4765, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2340, i64 0, i64 0), i32 signext undef)
-  %4766 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %4767 = sext i32 %4766 to i64
-  call fastcc void @transparent_crc(i64 %4767, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2341, i64 0, i64 0), i32 signext undef)
-  %4768 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 4, i32 0) to i128*), align 2
-  %4769 = ashr i128 %4768, 99
-  %4770 = shl nsw i128 %4769, 32
-  %4771 = trunc i128 %4770 to i64
+  call fastcc void @transparent_crc(i64 %4739, ptr @.str.2336, i32 signext undef)
+  %4740 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %4741 = zext i8 %4740 to i64
+  call fastcc void @transparent_crc(i64 %4741, ptr @.str.2337, i32 signext undef)
+  %4742 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %4743 = sext i8 %4742 to i64
+  call fastcc void @transparent_crc(i64 %4743, ptr @.str.2338, i32 signext undef)
+  %4744 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %4745 = sext i16 %4744 to i64
+  call fastcc void @transparent_crc(i64 %4745, ptr @.str.2339, i32 signext undef)
+  %4746 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4746, ptr @.str.2340, i32 signext undef)
+  %4747 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %4748 = sext i32 %4747 to i64
+  call fastcc void @transparent_crc(i64 %4748, ptr @.str.2341, i32 signext undef)
+  %4749 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 4, i32 0), align 2
+  %4750 = ashr i128 %4749, 99
+  %4751 = shl nsw i128 %4750, 32
+  %4752 = trunc i128 %4751 to i64
+  %4753 = ashr exact i64 %4752, 32
+  call fastcc void @transparent_crc(i64 %4753, ptr @.str.2342, i32 signext undef)
+  %4754 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2950, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2364, i32 signext undef)
+  %4755 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2951, i64 0, i32 2, i32 0), align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2365, i32 signext undef)
+  %4756 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2951, i64 0, i32 2, i32 0), align 1
+  %4757 = lshr i120 %4756, 19
+  %4758 = trunc i120 %4757 to i64
+  %4759 = and i64 %4758, 4194303
+  call fastcc void @transparent_crc(i64 %4759, ptr @.str.2366, i32 signext undef)
+  %4760 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2951, i64 0, i32 2, i32 0), align 1
+  %4761 = shl i120 %4760, 101
+  %4762 = ashr exact i120 %4761, 69
+  %4763 = trunc i120 %4762 to i64
+  %4764 = ashr exact i64 %4763, 32
+  call fastcc void @transparent_crc(i64 %4764, ptr @.str.2367, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2375, i32 signext undef)
+  %4765 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2951, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2393, i32 signext undef)
+  %4766 = load volatile i120, ptr undef, align 1
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2394, i32 signext undef)
+  %4767 = load volatile i120, ptr undef, align 1
+  %4768 = shl i120 %4767, 58
+  %4769 = ashr i120 %4768, 105
+  %4770 = shl nsw i120 %4769, 32
+  %4771 = trunc i120 %4770 to i64
   %4772 = ashr exact i64 %4771, 32
-  call fastcc void @transparent_crc(i64 %4772, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2342, i64 0, i64 0), i32 signext undef)
-  %4773 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2950, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2364, i64 0, i64 0), i32 signext undef)
-  %4774 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2951, i64 0, i32 2, i32 0) to i120*), align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2365, i64 0, i64 0), i32 signext undef)
-  %4775 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2951, i64 0, i32 2, i32 0) to i120*), align 1
-  %4776 = lshr i120 %4775, 19
-  %4777 = trunc i120 %4776 to i64
-  %4778 = and i64 %4777, 4194303
-  call fastcc void @transparent_crc(i64 %4778, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2366, i64 0, i64 0), i32 signext undef)
-  %4779 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2951, i64 0, i32 2, i32 0) to i120*), align 1
-  %4780 = shl i120 %4779, 101
-  %4781 = ashr exact i120 %4780, 69
-  %4782 = trunc i120 %4781 to i64
-  %4783 = ashr exact i64 %4782, 32
-  call fastcc void @transparent_crc(i64 %4783, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2367, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2375, i64 0, i64 0), i32 signext undef)
-  %4784 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2951, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2393, i64 0, i64 0), i32 signext undef)
-  %4785 = load volatile i120, i120* undef, align 1
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2394, i64 0, i64 0), i32 signext undef)
-  %4786 = load volatile i120, i120* undef, align 1
-  %4787 = shl i120 %4786, 58
-  %4788 = ashr i120 %4787, 105
-  %4789 = shl nsw i120 %4788, 32
-  %4790 = trunc i120 %4789 to i64
-  %4791 = ashr exact i64 %4790, 32
-  call fastcc void @transparent_crc(i64 %4791, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2395, i64 0, i64 0), i32 signext undef)
-  %4792 = load volatile i120, i120* undef, align 1
-  %4793 = lshr i120 %4792, 41
-  %4794 = trunc i120 %4793 to i64
-  %4795 = and i64 %4794, 63
-  call fastcc void @transparent_crc(i64 %4795, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2396, i64 0, i64 0), i32 signext undef)
-  %4796 = load volatile i120, i120* undef, align 1
-  %4797 = lshr i120 %4796, 19
-  %4798 = trunc i120 %4797 to i64
-  %4799 = and i64 %4798, 4194303
-  call fastcc void @transparent_crc(i64 %4799, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2397, i64 0, i64 0), i32 signext undef)
-  %4800 = load volatile i120, i120* undef, align 1
-  %4801 = shl i120 %4800, 101
-  %4802 = ashr exact i120 %4801, 69
-  %4803 = trunc i120 %4802 to i64
-  %4804 = ashr exact i64 %4803, 32
-  call fastcc void @transparent_crc(i64 %4804, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2398, i64 0, i64 0), i32 signext undef)
-  %4805 = load i8, i8* undef, align 2, !tbaa !45
-  %4806 = zext i8 %4805 to i64
-  call fastcc void @transparent_crc(i64 %4806, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2399, i64 0, i64 0), i32 signext undef)
-  %4807 = load i8, i8* undef, align 1, !tbaa !46
-  %4808 = sext i8 %4807 to i64
-  call fastcc void @transparent_crc(i64 %4808, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2400, i64 0, i64 0), i32 signext undef)
-  %4809 = load i16, i16* undef, align 2, !tbaa !47
-  %4810 = sext i16 %4809 to i64
-  call fastcc void @transparent_crc(i64 %4810, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2401, i64 0, i64 0), i32 signext undef)
-  %4811 = load i64, i64* undef, align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4811, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2402, i64 0, i64 0), i32 signext undef)
-  %4812 = load i32, i32* undef, align 2, !tbaa !49
-  %4813 = sext i32 %4812 to i64
-  call fastcc void @transparent_crc(i64 %4813, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2403, i64 0, i64 0), i32 signext undef)
-  %4814 = getelementptr inbounds [8 x [5 x %5]], [8 x [5 x %5]]* bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_2952 to [8 x [5 x %5]]*), i64 0, i64 0, i64 0, i32 4, i32 0
-  %4815 = load volatile i128, i128* %4814, align 2
-  %4816 = ashr i128 %4815, 99
-  %4817 = shl nsw i128 %4816, 32
-  %4818 = trunc i128 %4817 to i64
-  %4819 = ashr exact i64 %4818, 32
-  call fastcc void @transparent_crc(i64 %4819, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2404, i64 0, i64 0), i32 signext undef)
-  %4820 = load volatile i128, i128* %4814, align 2
-  %4821 = shl i128 %4820, 29
-  %4822 = ashr i128 %4821, 97
-  %4823 = shl nsw i128 %4822, 32
-  %4824 = trunc i128 %4823 to i64
-  %4825 = ashr exact i64 %4824, 32
-  call fastcc void @transparent_crc(i64 %4825, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2405, i64 0, i64 0), i32 signext undef)
-  %4826 = load volatile i128, i128* %4814, align 2
-  %4827 = shl i128 %4826, 60
-  %4828 = ashr i128 %4827, 108
-  %4829 = shl nsw i128 %4828, 32
-  %4830 = trunc i128 %4829 to i64
-  %4831 = ashr exact i64 %4830, 32
-  call fastcc void @transparent_crc(i64 %4831, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2406, i64 0, i64 0), i32 signext undef)
-  %4832 = load volatile i128, i128* %4814, align 2
-  %4833 = shl i128 %4832, 80
-  %4834 = ashr i128 %4833, 110
-  %4835 = shl nsw i128 %4834, 32
-  %4836 = trunc i128 %4835 to i64
+  call fastcc void @transparent_crc(i64 %4772, ptr @.str.2395, i32 signext undef)
+  %4773 = load volatile i120, ptr undef, align 1
+  %4774 = lshr i120 %4773, 41
+  %4775 = trunc i120 %4774 to i64
+  %4776 = and i64 %4775, 63
+  call fastcc void @transparent_crc(i64 %4776, ptr @.str.2396, i32 signext undef)
+  %4777 = load volatile i120, ptr undef, align 1
+  %4778 = lshr i120 %4777, 19
+  %4779 = trunc i120 %4778 to i64
+  %4780 = and i64 %4779, 4194303
+  call fastcc void @transparent_crc(i64 %4780, ptr @.str.2397, i32 signext undef)
+  %4781 = load volatile i120, ptr undef, align 1
+  %4782 = shl i120 %4781, 101
+  %4783 = ashr exact i120 %4782, 69
+  %4784 = trunc i120 %4783 to i64
+  %4785 = ashr exact i64 %4784, 32
+  call fastcc void @transparent_crc(i64 %4785, ptr @.str.2398, i32 signext undef)
+  %4786 = load i8, ptr undef, align 2, !tbaa !45
+  %4787 = zext i8 %4786 to i64
+  call fastcc void @transparent_crc(i64 %4787, ptr @.str.2399, i32 signext undef)
+  %4788 = load i8, ptr undef, align 1, !tbaa !46
+  %4789 = sext i8 %4788 to i64
+  call fastcc void @transparent_crc(i64 %4789, ptr @.str.2400, i32 signext undef)
+  %4790 = load i16, ptr undef, align 2, !tbaa !47
+  %4791 = sext i16 %4790 to i64
+  call fastcc void @transparent_crc(i64 %4791, ptr @.str.2401, i32 signext undef)
+  %4792 = load i64, ptr undef, align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4792, ptr @.str.2402, i32 signext undef)
+  %4793 = load i32, ptr undef, align 2, !tbaa !49
+  %4794 = sext i32 %4793 to i64
+  call fastcc void @transparent_crc(i64 %4794, ptr @.str.2403, i32 signext undef)
+  %4795 = getelementptr inbounds [8 x [5 x %5]], ptr bitcast (<{ <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>, <{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }> }>* @g_2952 to ptr), i64 0, i64 0, i64 0, i32 4, i32 0
+  %4796 = load volatile i128, ptr %4795, align 2
+  %4797 = ashr i128 %4796, 99
+  %4798 = shl nsw i128 %4797, 32
+  %4799 = trunc i128 %4798 to i64
+  %4800 = ashr exact i64 %4799, 32
+  call fastcc void @transparent_crc(i64 %4800, ptr @.str.2404, i32 signext undef)
+  %4801 = load volatile i128, ptr %4795, align 2
+  %4802 = shl i128 %4801, 29
+  %4803 = ashr i128 %4802, 97
+  %4804 = shl nsw i128 %4803, 32
+  %4805 = trunc i128 %4804 to i64
+  %4806 = ashr exact i64 %4805, 32
+  call fastcc void @transparent_crc(i64 %4806, ptr @.str.2405, i32 signext undef)
+  %4807 = load volatile i128, ptr %4795, align 2
+  %4808 = shl i128 %4807, 60
+  %4809 = ashr i128 %4808, 108
+  %4810 = shl nsw i128 %4809, 32
+  %4811 = trunc i128 %4810 to i64
+  %4812 = ashr exact i64 %4811, 32
+  call fastcc void @transparent_crc(i64 %4812, ptr @.str.2406, i32 signext undef)
+  %4813 = load volatile i128, ptr %4795, align 2
+  %4814 = shl i128 %4813, 80
+  %4815 = ashr i128 %4814, 110
+  %4816 = shl nsw i128 %4815, 32
+  %4817 = trunc i128 %4816 to i64
+  %4818 = ashr exact i64 %4817, 32
+  call fastcc void @transparent_crc(i64 %4818, ptr @.str.2407, i32 signext undef)
+  %4819 = load volatile i128, ptr %4795, align 2
+  %4820 = lshr i128 %4819, 28
+  %4821 = trunc i128 %4820 to i64
+  %4822 = and i64 %4821, 3
+  call fastcc void @transparent_crc(i64 %4822, ptr @.str.2408, i32 signext undef)
+  %4823 = load volatile i128, ptr %4795, align 2
+  %4824 = shl i128 %4823, 100
+  %4825 = ashr i128 %4824, 107
+  %4826 = shl nsw i128 %4825, 32
+  %4827 = trunc i128 %4826 to i64
+  %4828 = ashr exact i64 %4827, 32
+  call fastcc void @transparent_crc(i64 %4828, ptr @.str.2409, i32 signext undef)
+  %4829 = load volatile i80, ptr undef, align 2
+  %4830 = lshr i80 %4829, 57
+  %4831 = trunc i80 %4830 to i64
+  call fastcc void @transparent_crc(i64 %4831, ptr @.str.2410, i32 signext undef)
+  %4832 = load volatile i80, ptr undef, align 2
+  %4833 = shl i80 %4832, 23
+  %4834 = ashr i80 %4833, 64
+  %4835 = shl nsw i80 %4834, 32
+  %4836 = trunc i80 %4835 to i64
   %4837 = ashr exact i64 %4836, 32
-  call fastcc void @transparent_crc(i64 %4837, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2407, i64 0, i64 0), i32 signext undef)
-  %4838 = load volatile i128, i128* %4814, align 2
-  %4839 = lshr i128 %4838, 28
-  %4840 = trunc i128 %4839 to i64
-  %4841 = and i64 %4840, 3
-  call fastcc void @transparent_crc(i64 %4841, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2408, i64 0, i64 0), i32 signext undef)
-  %4842 = load volatile i128, i128* %4814, align 2
-  %4843 = shl i128 %4842, 100
-  %4844 = ashr i128 %4843, 107
-  %4845 = shl nsw i128 %4844, 32
-  %4846 = trunc i128 %4845 to i64
-  %4847 = ashr exact i64 %4846, 32
-  call fastcc void @transparent_crc(i64 %4847, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2409, i64 0, i64 0), i32 signext undef)
-  %4848 = load volatile i80, i80* undef, align 2
-  %4849 = lshr i80 %4848, 57
-  %4850 = trunc i80 %4849 to i64
-  call fastcc void @transparent_crc(i64 %4850, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2410, i64 0, i64 0), i32 signext undef)
-  %4851 = load volatile i80, i80* undef, align 2
-  %4852 = shl i80 %4851, 23
-  %4853 = ashr i80 %4852, 64
-  %4854 = shl nsw i80 %4853, 32
+  call fastcc void @transparent_crc(i64 %4837, ptr @.str.2411, i32 signext undef)
+  %4838 = load volatile i80, ptr undef, align 2
+  %4839 = shl i80 %4838, 39
+  %4840 = ashr i80 %4839, 62
+  %4841 = shl nsw i80 %4840, 32
+  %4842 = trunc i80 %4841 to i64
+  %4843 = ashr exact i64 %4842, 32
+  call fastcc void @transparent_crc(i64 %4843, ptr @.str.2412, i32 signext undef)
+  %4844 = load volatile i80, ptr undef, align 2
+  %4845 = shl i80 %4844, 57
+  %4846 = ashr i80 %4845, 58
+  %4847 = shl nsw i80 %4846, 32
+  %4848 = trunc i80 %4847 to i64
+  %4849 = ashr exact i64 %4848, 32
+  call fastcc void @transparent_crc(i64 %4849, ptr @.str.2413, i32 signext undef)
+  %4850 = load i80, ptr undef, align 2
+  %4851 = lshr i80 %4850, 49
+  %4852 = trunc i80 %4851 to i64
+  call fastcc void @transparent_crc(i64 %4852, ptr @.str.2414, i32 signext undef)
+  %4853 = load volatile i80, ptr undef, align 2
+  %4854 = lshr i80 %4853, 24
   %4855 = trunc i80 %4854 to i64
-  %4856 = ashr exact i64 %4855, 32
-  call fastcc void @transparent_crc(i64 %4856, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2411, i64 0, i64 0), i32 signext undef)
-  %4857 = load volatile i80, i80* undef, align 2
-  %4858 = shl i80 %4857, 39
-  %4859 = ashr i80 %4858, 62
+  %4856 = and i64 %4855, 33554431
+  call fastcc void @transparent_crc(i64 %4856, ptr @.str.2415, i32 signext undef)
+  %4857 = load i80, ptr undef, align 2
+  %4858 = shl i80 %4857, 56
+  %4859 = ashr i80 %4858, 68
   %4860 = shl nsw i80 %4859, 32
   %4861 = trunc i80 %4860 to i64
   %4862 = ashr exact i64 %4861, 32
-  call fastcc void @transparent_crc(i64 %4862, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2412, i64 0, i64 0), i32 signext undef)
-  %4863 = load volatile i80, i80* undef, align 2
-  %4864 = shl i80 %4863, 57
-  %4865 = ashr i80 %4864, 58
-  %4866 = shl nsw i80 %4865, 32
-  %4867 = trunc i80 %4866 to i64
-  %4868 = ashr exact i64 %4867, 32
-  call fastcc void @transparent_crc(i64 %4868, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.2413, i64 0, i64 0), i32 signext undef)
-  %4869 = load i80, i80* undef, align 2
-  %4870 = lshr i80 %4869, 49
+  call fastcc void @transparent_crc(i64 %4862, ptr @.str.2416, i32 signext undef)
+  %4863 = load i80, ptr undef, align 2
+  %4864 = lshr i80 %4863, 11
+  %4865 = trunc i80 %4864 to i64
+  %4866 = and i64 %4865, 1
+  call fastcc void @transparent_crc(i64 %4866, ptr @.str.2417, i32 signext undef)
+  %4867 = load volatile i80, ptr undef, align 2
+  %4868 = shl i80 %4867, 69
+  %4869 = ashr i80 %4868, 72
+  %4870 = shl nsw i80 %4869, 32
   %4871 = trunc i80 %4870 to i64
-  call fastcc void @transparent_crc(i64 %4871, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2414, i64 0, i64 0), i32 signext undef)
-  %4872 = load volatile i80, i80* undef, align 2
-  %4873 = lshr i80 %4872, 24
-  %4874 = trunc i80 %4873 to i64
-  %4875 = and i64 %4874, 33554431
-  call fastcc void @transparent_crc(i64 %4875, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2415, i64 0, i64 0), i32 signext undef)
-  %4876 = load i80, i80* undef, align 2
-  %4877 = shl i80 %4876, 56
-  %4878 = ashr i80 %4877, 68
-  %4879 = shl nsw i80 %4878, 32
-  %4880 = trunc i80 %4879 to i64
-  %4881 = ashr exact i64 %4880, 32
-  call fastcc void @transparent_crc(i64 %4881, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2416, i64 0, i64 0), i32 signext undef)
-  %4882 = load i80, i80* undef, align 2
-  %4883 = lshr i80 %4882, 11
-  %4884 = trunc i80 %4883 to i64
-  %4885 = and i64 %4884, 1
-  call fastcc void @transparent_crc(i64 %4885, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2417, i64 0, i64 0), i32 signext undef)
-  %4886 = load volatile i80, i80* undef, align 2
-  %4887 = shl i80 %4886, 69
-  %4888 = ashr i80 %4887, 72
-  %4889 = shl nsw i80 %4888, 32
-  %4890 = trunc i80 %4889 to i64
-  %4891 = ashr exact i64 %4890, 32
-  call fastcc void @transparent_crc(i64 %4891, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.2418, i64 0, i64 0), i32 signext undef)
-  %4892 = load i16, i16* null, align 2, !tbaa !50
-  %4893 = sext i16 %4892 to i64
-  call fastcc void @transparent_crc(i64 %4893, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2419, i64 0, i64 0), i32 signext undef)
-  %4894 = load i16, i16* undef, align 2, !tbaa !51
-  %4895 = zext i16 %4894 to i64
-  call fastcc void @transparent_crc(i64 %4895, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2420, i64 0, i64 0), i32 signext undef)
-  %4896 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 0), align 2, !tbaa !24
-  %4897 = sext i16 %4896 to i64
-  call fastcc void @transparent_crc(i64 %4897, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2421, i64 0, i64 0), i32 signext undef)
-  %4898 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 1), align 2, !tbaa !52
-  %4899 = sext i8 %4898 to i64
-  call fastcc void @transparent_crc(i64 %4899, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2422, i64 0, i64 0), i32 signext undef)
-  %4900 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4901 = lshr i120 %4900, 107
+  %4872 = ashr exact i64 %4871, 32
+  call fastcc void @transparent_crc(i64 %4872, ptr @.str.2418, i32 signext undef)
+  %4873 = load i16, ptr null, align 2, !tbaa !50
+  %4874 = sext i16 %4873 to i64
+  call fastcc void @transparent_crc(i64 %4874, ptr @.str.2419, i32 signext undef)
+  %4875 = load i16, ptr undef, align 2, !tbaa !51
+  %4876 = zext i16 %4875 to i64
+  call fastcc void @transparent_crc(i64 %4876, ptr @.str.2420, i32 signext undef)
+  %4877 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 0), align 2, !tbaa !24
+  %4878 = sext i16 %4877 to i64
+  call fastcc void @transparent_crc(i64 %4878, ptr @.str.2421, i32 signext undef)
+  %4879 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 1), align 2, !tbaa !52
+  %4880 = sext i8 %4879 to i64
+  call fastcc void @transparent_crc(i64 %4880, ptr @.str.2422, i32 signext undef)
+  %4881 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4882 = lshr i120 %4881, 107
+  %4883 = trunc i120 %4882 to i64
+  call fastcc void @transparent_crc(i64 %4883, ptr @.str.2423, i32 signext undef)
+  %4884 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4885 = lshr i120 %4884, 78
+  %4886 = trunc i120 %4885 to i64
+  %4887 = and i64 %4886, 536870911
+  call fastcc void @transparent_crc(i64 %4887, ptr @.str.2424, i32 signext undef)
+  %4888 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4889 = shl i120 %4888, 42
+  %4890 = ashr i120 %4889, 104
+  %4891 = shl nsw i120 %4890, 32
+  %4892 = trunc i120 %4891 to i64
+  %4893 = ashr exact i64 %4892, 32
+  call fastcc void @transparent_crc(i64 %4893, ptr @.str.2425, i32 signext undef)
+  %4894 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4895 = shl i120 %4894, 58
+  %4896 = ashr i120 %4895, 105
+  %4897 = shl nsw i120 %4896, 32
+  %4898 = trunc i120 %4897 to i64
+  %4899 = ashr exact i64 %4898, 32
+  call fastcc void @transparent_crc(i64 %4899, ptr @.str.2426, i32 signext undef)
+  %4900 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4901 = lshr i120 %4900, 41
   %4902 = trunc i120 %4901 to i64
-  call fastcc void @transparent_crc(i64 %4902, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2423, i64 0, i64 0), i32 signext undef)
-  %4903 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4904 = lshr i120 %4903, 78
-  %4905 = trunc i120 %4904 to i64
-  %4906 = and i64 %4905, 536870911
-  call fastcc void @transparent_crc(i64 %4906, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2424, i64 0, i64 0), i32 signext undef)
-  %4907 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4908 = shl i120 %4907, 42
-  %4909 = ashr i120 %4908, 104
-  %4910 = shl nsw i120 %4909, 32
+  %4903 = and i64 %4902, 63
+  call fastcc void @transparent_crc(i64 %4903, ptr @.str.2427, i32 signext undef)
+  %4904 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4905 = lshr i120 %4904, 19
+  %4906 = trunc i120 %4905 to i64
+  %4907 = and i64 %4906, 4194303
+  call fastcc void @transparent_crc(i64 %4907, ptr @.str.2428, i32 signext undef)
+  %4908 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 2, i32 0), align 1
+  %4909 = shl i120 %4908, 101
+  %4910 = ashr exact i120 %4909, 69
   %4911 = trunc i120 %4910 to i64
   %4912 = ashr exact i64 %4911, 32
-  call fastcc void @transparent_crc(i64 %4912, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2425, i64 0, i64 0), i32 signext undef)
-  %4913 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4914 = shl i120 %4913, 58
-  %4915 = ashr i120 %4914, 105
-  %4916 = shl nsw i120 %4915, 32
-  %4917 = trunc i120 %4916 to i64
-  %4918 = ashr exact i64 %4917, 32
-  call fastcc void @transparent_crc(i64 %4918, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2426, i64 0, i64 0), i32 signext undef)
-  %4919 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4920 = lshr i120 %4919, 41
-  %4921 = trunc i120 %4920 to i64
-  %4922 = and i64 %4921, 63
-  call fastcc void @transparent_crc(i64 %4922, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2427, i64 0, i64 0), i32 signext undef)
-  %4923 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4924 = lshr i120 %4923, 19
-  %4925 = trunc i120 %4924 to i64
-  %4926 = and i64 %4925, 4194303
-  call fastcc void @transparent_crc(i64 %4926, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2428, i64 0, i64 0), i32 signext undef)
-  %4927 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 2, i32 0) to i120*), align 1
-  %4928 = shl i120 %4927, 101
-  %4929 = ashr exact i120 %4928, 69
-  %4930 = trunc i120 %4929 to i64
-  %4931 = ashr exact i64 %4930, 32
-  call fastcc void @transparent_crc(i64 %4931, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2429, i64 0, i64 0), i32 signext undef)
-  %4932 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %4933 = zext i8 %4932 to i64
-  call fastcc void @transparent_crc(i64 %4933, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2430, i64 0, i64 0), i32 signext undef)
-  %4934 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %4935 = sext i8 %4934 to i64
-  call fastcc void @transparent_crc(i64 %4935, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2431, i64 0, i64 0), i32 signext undef)
-  %4936 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %4937 = sext i16 %4936 to i64
-  call fastcc void @transparent_crc(i64 %4937, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2432, i64 0, i64 0), i32 signext undef)
-  %4938 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4938, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2433, i64 0, i64 0), i32 signext undef)
-  %4939 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %4940 = sext i32 %4939 to i64
-  call fastcc void @transparent_crc(i64 %4940, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2434, i64 0, i64 0), i32 signext undef)
-  %4941 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 4, i32 0) to i128*), align 2
-  %4942 = ashr i128 %4941, 99
-  %4943 = shl nsw i128 %4942, 32
-  %4944 = trunc i128 %4943 to i64
-  %4945 = ashr exact i64 %4944, 32
-  call fastcc void @transparent_crc(i64 %4945, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2435, i64 0, i64 0), i32 signext undef)
-  %4946 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 4, i32 0) to i128*), align 2
-  %4947 = shl i128 %4946, 29
-  %4948 = ashr i128 %4947, 97
-  %4949 = shl nsw i128 %4948, 32
-  %4950 = trunc i128 %4949 to i64
-  %4951 = ashr exact i64 %4950, 32
-  call fastcc void @transparent_crc(i64 %4951, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2436, i64 0, i64 0), i32 signext undef)
-  %4952 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 4, i32 0) to i128*), align 2
-  %4953 = shl i128 %4952, 60
-  %4954 = ashr i128 %4953, 108
-  %4955 = shl nsw i128 %4954, 32
-  %4956 = trunc i128 %4955 to i64
+  call fastcc void @transparent_crc(i64 %4912, ptr @.str.2429, i32 signext undef)
+  %4913 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %4914 = zext i8 %4913 to i64
+  call fastcc void @transparent_crc(i64 %4914, ptr @.str.2430, i32 signext undef)
+  %4915 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %4916 = sext i8 %4915 to i64
+  call fastcc void @transparent_crc(i64 %4916, ptr @.str.2431, i32 signext undef)
+  %4917 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %4918 = sext i16 %4917 to i64
+  call fastcc void @transparent_crc(i64 %4918, ptr @.str.2432, i32 signext undef)
+  %4919 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4919, ptr @.str.2433, i32 signext undef)
+  %4920 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %4921 = sext i32 %4920 to i64
+  call fastcc void @transparent_crc(i64 %4921, ptr @.str.2434, i32 signext undef)
+  %4922 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 4, i32 0), align 2
+  %4923 = ashr i128 %4922, 99
+  %4924 = shl nsw i128 %4923, 32
+  %4925 = trunc i128 %4924 to i64
+  %4926 = ashr exact i64 %4925, 32
+  call fastcc void @transparent_crc(i64 %4926, ptr @.str.2435, i32 signext undef)
+  %4927 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 4, i32 0), align 2
+  %4928 = shl i128 %4927, 29
+  %4929 = ashr i128 %4928, 97
+  %4930 = shl nsw i128 %4929, 32
+  %4931 = trunc i128 %4930 to i64
+  %4932 = ashr exact i64 %4931, 32
+  call fastcc void @transparent_crc(i64 %4932, ptr @.str.2436, i32 signext undef)
+  %4933 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 4, i32 0), align 2
+  %4934 = shl i128 %4933, 60
+  %4935 = ashr i128 %4934, 108
+  %4936 = shl nsw i128 %4935, 32
+  %4937 = trunc i128 %4936 to i64
+  %4938 = ashr exact i64 %4937, 32
+  call fastcc void @transparent_crc(i64 %4938, ptr @.str.2437, i32 signext undef)
+  %4939 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 4, i32 0), align 2
+  %4940 = shl i128 %4939, 80
+  %4941 = ashr i128 %4940, 110
+  %4942 = shl nsw i128 %4941, 32
+  %4943 = trunc i128 %4942 to i64
+  %4944 = ashr exact i64 %4943, 32
+  call fastcc void @transparent_crc(i64 %4944, ptr @.str.2438, i32 signext undef)
+  %4945 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 4, i32 0), align 2
+  %4946 = lshr i128 %4945, 28
+  %4947 = trunc i128 %4946 to i64
+  %4948 = and i64 %4947, 3
+  call fastcc void @transparent_crc(i64 %4948, ptr @.str.2439, i32 signext undef)
+  %4949 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 4, i32 0), align 2
+  %4950 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2953, i64 0, i32 5, i32 0, i32 0), align 2
+  %4951 = lshr i80 %4950, 57
+  %4952 = trunc i80 %4951 to i64
+  call fastcc void @transparent_crc(i64 %4952, ptr @.str.2441, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2490, i32 signext undef)
+  %4953 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 2, i32 0), align 1
+  %4954 = shl i120 %4953, 101
+  %4955 = ashr exact i120 %4954, 69
+  %4956 = trunc i120 %4955 to i64
   %4957 = ashr exact i64 %4956, 32
-  call fastcc void @transparent_crc(i64 %4957, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2437, i64 0, i64 0), i32 signext undef)
-  %4958 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 4, i32 0) to i128*), align 2
-  %4959 = shl i128 %4958, 80
-  %4960 = ashr i128 %4959, 110
-  %4961 = shl nsw i128 %4960, 32
-  %4962 = trunc i128 %4961 to i64
-  %4963 = ashr exact i64 %4962, 32
-  call fastcc void @transparent_crc(i64 %4963, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2438, i64 0, i64 0), i32 signext undef)
-  %4964 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 4, i32 0) to i128*), align 2
-  %4965 = lshr i128 %4964, 28
-  %4966 = trunc i128 %4965 to i64
-  %4967 = and i64 %4966, 3
-  call fastcc void @transparent_crc(i64 %4967, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2439, i64 0, i64 0), i32 signext undef)
-  %4968 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 4, i32 0) to i128*), align 2
-  %4969 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2953, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %4970 = lshr i80 %4969, 57
-  %4971 = trunc i80 %4970 to i64
-  call fastcc void @transparent_crc(i64 %4971, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2441, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2490, i64 0, i64 0), i32 signext undef)
-  %4972 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 2, i32 0) to i120*), align 1
-  %4973 = shl i120 %4972, 101
-  %4974 = ashr exact i120 %4973, 69
-  %4975 = trunc i120 %4974 to i64
-  %4976 = ashr exact i64 %4975, 32
-  call fastcc void @transparent_crc(i64 %4976, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2491, i64 0, i64 0), i32 signext undef)
-  %4977 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %4978 = zext i8 %4977 to i64
-  call fastcc void @transparent_crc(i64 %4978, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2492, i64 0, i64 0), i32 signext undef)
-  %4979 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %4980 = sext i8 %4979 to i64
-  call fastcc void @transparent_crc(i64 %4980, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2493, i64 0, i64 0), i32 signext undef)
-  %4981 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %4982 = sext i16 %4981 to i64
-  call fastcc void @transparent_crc(i64 %4982, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2494, i64 0, i64 0), i32 signext undef)
-  %4983 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %4983, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2495, i64 0, i64 0), i32 signext undef)
-  %4984 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %4985 = sext i32 %4984 to i64
-  call fastcc void @transparent_crc(i64 %4985, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2496, i64 0, i64 0), i32 signext undef)
-  %4986 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 4, i32 0) to i128*), align 2
-  %4987 = ashr i128 %4986, 99
-  %4988 = shl nsw i128 %4987, 32
-  %4989 = trunc i128 %4988 to i64
-  %4990 = ashr exact i64 %4989, 32
-  call fastcc void @transparent_crc(i64 %4990, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2497, i64 0, i64 0), i32 signext undef)
-  %4991 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 4, i32 0) to i128*), align 2
-  %4992 = shl i128 %4991, 29
-  %4993 = ashr i128 %4992, 97
-  %4994 = shl nsw i128 %4993, 32
-  %4995 = trunc i128 %4994 to i64
-  %4996 = ashr exact i64 %4995, 32
-  call fastcc void @transparent_crc(i64 %4996, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2498, i64 0, i64 0), i32 signext undef)
-  %4997 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 4, i32 0) to i128*), align 2
-  %4998 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 5, i32 1) to i80*), align 2
-  %4999 = shl i80 %4998, 69
-  %5000 = ashr i80 %4999, 72
-  %5001 = shl nsw i80 %5000, 32
-  %5002 = trunc i80 %5001 to i64
-  %5003 = ashr exact i64 %5002, 32
-  call fastcc void @transparent_crc(i64 %5003, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2511, i64 0, i64 0), i32 signext undef)
-  %5004 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 6), align 2, !tbaa !50
-  %5005 = sext i16 %5004 to i64
-  call fastcc void @transparent_crc(i64 %5005, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2512, i64 0, i64 0), i32 signext undef)
-  %5006 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2955, i64 0, i32 7), align 2, !tbaa !51
-  %5007 = zext i16 %5006 to i64
-  call fastcc void @transparent_crc(i64 %5007, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2513, i64 0, i64 0), i32 signext undef)
-  %5008 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 0), align 2, !tbaa !24
-  %5009 = sext i16 %5008 to i64
-  call fastcc void @transparent_crc(i64 %5009, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2514, i64 0, i64 0), i32 signext undef)
-  %5010 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 1), align 2, !tbaa !52
-  %5011 = sext i8 %5010 to i64
-  call fastcc void @transparent_crc(i64 %5011, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2515, i64 0, i64 0), i32 signext undef)
-  %5012 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5013 = lshr i120 %5012, 107
+  call fastcc void @transparent_crc(i64 %4957, ptr @.str.2491, i32 signext undef)
+  %4958 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %4959 = zext i8 %4958 to i64
+  call fastcc void @transparent_crc(i64 %4959, ptr @.str.2492, i32 signext undef)
+  %4960 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %4961 = sext i8 %4960 to i64
+  call fastcc void @transparent_crc(i64 %4961, ptr @.str.2493, i32 signext undef)
+  %4962 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %4963 = sext i16 %4962 to i64
+  call fastcc void @transparent_crc(i64 %4963, ptr @.str.2494, i32 signext undef)
+  %4964 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %4964, ptr @.str.2495, i32 signext undef)
+  %4965 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %4966 = sext i32 %4965 to i64
+  call fastcc void @transparent_crc(i64 %4966, ptr @.str.2496, i32 signext undef)
+  %4967 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 4, i32 0), align 2
+  %4968 = ashr i128 %4967, 99
+  %4969 = shl nsw i128 %4968, 32
+  %4970 = trunc i128 %4969 to i64
+  %4971 = ashr exact i64 %4970, 32
+  call fastcc void @transparent_crc(i64 %4971, ptr @.str.2497, i32 signext undef)
+  %4972 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 4, i32 0), align 2
+  %4973 = shl i128 %4972, 29
+  %4974 = ashr i128 %4973, 97
+  %4975 = shl nsw i128 %4974, 32
+  %4976 = trunc i128 %4975 to i64
+  %4977 = ashr exact i64 %4976, 32
+  call fastcc void @transparent_crc(i64 %4977, ptr @.str.2498, i32 signext undef)
+  %4978 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 4, i32 0), align 2
+  %4979 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 5, i32 1), align 2
+  %4980 = shl i80 %4979, 69
+  %4981 = ashr i80 %4980, 72
+  %4982 = shl nsw i80 %4981, 32
+  %4983 = trunc i80 %4982 to i64
+  %4984 = ashr exact i64 %4983, 32
+  call fastcc void @transparent_crc(i64 %4984, ptr @.str.2511, i32 signext undef)
+  %4985 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 6), align 2, !tbaa !50
+  %4986 = sext i16 %4985 to i64
+  call fastcc void @transparent_crc(i64 %4986, ptr @.str.2512, i32 signext undef)
+  %4987 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2955, i64 0, i32 7), align 2, !tbaa !51
+  %4988 = zext i16 %4987 to i64
+  call fastcc void @transparent_crc(i64 %4988, ptr @.str.2513, i32 signext undef)
+  %4989 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 0), align 2, !tbaa !24
+  %4990 = sext i16 %4989 to i64
+  call fastcc void @transparent_crc(i64 %4990, ptr @.str.2514, i32 signext undef)
+  %4991 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 1), align 2, !tbaa !52
+  %4992 = sext i8 %4991 to i64
+  call fastcc void @transparent_crc(i64 %4992, ptr @.str.2515, i32 signext undef)
+  %4993 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %4994 = lshr i120 %4993, 107
+  %4995 = trunc i120 %4994 to i64
+  call fastcc void @transparent_crc(i64 %4995, ptr @.str.2516, i32 signext undef)
+  %4996 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %4997 = lshr i120 %4996, 78
+  %4998 = trunc i120 %4997 to i64
+  %4999 = and i64 %4998, 536870911
+  call fastcc void @transparent_crc(i64 %4999, ptr @.str.2517, i32 signext undef)
+  %5000 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %5001 = shl i120 %5000, 42
+  %5002 = ashr i120 %5001, 104
+  %5003 = shl nsw i120 %5002, 32
+  %5004 = trunc i120 %5003 to i64
+  %5005 = ashr exact i64 %5004, 32
+  call fastcc void @transparent_crc(i64 %5005, ptr @.str.2518, i32 signext undef)
+  %5006 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %5007 = shl i120 %5006, 58
+  %5008 = ashr i120 %5007, 105
+  %5009 = shl nsw i120 %5008, 32
+  %5010 = trunc i120 %5009 to i64
+  %5011 = ashr exact i64 %5010, 32
+  call fastcc void @transparent_crc(i64 %5011, ptr @.str.2519, i32 signext undef)
+  %5012 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %5013 = lshr i120 %5012, 41
   %5014 = trunc i120 %5013 to i64
-  call fastcc void @transparent_crc(i64 %5014, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2516, i64 0, i64 0), i32 signext undef)
-  %5015 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5016 = lshr i120 %5015, 78
-  %5017 = trunc i120 %5016 to i64
-  %5018 = and i64 %5017, 536870911
-  call fastcc void @transparent_crc(i64 %5018, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2517, i64 0, i64 0), i32 signext undef)
-  %5019 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5020 = shl i120 %5019, 42
-  %5021 = ashr i120 %5020, 104
-  %5022 = shl nsw i120 %5021, 32
+  %5015 = and i64 %5014, 63
+  call fastcc void @transparent_crc(i64 %5015, ptr @.str.2520, i32 signext undef)
+  %5016 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %5017 = lshr i120 %5016, 19
+  %5018 = trunc i120 %5017 to i64
+  %5019 = and i64 %5018, 4194303
+  call fastcc void @transparent_crc(i64 %5019, ptr @.str.2521, i32 signext undef)
+  %5020 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 2, i32 0), align 1
+  %5021 = shl i120 %5020, 101
+  %5022 = ashr exact i120 %5021, 69
   %5023 = trunc i120 %5022 to i64
   %5024 = ashr exact i64 %5023, 32
-  call fastcc void @transparent_crc(i64 %5024, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2518, i64 0, i64 0), i32 signext undef)
-  %5025 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5026 = shl i120 %5025, 58
-  %5027 = ashr i120 %5026, 105
-  %5028 = shl nsw i120 %5027, 32
-  %5029 = trunc i120 %5028 to i64
-  %5030 = ashr exact i64 %5029, 32
-  call fastcc void @transparent_crc(i64 %5030, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2519, i64 0, i64 0), i32 signext undef)
-  %5031 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5032 = lshr i120 %5031, 41
-  %5033 = trunc i120 %5032 to i64
-  %5034 = and i64 %5033, 63
-  call fastcc void @transparent_crc(i64 %5034, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2520, i64 0, i64 0), i32 signext undef)
-  %5035 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5036 = lshr i120 %5035, 19
-  %5037 = trunc i120 %5036 to i64
-  %5038 = and i64 %5037, 4194303
-  call fastcc void @transparent_crc(i64 %5038, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2521, i64 0, i64 0), i32 signext undef)
-  %5039 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 2, i32 0) to i120*), align 1
-  %5040 = shl i120 %5039, 101
-  %5041 = ashr exact i120 %5040, 69
-  %5042 = trunc i120 %5041 to i64
-  %5043 = ashr exact i64 %5042, 32
-  call fastcc void @transparent_crc(i64 %5043, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2522, i64 0, i64 0), i32 signext undef)
-  %5044 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5045 = zext i8 %5044 to i64
-  call fastcc void @transparent_crc(i64 %5045, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2523, i64 0, i64 0), i32 signext undef)
-  %5046 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5047 = sext i8 %5046 to i64
-  call fastcc void @transparent_crc(i64 %5047, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2524, i64 0, i64 0), i32 signext undef)
-  %5048 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5049 = sext i16 %5048 to i64
-  call fastcc void @transparent_crc(i64 %5049, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2525, i64 0, i64 0), i32 signext undef)
-  %5050 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5050, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2526, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2527, i64 0, i64 0), i32 signext undef)
-  %5051 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 4, i32 0) to i128*), align 2
-  %5052 = ashr i128 %5051, 99
-  %5053 = shl nsw i128 %5052, 32
-  %5054 = trunc i128 %5053 to i64
-  %5055 = ashr exact i64 %5054, 32
-  call fastcc void @transparent_crc(i64 %5055, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2528, i64 0, i64 0), i32 signext undef)
-  %5056 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 4, i32 0) to i128*), align 2
-  %5057 = shl i128 %5056, 29
-  %5058 = ashr i128 %5057, 97
-  %5059 = shl nsw i128 %5058, 32
-  %5060 = trunc i128 %5059 to i64
-  %5061 = ashr exact i64 %5060, 32
-  call fastcc void @transparent_crc(i64 %5061, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2529, i64 0, i64 0), i32 signext undef)
-  %5062 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 4, i32 0) to i128*), align 2
-  %5063 = shl i128 %5062, 60
-  %5064 = ashr i128 %5063, 108
-  %5065 = shl nsw i128 %5064, 32
-  %5066 = trunc i128 %5065 to i64
-  %5067 = ashr exact i64 %5066, 32
-  call fastcc void @transparent_crc(i64 %5067, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2530, i64 0, i64 0), i32 signext undef)
-  %5068 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 4, i32 0) to i128*), align 2
-  %5069 = shl i128 %5068, 80
-  %5070 = ashr i128 %5069, 110
-  %5071 = shl nsw i128 %5070, 32
-  %5072 = trunc i128 %5071 to i64
+  call fastcc void @transparent_crc(i64 %5024, ptr @.str.2522, i32 signext undef)
+  %5025 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5026 = zext i8 %5025 to i64
+  call fastcc void @transparent_crc(i64 %5026, ptr @.str.2523, i32 signext undef)
+  %5027 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5028 = sext i8 %5027 to i64
+  call fastcc void @transparent_crc(i64 %5028, ptr @.str.2524, i32 signext undef)
+  %5029 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5030 = sext i16 %5029 to i64
+  call fastcc void @transparent_crc(i64 %5030, ptr @.str.2525, i32 signext undef)
+  %5031 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5031, ptr @.str.2526, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2527, i32 signext undef)
+  %5032 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 4, i32 0), align 2
+  %5033 = ashr i128 %5032, 99
+  %5034 = shl nsw i128 %5033, 32
+  %5035 = trunc i128 %5034 to i64
+  %5036 = ashr exact i64 %5035, 32
+  call fastcc void @transparent_crc(i64 %5036, ptr @.str.2528, i32 signext undef)
+  %5037 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 4, i32 0), align 2
+  %5038 = shl i128 %5037, 29
+  %5039 = ashr i128 %5038, 97
+  %5040 = shl nsw i128 %5039, 32
+  %5041 = trunc i128 %5040 to i64
+  %5042 = ashr exact i64 %5041, 32
+  call fastcc void @transparent_crc(i64 %5042, ptr @.str.2529, i32 signext undef)
+  %5043 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 4, i32 0), align 2
+  %5044 = shl i128 %5043, 60
+  %5045 = ashr i128 %5044, 108
+  %5046 = shl nsw i128 %5045, 32
+  %5047 = trunc i128 %5046 to i64
+  %5048 = ashr exact i64 %5047, 32
+  call fastcc void @transparent_crc(i64 %5048, ptr @.str.2530, i32 signext undef)
+  %5049 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 4, i32 0), align 2
+  %5050 = shl i128 %5049, 80
+  %5051 = ashr i128 %5050, 110
+  %5052 = shl nsw i128 %5051, 32
+  %5053 = trunc i128 %5052 to i64
+  %5054 = ashr exact i64 %5053, 32
+  call fastcc void @transparent_crc(i64 %5054, ptr @.str.2531, i32 signext undef)
+  %5055 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 4, i32 0), align 2
+  %5056 = lshr i128 %5055, 28
+  %5057 = trunc i128 %5056 to i64
+  %5058 = and i64 %5057, 3
+  call fastcc void @transparent_crc(i64 %5058, ptr @.str.2532, i32 signext undef)
+  %5059 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 4, i32 0), align 2
+  %5060 = shl i128 %5059, 100
+  %5061 = ashr i128 %5060, 107
+  %5062 = shl nsw i128 %5061, 32
+  %5063 = trunc i128 %5062 to i64
+  %5064 = ashr exact i64 %5063, 32
+  call fastcc void @transparent_crc(i64 %5064, ptr @.str.2533, i32 signext undef)
+  %5065 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 5, i32 0, i32 0), align 2
+  %5066 = lshr i80 %5065, 57
+  %5067 = trunc i80 %5066 to i64
+  call fastcc void @transparent_crc(i64 %5067, ptr @.str.2534, i32 signext undef)
+  %5068 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 5, i32 0, i32 0), align 2
+  %5069 = shl i80 %5068, 23
+  %5070 = ashr i80 %5069, 64
+  %5071 = shl nsw i80 %5070, 32
+  %5072 = trunc i80 %5071 to i64
   %5073 = ashr exact i64 %5072, 32
-  call fastcc void @transparent_crc(i64 %5073, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2531, i64 0, i64 0), i32 signext undef)
-  %5074 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 4, i32 0) to i128*), align 2
-  %5075 = lshr i128 %5074, 28
-  %5076 = trunc i128 %5075 to i64
-  %5077 = and i64 %5076, 3
-  call fastcc void @transparent_crc(i64 %5077, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2532, i64 0, i64 0), i32 signext undef)
-  %5078 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 4, i32 0) to i128*), align 2
-  %5079 = shl i128 %5078, 100
-  %5080 = ashr i128 %5079, 107
-  %5081 = shl nsw i128 %5080, 32
-  %5082 = trunc i128 %5081 to i64
-  %5083 = ashr exact i64 %5082, 32
-  call fastcc void @transparent_crc(i64 %5083, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2533, i64 0, i64 0), i32 signext undef)
-  %5084 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5085 = lshr i80 %5084, 57
-  %5086 = trunc i80 %5085 to i64
-  call fastcc void @transparent_crc(i64 %5086, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2534, i64 0, i64 0), i32 signext undef)
-  %5087 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5088 = shl i80 %5087, 23
-  %5089 = ashr i80 %5088, 64
-  %5090 = shl nsw i80 %5089, 32
-  %5091 = trunc i80 %5090 to i64
-  %5092 = ashr exact i64 %5091, 32
-  call fastcc void @transparent_crc(i64 %5092, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2535, i64 0, i64 0), i32 signext undef)
-  %5093 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2956, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2556, i64 0, i64 0), i32 signext undef)
-  %5094 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5094, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2557, i64 0, i64 0), i32 signext undef)
-  %5095 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5096 = sext i32 %5095 to i64
-  call fastcc void @transparent_crc(i64 %5096, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2558, i64 0, i64 0), i32 signext undef)
-  %5097 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2559, i64 0, i64 0), i32 signext undef)
-  %5098 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 4, i32 0) to i128*), align 2
-  %5099 = shl i128 %5098, 29
-  %5100 = ashr i128 %5099, 97
-  %5101 = shl nsw i128 %5100, 32
-  %5102 = trunc i128 %5101 to i64
-  %5103 = ashr exact i64 %5102, 32
-  call fastcc void @transparent_crc(i64 %5103, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2560, i64 0, i64 0), i32 signext undef)
-  %5104 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 4, i32 0) to i128*), align 2
-  %5105 = shl i128 %5104, 60
-  %5106 = ashr i128 %5105, 108
-  %5107 = shl nsw i128 %5106, 32
-  %5108 = trunc i128 %5107 to i64
-  %5109 = ashr exact i64 %5108, 32
-  call fastcc void @transparent_crc(i64 %5109, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2561, i64 0, i64 0), i32 signext undef)
-  %5110 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 4, i32 0) to i128*), align 2
-  %5111 = shl i128 %5110, 80
-  %5112 = ashr i128 %5111, 110
-  %5113 = shl nsw i128 %5112, 32
-  %5114 = trunc i128 %5113 to i64
+  call fastcc void @transparent_crc(i64 %5073, ptr @.str.2535, i32 signext undef)
+  %5074 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2956, i64 0, i32 5, i32 0, i32 0), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2556, i32 signext undef)
+  %5075 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5075, ptr @.str.2557, i32 signext undef)
+  %5076 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5077 = sext i32 %5076 to i64
+  call fastcc void @transparent_crc(i64 %5077, ptr @.str.2558, i32 signext undef)
+  %5078 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2559, i32 signext undef)
+  %5079 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 4, i32 0), align 2
+  %5080 = shl i128 %5079, 29
+  %5081 = ashr i128 %5080, 97
+  %5082 = shl nsw i128 %5081, 32
+  %5083 = trunc i128 %5082 to i64
+  %5084 = ashr exact i64 %5083, 32
+  call fastcc void @transparent_crc(i64 %5084, ptr @.str.2560, i32 signext undef)
+  %5085 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 4, i32 0), align 2
+  %5086 = shl i128 %5085, 60
+  %5087 = ashr i128 %5086, 108
+  %5088 = shl nsw i128 %5087, 32
+  %5089 = trunc i128 %5088 to i64
+  %5090 = ashr exact i64 %5089, 32
+  call fastcc void @transparent_crc(i64 %5090, ptr @.str.2561, i32 signext undef)
+  %5091 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 4, i32 0), align 2
+  %5092 = shl i128 %5091, 80
+  %5093 = ashr i128 %5092, 110
+  %5094 = shl nsw i128 %5093, 32
+  %5095 = trunc i128 %5094 to i64
+  %5096 = ashr exact i64 %5095, 32
+  call fastcc void @transparent_crc(i64 %5096, ptr @.str.2562, i32 signext undef)
+  %5097 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 4, i32 0), align 2
+  %5098 = lshr i128 %5097, 28
+  %5099 = trunc i128 %5098 to i64
+  %5100 = and i64 %5099, 3
+  call fastcc void @transparent_crc(i64 %5100, ptr @.str.2563, i32 signext undef)
+  %5101 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 4, i32 0), align 2
+  %5102 = shl i128 %5101, 100
+  %5103 = ashr i128 %5102, 107
+  %5104 = shl nsw i128 %5103, 32
+  %5105 = trunc i128 %5104 to i64
+  %5106 = ashr exact i64 %5105, 32
+  call fastcc void @transparent_crc(i64 %5106, ptr @.str.2564, i32 signext undef)
+  %5107 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 0, i32 0), align 2
+  %5108 = lshr i80 %5107, 57
+  %5109 = trunc i80 %5108 to i64
+  call fastcc void @transparent_crc(i64 %5109, ptr @.str.2565, i32 signext undef)
+  %5110 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 0, i32 0), align 2
+  %5111 = shl i80 %5110, 23
+  %5112 = ashr i80 %5111, 64
+  %5113 = shl nsw i80 %5112, 32
+  %5114 = trunc i80 %5113 to i64
   %5115 = ashr exact i64 %5114, 32
-  call fastcc void @transparent_crc(i64 %5115, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2562, i64 0, i64 0), i32 signext undef)
-  %5116 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 4, i32 0) to i128*), align 2
-  %5117 = lshr i128 %5116, 28
-  %5118 = trunc i128 %5117 to i64
-  %5119 = and i64 %5118, 3
-  call fastcc void @transparent_crc(i64 %5119, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2563, i64 0, i64 0), i32 signext undef)
-  %5120 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 4, i32 0) to i128*), align 2
-  %5121 = shl i128 %5120, 100
-  %5122 = ashr i128 %5121, 107
-  %5123 = shl nsw i128 %5122, 32
-  %5124 = trunc i128 %5123 to i64
-  %5125 = ashr exact i64 %5124, 32
-  call fastcc void @transparent_crc(i64 %5125, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2564, i64 0, i64 0), i32 signext undef)
-  %5126 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5127 = lshr i80 %5126, 57
-  %5128 = trunc i80 %5127 to i64
-  call fastcc void @transparent_crc(i64 %5128, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2565, i64 0, i64 0), i32 signext undef)
-  %5129 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5130 = shl i80 %5129, 23
-  %5131 = ashr i80 %5130, 64
-  %5132 = shl nsw i80 %5131, 32
+  call fastcc void @transparent_crc(i64 %5115, ptr @.str.2566, i32 signext undef)
+  %5116 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 0, i32 0), align 2
+  %5117 = shl i80 %5116, 39
+  %5118 = ashr i80 %5117, 62
+  %5119 = shl nsw i80 %5118, 32
+  %5120 = trunc i80 %5119 to i64
+  %5121 = ashr exact i64 %5120, 32
+  call fastcc void @transparent_crc(i64 %5121, ptr @.str.2567, i32 signext undef)
+  %5122 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 0, i32 0), align 2
+  %5123 = shl i80 %5122, 57
+  %5124 = ashr i80 %5123, 58
+  %5125 = shl nsw i80 %5124, 32
+  %5126 = trunc i80 %5125 to i64
+  %5127 = ashr exact i64 %5126, 32
+  call fastcc void @transparent_crc(i64 %5127, ptr @.str.2568, i32 signext undef)
+  %5128 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 1), align 2
+  %5129 = lshr i80 %5128, 49
+  %5130 = trunc i80 %5129 to i64
+  call fastcc void @transparent_crc(i64 %5130, ptr @.str.2569, i32 signext undef)
+  %5131 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 1), align 2
+  %5132 = lshr i80 %5131, 24
   %5133 = trunc i80 %5132 to i64
-  %5134 = ashr exact i64 %5133, 32
-  call fastcc void @transparent_crc(i64 %5134, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2566, i64 0, i64 0), i32 signext undef)
-  %5135 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5136 = shl i80 %5135, 39
-  %5137 = ashr i80 %5136, 62
+  %5134 = and i64 %5133, 33554431
+  call fastcc void @transparent_crc(i64 %5134, ptr @.str.2570, i32 signext undef)
+  %5135 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 1), align 2
+  %5136 = shl i80 %5135, 56
+  %5137 = ashr i80 %5136, 68
   %5138 = shl nsw i80 %5137, 32
   %5139 = trunc i80 %5138 to i64
   %5140 = ashr exact i64 %5139, 32
-  call fastcc void @transparent_crc(i64 %5140, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2567, i64 0, i64 0), i32 signext undef)
-  %5141 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5142 = shl i80 %5141, 57
-  %5143 = ashr i80 %5142, 58
-  %5144 = shl nsw i80 %5143, 32
-  %5145 = trunc i80 %5144 to i64
-  %5146 = ashr exact i64 %5145, 32
-  call fastcc void @transparent_crc(i64 %5146, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2568, i64 0, i64 0), i32 signext undef)
-  %5147 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 1) to i80*), align 2
-  %5148 = lshr i80 %5147, 49
+  call fastcc void @transparent_crc(i64 %5140, ptr @.str.2571, i32 signext undef)
+  %5141 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 1), align 2
+  %5142 = lshr i80 %5141, 11
+  %5143 = trunc i80 %5142 to i64
+  %5144 = and i64 %5143, 1
+  call fastcc void @transparent_crc(i64 %5144, ptr @.str.2572, i32 signext undef)
+  %5145 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 5, i32 1), align 2
+  %5146 = shl i80 %5145, 69
+  %5147 = ashr i80 %5146, 72
+  %5148 = shl nsw i80 %5147, 32
   %5149 = trunc i80 %5148 to i64
-  call fastcc void @transparent_crc(i64 %5149, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2569, i64 0, i64 0), i32 signext undef)
-  %5150 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 1) to i80*), align 2
-  %5151 = lshr i80 %5150, 24
-  %5152 = trunc i80 %5151 to i64
-  %5153 = and i64 %5152, 33554431
-  call fastcc void @transparent_crc(i64 %5153, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2570, i64 0, i64 0), i32 signext undef)
-  %5154 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 1) to i80*), align 2
-  %5155 = shl i80 %5154, 56
-  %5156 = ashr i80 %5155, 68
-  %5157 = shl nsw i80 %5156, 32
-  %5158 = trunc i80 %5157 to i64
-  %5159 = ashr exact i64 %5158, 32
-  call fastcc void @transparent_crc(i64 %5159, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2571, i64 0, i64 0), i32 signext undef)
-  %5160 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 1) to i80*), align 2
-  %5161 = lshr i80 %5160, 11
-  %5162 = trunc i80 %5161 to i64
-  %5163 = and i64 %5162, 1
-  call fastcc void @transparent_crc(i64 %5163, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2572, i64 0, i64 0), i32 signext undef)
-  %5164 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 5, i32 1) to i80*), align 2
-  %5165 = shl i80 %5164, 69
-  %5166 = ashr i80 %5165, 72
-  %5167 = shl nsw i80 %5166, 32
-  %5168 = trunc i80 %5167 to i64
-  %5169 = ashr exact i64 %5168, 32
-  call fastcc void @transparent_crc(i64 %5169, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2573, i64 0, i64 0), i32 signext undef)
-  %5170 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 6), align 2, !tbaa !50
-  %5171 = sext i16 %5170 to i64
-  call fastcc void @transparent_crc(i64 %5171, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2574, i64 0, i64 0), i32 signext undef)
-  %5172 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2957, i64 0, i32 7), align 2, !tbaa !51
-  %5173 = zext i16 %5172 to i64
-  call fastcc void @transparent_crc(i64 %5173, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2575, i64 0, i64 0), i32 signext undef)
-  %5174 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 0), align 2, !tbaa !24
-  %5175 = sext i16 %5174 to i64
-  call fastcc void @transparent_crc(i64 %5175, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2576, i64 0, i64 0), i32 signext undef)
-  %5176 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 1), align 2, !tbaa !52
-  %5177 = sext i8 %5176 to i64
-  call fastcc void @transparent_crc(i64 %5177, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2577, i64 0, i64 0), i32 signext undef)
-  %5178 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5179 = lshr i120 %5178, 107
+  %5150 = ashr exact i64 %5149, 32
+  call fastcc void @transparent_crc(i64 %5150, ptr @.str.2573, i32 signext undef)
+  %5151 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 6), align 2, !tbaa !50
+  %5152 = sext i16 %5151 to i64
+  call fastcc void @transparent_crc(i64 %5152, ptr @.str.2574, i32 signext undef)
+  %5153 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2957, i64 0, i32 7), align 2, !tbaa !51
+  %5154 = zext i16 %5153 to i64
+  call fastcc void @transparent_crc(i64 %5154, ptr @.str.2575, i32 signext undef)
+  %5155 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 0), align 2, !tbaa !24
+  %5156 = sext i16 %5155 to i64
+  call fastcc void @transparent_crc(i64 %5156, ptr @.str.2576, i32 signext undef)
+  %5157 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 1), align 2, !tbaa !52
+  %5158 = sext i8 %5157 to i64
+  call fastcc void @transparent_crc(i64 %5158, ptr @.str.2577, i32 signext undef)
+  %5159 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5160 = lshr i120 %5159, 107
+  %5161 = trunc i120 %5160 to i64
+  call fastcc void @transparent_crc(i64 %5161, ptr @.str.2578, i32 signext undef)
+  %5162 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5163 = lshr i120 %5162, 78
+  %5164 = trunc i120 %5163 to i64
+  %5165 = and i64 %5164, 536870911
+  call fastcc void @transparent_crc(i64 %5165, ptr @.str.2579, i32 signext undef)
+  %5166 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5167 = shl i120 %5166, 42
+  %5168 = ashr i120 %5167, 104
+  %5169 = shl nsw i120 %5168, 32
+  %5170 = trunc i120 %5169 to i64
+  %5171 = ashr exact i64 %5170, 32
+  call fastcc void @transparent_crc(i64 %5171, ptr @.str.2580, i32 signext undef)
+  %5172 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5173 = shl i120 %5172, 58
+  %5174 = ashr i120 %5173, 105
+  %5175 = shl nsw i120 %5174, 32
+  %5176 = trunc i120 %5175 to i64
+  %5177 = ashr exact i64 %5176, 32
+  call fastcc void @transparent_crc(i64 %5177, ptr @.str.2581, i32 signext undef)
+  %5178 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5179 = lshr i120 %5178, 41
   %5180 = trunc i120 %5179 to i64
-  call fastcc void @transparent_crc(i64 %5180, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2578, i64 0, i64 0), i32 signext undef)
-  %5181 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5182 = lshr i120 %5181, 78
-  %5183 = trunc i120 %5182 to i64
-  %5184 = and i64 %5183, 536870911
-  call fastcc void @transparent_crc(i64 %5184, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2579, i64 0, i64 0), i32 signext undef)
-  %5185 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5186 = shl i120 %5185, 42
-  %5187 = ashr i120 %5186, 104
-  %5188 = shl nsw i120 %5187, 32
+  %5181 = and i64 %5180, 63
+  call fastcc void @transparent_crc(i64 %5181, ptr @.str.2582, i32 signext undef)
+  %5182 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5183 = lshr i120 %5182, 19
+  %5184 = trunc i120 %5183 to i64
+  %5185 = and i64 %5184, 4194303
+  call fastcc void @transparent_crc(i64 %5185, ptr @.str.2583, i32 signext undef)
+  %5186 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 2, i32 0), align 1
+  %5187 = shl i120 %5186, 101
+  %5188 = ashr exact i120 %5187, 69
   %5189 = trunc i120 %5188 to i64
   %5190 = ashr exact i64 %5189, 32
-  call fastcc void @transparent_crc(i64 %5190, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2580, i64 0, i64 0), i32 signext undef)
-  %5191 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5192 = shl i120 %5191, 58
-  %5193 = ashr i120 %5192, 105
-  %5194 = shl nsw i120 %5193, 32
-  %5195 = trunc i120 %5194 to i64
-  %5196 = ashr exact i64 %5195, 32
-  call fastcc void @transparent_crc(i64 %5196, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2581, i64 0, i64 0), i32 signext undef)
-  %5197 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5198 = lshr i120 %5197, 41
-  %5199 = trunc i120 %5198 to i64
-  %5200 = and i64 %5199, 63
-  call fastcc void @transparent_crc(i64 %5200, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2582, i64 0, i64 0), i32 signext undef)
-  %5201 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5202 = lshr i120 %5201, 19
-  %5203 = trunc i120 %5202 to i64
-  %5204 = and i64 %5203, 4194303
-  call fastcc void @transparent_crc(i64 %5204, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2583, i64 0, i64 0), i32 signext undef)
-  %5205 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 2, i32 0) to i120*), align 1
-  %5206 = shl i120 %5205, 101
-  %5207 = ashr exact i120 %5206, 69
-  %5208 = trunc i120 %5207 to i64
-  %5209 = ashr exact i64 %5208, 32
-  call fastcc void @transparent_crc(i64 %5209, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2584, i64 0, i64 0), i32 signext undef)
-  %5210 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5211 = zext i8 %5210 to i64
-  call fastcc void @transparent_crc(i64 %5211, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2585, i64 0, i64 0), i32 signext undef)
-  %5212 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5213 = sext i8 %5212 to i64
-  call fastcc void @transparent_crc(i64 %5213, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2586, i64 0, i64 0), i32 signext undef)
-  %5214 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5215 = sext i16 %5214 to i64
-  call fastcc void @transparent_crc(i64 %5215, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2587, i64 0, i64 0), i32 signext undef)
-  %5216 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5216, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2588, i64 0, i64 0), i32 signext undef)
-  %5217 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5218 = sext i32 %5217 to i64
-  call fastcc void @transparent_crc(i64 %5218, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2589, i64 0, i64 0), i32 signext undef)
-  %5219 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 4, i32 0) to i128*), align 2
-  %5220 = ashr i128 %5219, 99
-  %5221 = shl nsw i128 %5220, 32
-  %5222 = trunc i128 %5221 to i64
-  %5223 = ashr exact i64 %5222, 32
-  call fastcc void @transparent_crc(i64 %5223, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2590, i64 0, i64 0), i32 signext undef)
-  %5224 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 4, i32 0) to i128*), align 2
-  %5225 = shl i128 %5224, 29
-  %5226 = ashr i128 %5225, 97
-  %5227 = shl nsw i128 %5226, 32
-  %5228 = trunc i128 %5227 to i64
-  %5229 = ashr exact i64 %5228, 32
-  call fastcc void @transparent_crc(i64 %5229, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2591, i64 0, i64 0), i32 signext undef)
-  %5230 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 4, i32 0) to i128*), align 2
-  %5231 = shl i128 %5230, 60
-  %5232 = ashr i128 %5231, 108
-  %5233 = shl nsw i128 %5232, 32
-  %5234 = trunc i128 %5233 to i64
-  %5235 = ashr exact i64 %5234, 32
-  call fastcc void @transparent_crc(i64 %5235, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2592, i64 0, i64 0), i32 signext undef)
-  %5236 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 4, i32 0) to i128*), align 2
-  %5237 = shl i128 %5236, 80
-  %5238 = ashr i128 %5237, 110
-  %5239 = shl nsw i128 %5238, 32
-  %5240 = trunc i128 %5239 to i64
+  call fastcc void @transparent_crc(i64 %5190, ptr @.str.2584, i32 signext undef)
+  %5191 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5192 = zext i8 %5191 to i64
+  call fastcc void @transparent_crc(i64 %5192, ptr @.str.2585, i32 signext undef)
+  %5193 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5194 = sext i8 %5193 to i64
+  call fastcc void @transparent_crc(i64 %5194, ptr @.str.2586, i32 signext undef)
+  %5195 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5196 = sext i16 %5195 to i64
+  call fastcc void @transparent_crc(i64 %5196, ptr @.str.2587, i32 signext undef)
+  %5197 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5197, ptr @.str.2588, i32 signext undef)
+  %5198 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5199 = sext i32 %5198 to i64
+  call fastcc void @transparent_crc(i64 %5199, ptr @.str.2589, i32 signext undef)
+  %5200 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 4, i32 0), align 2
+  %5201 = ashr i128 %5200, 99
+  %5202 = shl nsw i128 %5201, 32
+  %5203 = trunc i128 %5202 to i64
+  %5204 = ashr exact i64 %5203, 32
+  call fastcc void @transparent_crc(i64 %5204, ptr @.str.2590, i32 signext undef)
+  %5205 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 4, i32 0), align 2
+  %5206 = shl i128 %5205, 29
+  %5207 = ashr i128 %5206, 97
+  %5208 = shl nsw i128 %5207, 32
+  %5209 = trunc i128 %5208 to i64
+  %5210 = ashr exact i64 %5209, 32
+  call fastcc void @transparent_crc(i64 %5210, ptr @.str.2591, i32 signext undef)
+  %5211 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 4, i32 0), align 2
+  %5212 = shl i128 %5211, 60
+  %5213 = ashr i128 %5212, 108
+  %5214 = shl nsw i128 %5213, 32
+  %5215 = trunc i128 %5214 to i64
+  %5216 = ashr exact i64 %5215, 32
+  call fastcc void @transparent_crc(i64 %5216, ptr @.str.2592, i32 signext undef)
+  %5217 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 4, i32 0), align 2
+  %5218 = shl i128 %5217, 80
+  %5219 = ashr i128 %5218, 110
+  %5220 = shl nsw i128 %5219, 32
+  %5221 = trunc i128 %5220 to i64
+  %5222 = ashr exact i64 %5221, 32
+  call fastcc void @transparent_crc(i64 %5222, ptr @.str.2593, i32 signext undef)
+  %5223 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 4, i32 0), align 2
+  %5224 = lshr i128 %5223, 28
+  %5225 = trunc i128 %5224 to i64
+  %5226 = and i64 %5225, 3
+  call fastcc void @transparent_crc(i64 %5226, ptr @.str.2594, i32 signext undef)
+  %5227 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 4, i32 0), align 2
+  %5228 = shl i128 %5227, 100
+  %5229 = ashr i128 %5228, 107
+  %5230 = shl nsw i128 %5229, 32
+  %5231 = trunc i128 %5230 to i64
+  %5232 = ashr exact i64 %5231, 32
+  call fastcc void @transparent_crc(i64 %5232, ptr @.str.2595, i32 signext undef)
+  %5233 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 0, i32 0), align 2
+  %5234 = lshr i80 %5233, 57
+  %5235 = trunc i80 %5234 to i64
+  call fastcc void @transparent_crc(i64 %5235, ptr @.str.2596, i32 signext undef)
+  %5236 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 0, i32 0), align 2
+  %5237 = shl i80 %5236, 23
+  %5238 = ashr i80 %5237, 64
+  %5239 = shl nsw i80 %5238, 32
+  %5240 = trunc i80 %5239 to i64
   %5241 = ashr exact i64 %5240, 32
-  call fastcc void @transparent_crc(i64 %5241, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2593, i64 0, i64 0), i32 signext undef)
-  %5242 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 4, i32 0) to i128*), align 2
-  %5243 = lshr i128 %5242, 28
-  %5244 = trunc i128 %5243 to i64
-  %5245 = and i64 %5244, 3
-  call fastcc void @transparent_crc(i64 %5245, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2594, i64 0, i64 0), i32 signext undef)
-  %5246 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 4, i32 0) to i128*), align 2
-  %5247 = shl i128 %5246, 100
-  %5248 = ashr i128 %5247, 107
-  %5249 = shl nsw i128 %5248, 32
-  %5250 = trunc i128 %5249 to i64
-  %5251 = ashr exact i64 %5250, 32
-  call fastcc void @transparent_crc(i64 %5251, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2595, i64 0, i64 0), i32 signext undef)
-  %5252 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5253 = lshr i80 %5252, 57
-  %5254 = trunc i80 %5253 to i64
-  call fastcc void @transparent_crc(i64 %5254, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2596, i64 0, i64 0), i32 signext undef)
-  %5255 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5256 = shl i80 %5255, 23
-  %5257 = ashr i80 %5256, 64
-  %5258 = shl nsw i80 %5257, 32
+  call fastcc void @transparent_crc(i64 %5241, ptr @.str.2597, i32 signext undef)
+  %5242 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 0, i32 0), align 2
+  %5243 = shl i80 %5242, 39
+  %5244 = ashr i80 %5243, 62
+  %5245 = shl nsw i80 %5244, 32
+  %5246 = trunc i80 %5245 to i64
+  %5247 = ashr exact i64 %5246, 32
+  call fastcc void @transparent_crc(i64 %5247, ptr @.str.2598, i32 signext undef)
+  %5248 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 0, i32 0), align 2
+  %5249 = shl i80 %5248, 57
+  %5250 = ashr i80 %5249, 58
+  %5251 = shl nsw i80 %5250, 32
+  %5252 = trunc i80 %5251 to i64
+  %5253 = ashr exact i64 %5252, 32
+  call fastcc void @transparent_crc(i64 %5253, ptr @.str.2599, i32 signext undef)
+  %5254 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 1), align 2
+  %5255 = lshr i80 %5254, 49
+  %5256 = trunc i80 %5255 to i64
+  call fastcc void @transparent_crc(i64 %5256, ptr @.str.2600, i32 signext undef)
+  %5257 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 1), align 2
+  %5258 = lshr i80 %5257, 24
   %5259 = trunc i80 %5258 to i64
-  %5260 = ashr exact i64 %5259, 32
-  call fastcc void @transparent_crc(i64 %5260, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2597, i64 0, i64 0), i32 signext undef)
-  %5261 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5262 = shl i80 %5261, 39
-  %5263 = ashr i80 %5262, 62
-  %5264 = shl nsw i80 %5263, 32
-  %5265 = trunc i80 %5264 to i64
-  %5266 = ashr exact i64 %5265, 32
-  call fastcc void @transparent_crc(i64 %5266, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2598, i64 0, i64 0), i32 signext undef)
-  %5267 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5268 = shl i80 %5267, 57
-  %5269 = ashr i80 %5268, 58
-  %5270 = shl nsw i80 %5269, 32
-  %5271 = trunc i80 %5270 to i64
-  %5272 = ashr exact i64 %5271, 32
-  call fastcc void @transparent_crc(i64 %5272, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2599, i64 0, i64 0), i32 signext undef)
-  %5273 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 1) to i80*), align 2
-  %5274 = lshr i80 %5273, 49
-  %5275 = trunc i80 %5274 to i64
-  call fastcc void @transparent_crc(i64 %5275, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2600, i64 0, i64 0), i32 signext undef)
-  %5276 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 1) to i80*), align 2
-  %5277 = lshr i80 %5276, 24
-  %5278 = trunc i80 %5277 to i64
-  %5279 = and i64 %5278, 33554431
-  call fastcc void @transparent_crc(i64 %5279, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2601, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2602, i64 0, i64 0), i32 signext undef)
-  %5280 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 1) to i80*), align 2
-  %5281 = lshr i80 %5280, 11
-  %5282 = trunc i80 %5281 to i64
-  %5283 = and i64 %5282, 1
-  call fastcc void @transparent_crc(i64 %5283, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2603, i64 0, i64 0), i32 signext undef)
-  %5284 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 5, i32 1) to i80*), align 2
-  %5285 = shl i80 %5284, 69
-  %5286 = ashr i80 %5285, 72
-  %5287 = shl nsw i80 %5286, 32
-  %5288 = trunc i80 %5287 to i64
-  %5289 = ashr exact i64 %5288, 32
-  call fastcc void @transparent_crc(i64 %5289, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2604, i64 0, i64 0), i32 signext undef)
-  %5290 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 6), align 2, !tbaa !50
-  %5291 = sext i16 %5290 to i64
-  call fastcc void @transparent_crc(i64 %5291, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2605, i64 0, i64 0), i32 signext undef)
-  %5292 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2958, i64 0, i32 7), align 2, !tbaa !51
-  %5293 = zext i16 %5292 to i64
-  call fastcc void @transparent_crc(i64 %5293, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2606, i64 0, i64 0), i32 signext undef)
-  %5294 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 0), align 2, !tbaa !24
-  %5295 = sext i16 %5294 to i64
-  call fastcc void @transparent_crc(i64 %5295, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2607, i64 0, i64 0), i32 signext undef)
-  %5296 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 1), align 2, !tbaa !52
-  %5297 = sext i8 %5296 to i64
-  call fastcc void @transparent_crc(i64 %5297, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2608, i64 0, i64 0), i32 signext undef)
-  %5298 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 2, i32 0) to i120*), align 1
-  %5299 = lshr i120 %5298, 107
-  %5300 = trunc i120 %5299 to i64
-  call fastcc void @transparent_crc(i64 %5300, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2609, i64 0, i64 0), i32 signext undef)
-  %5301 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 2, i32 0) to i120*), align 1
-  %5302 = lshr i120 %5301, 78
+  %5260 = and i64 %5259, 33554431
+  call fastcc void @transparent_crc(i64 %5260, ptr @.str.2601, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2602, i32 signext undef)
+  %5261 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 1), align 2
+  %5262 = lshr i80 %5261, 11
+  %5263 = trunc i80 %5262 to i64
+  %5264 = and i64 %5263, 1
+  call fastcc void @transparent_crc(i64 %5264, ptr @.str.2603, i32 signext undef)
+  %5265 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 5, i32 1), align 2
+  %5266 = shl i80 %5265, 69
+  %5267 = ashr i80 %5266, 72
+  %5268 = shl nsw i80 %5267, 32
+  %5269 = trunc i80 %5268 to i64
+  %5270 = ashr exact i64 %5269, 32
+  call fastcc void @transparent_crc(i64 %5270, ptr @.str.2604, i32 signext undef)
+  %5271 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 6), align 2, !tbaa !50
+  %5272 = sext i16 %5271 to i64
+  call fastcc void @transparent_crc(i64 %5272, ptr @.str.2605, i32 signext undef)
+  %5273 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2958, i64 0, i32 7), align 2, !tbaa !51
+  %5274 = zext i16 %5273 to i64
+  call fastcc void @transparent_crc(i64 %5274, ptr @.str.2606, i32 signext undef)
+  %5275 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 0), align 2, !tbaa !24
+  %5276 = sext i16 %5275 to i64
+  call fastcc void @transparent_crc(i64 %5276, ptr @.str.2607, i32 signext undef)
+  %5277 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 1), align 2, !tbaa !52
+  %5278 = sext i8 %5277 to i64
+  call fastcc void @transparent_crc(i64 %5278, ptr @.str.2608, i32 signext undef)
+  %5279 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 2, i32 0), align 1
+  %5280 = lshr i120 %5279, 107
+  %5281 = trunc i120 %5280 to i64
+  call fastcc void @transparent_crc(i64 %5281, ptr @.str.2609, i32 signext undef)
+  %5282 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 2, i32 0), align 1
+  %5283 = lshr i120 %5282, 78
+  %5284 = trunc i120 %5283 to i64
+  %5285 = and i64 %5284, 536870911
+  call fastcc void @transparent_crc(i64 %5285, ptr @.str.2610, i32 signext undef)
+  %5286 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 2, i32 0), align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2634, i32 signext undef)
+  %5287 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 5, i32 1), align 2
+  %5288 = shl i80 %5287, 69
+  %5289 = ashr i80 %5288, 72
+  %5290 = shl nsw i80 %5289, 32
+  %5291 = trunc i80 %5290 to i64
+  %5292 = ashr exact i64 %5291, 32
+  call fastcc void @transparent_crc(i64 %5292, ptr @.str.2635, i32 signext undef)
+  %5293 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 6), align 2, !tbaa !50
+  %5294 = sext i16 %5293 to i64
+  call fastcc void @transparent_crc(i64 %5294, ptr @.str.2636, i32 signext undef)
+  %5295 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2959, i64 0, i32 7), align 2, !tbaa !51
+  %5296 = zext i16 %5295 to i64
+  call fastcc void @transparent_crc(i64 %5296, ptr @.str.2637, i32 signext undef)
+  %5297 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 0), align 2, !tbaa !24
+  %5298 = sext i16 %5297 to i64
+  call fastcc void @transparent_crc(i64 %5298, ptr @.str.2638, i32 signext undef)
+  %5299 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 1), align 2, !tbaa !52
+  %5300 = sext i8 %5299 to i64
+  call fastcc void @transparent_crc(i64 %5300, ptr @.str.2639, i32 signext undef)
+  %5301 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5302 = lshr i120 %5301, 107
   %5303 = trunc i120 %5302 to i64
-  %5304 = and i64 %5303, 536870911
-  call fastcc void @transparent_crc(i64 %5304, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2610, i64 0, i64 0), i32 signext undef)
-  %5305 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 2, i32 0) to i120*), align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2634, i64 0, i64 0), i32 signext undef)
-  %5306 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 5, i32 1) to i80*), align 2
-  %5307 = shl i80 %5306, 69
-  %5308 = ashr i80 %5307, 72
-  %5309 = shl nsw i80 %5308, 32
-  %5310 = trunc i80 %5309 to i64
-  %5311 = ashr exact i64 %5310, 32
-  call fastcc void @transparent_crc(i64 %5311, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2635, i64 0, i64 0), i32 signext undef)
-  %5312 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 6), align 2, !tbaa !50
-  %5313 = sext i16 %5312 to i64
-  call fastcc void @transparent_crc(i64 %5313, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2636, i64 0, i64 0), i32 signext undef)
-  %5314 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2959, i64 0, i32 7), align 2, !tbaa !51
-  %5315 = zext i16 %5314 to i64
-  call fastcc void @transparent_crc(i64 %5315, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2637, i64 0, i64 0), i32 signext undef)
-  %5316 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 0), align 2, !tbaa !24
-  %5317 = sext i16 %5316 to i64
-  call fastcc void @transparent_crc(i64 %5317, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2638, i64 0, i64 0), i32 signext undef)
-  %5318 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 1), align 2, !tbaa !52
-  %5319 = sext i8 %5318 to i64
-  call fastcc void @transparent_crc(i64 %5319, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2639, i64 0, i64 0), i32 signext undef)
-  %5320 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5321 = lshr i120 %5320, 107
+  call fastcc void @transparent_crc(i64 %5303, ptr @.str.2640, i32 signext undef)
+  %5304 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5305 = lshr i120 %5304, 78
+  %5306 = trunc i120 %5305 to i64
+  %5307 = and i64 %5306, 536870911
+  call fastcc void @transparent_crc(i64 %5307, ptr @.str.2641, i32 signext undef)
+  %5308 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5309 = shl i120 %5308, 42
+  %5310 = ashr i120 %5309, 104
+  %5311 = shl nsw i120 %5310, 32
+  %5312 = trunc i120 %5311 to i64
+  %5313 = ashr exact i64 %5312, 32
+  call fastcc void @transparent_crc(i64 %5313, ptr @.str.2642, i32 signext undef)
+  %5314 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5315 = shl i120 %5314, 58
+  %5316 = ashr i120 %5315, 105
+  %5317 = shl nsw i120 %5316, 32
+  %5318 = trunc i120 %5317 to i64
+  %5319 = ashr exact i64 %5318, 32
+  call fastcc void @transparent_crc(i64 %5319, ptr @.str.2643, i32 signext undef)
+  %5320 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5321 = lshr i120 %5320, 41
   %5322 = trunc i120 %5321 to i64
-  call fastcc void @transparent_crc(i64 %5322, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2640, i64 0, i64 0), i32 signext undef)
-  %5323 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5324 = lshr i120 %5323, 78
-  %5325 = trunc i120 %5324 to i64
-  %5326 = and i64 %5325, 536870911
-  call fastcc void @transparent_crc(i64 %5326, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2641, i64 0, i64 0), i32 signext undef)
-  %5327 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5328 = shl i120 %5327, 42
-  %5329 = ashr i120 %5328, 104
-  %5330 = shl nsw i120 %5329, 32
+  %5323 = and i64 %5322, 63
+  call fastcc void @transparent_crc(i64 %5323, ptr @.str.2644, i32 signext undef)
+  %5324 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5325 = lshr i120 %5324, 19
+  %5326 = trunc i120 %5325 to i64
+  %5327 = and i64 %5326, 4194303
+  call fastcc void @transparent_crc(i64 %5327, ptr @.str.2645, i32 signext undef)
+  %5328 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 2, i32 0), align 1
+  %5329 = shl i120 %5328, 101
+  %5330 = ashr exact i120 %5329, 69
   %5331 = trunc i120 %5330 to i64
   %5332 = ashr exact i64 %5331, 32
-  call fastcc void @transparent_crc(i64 %5332, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2642, i64 0, i64 0), i32 signext undef)
-  %5333 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5334 = shl i120 %5333, 58
-  %5335 = ashr i120 %5334, 105
-  %5336 = shl nsw i120 %5335, 32
-  %5337 = trunc i120 %5336 to i64
-  %5338 = ashr exact i64 %5337, 32
-  call fastcc void @transparent_crc(i64 %5338, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2643, i64 0, i64 0), i32 signext undef)
-  %5339 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5340 = lshr i120 %5339, 41
-  %5341 = trunc i120 %5340 to i64
-  %5342 = and i64 %5341, 63
-  call fastcc void @transparent_crc(i64 %5342, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2644, i64 0, i64 0), i32 signext undef)
-  %5343 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5344 = lshr i120 %5343, 19
-  %5345 = trunc i120 %5344 to i64
-  %5346 = and i64 %5345, 4194303
-  call fastcc void @transparent_crc(i64 %5346, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2645, i64 0, i64 0), i32 signext undef)
-  %5347 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 2, i32 0) to i120*), align 1
-  %5348 = shl i120 %5347, 101
-  %5349 = ashr exact i120 %5348, 69
-  %5350 = trunc i120 %5349 to i64
-  %5351 = ashr exact i64 %5350, 32
-  call fastcc void @transparent_crc(i64 %5351, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2646, i64 0, i64 0), i32 signext undef)
-  %5352 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5353 = zext i8 %5352 to i64
-  call fastcc void @transparent_crc(i64 %5353, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2647, i64 0, i64 0), i32 signext undef)
-  %5354 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5355 = sext i8 %5354 to i64
-  call fastcc void @transparent_crc(i64 %5355, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2648, i64 0, i64 0), i32 signext undef)
-  %5356 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5357 = sext i16 %5356 to i64
-  call fastcc void @transparent_crc(i64 %5357, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2649, i64 0, i64 0), i32 signext undef)
-  %5358 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5358, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2650, i64 0, i64 0), i32 signext undef)
-  %5359 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5360 = sext i32 %5359 to i64
-  call fastcc void @transparent_crc(i64 %5360, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2651, i64 0, i64 0), i32 signext undef)
-  %5361 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 4, i32 0) to i128*), align 2
-  %5362 = ashr i128 %5361, 99
-  %5363 = shl nsw i128 %5362, 32
-  %5364 = trunc i128 %5363 to i64
-  %5365 = ashr exact i64 %5364, 32
-  call fastcc void @transparent_crc(i64 %5365, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2652, i64 0, i64 0), i32 signext undef)
-  %5366 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 4, i32 0) to i128*), align 2
-  %5367 = shl i128 %5366, 29
-  %5368 = ashr i128 %5367, 97
-  %5369 = shl nsw i128 %5368, 32
-  %5370 = trunc i128 %5369 to i64
-  %5371 = ashr exact i64 %5370, 32
-  call fastcc void @transparent_crc(i64 %5371, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2653, i64 0, i64 0), i32 signext undef)
-  %5372 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 4, i32 0) to i128*), align 2
-  %5373 = shl i128 %5372, 60
-  %5374 = ashr i128 %5373, 108
-  %5375 = shl nsw i128 %5374, 32
-  %5376 = trunc i128 %5375 to i64
-  %5377 = ashr exact i64 %5376, 32
-  call fastcc void @transparent_crc(i64 %5377, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2654, i64 0, i64 0), i32 signext undef)
-  %5378 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 4, i32 0) to i128*), align 2
-  %5379 = shl i128 %5378, 80
-  %5380 = ashr i128 %5379, 110
-  %5381 = shl nsw i128 %5380, 32
-  %5382 = trunc i128 %5381 to i64
+  call fastcc void @transparent_crc(i64 %5332, ptr @.str.2646, i32 signext undef)
+  %5333 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5334 = zext i8 %5333 to i64
+  call fastcc void @transparent_crc(i64 %5334, ptr @.str.2647, i32 signext undef)
+  %5335 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5336 = sext i8 %5335 to i64
+  call fastcc void @transparent_crc(i64 %5336, ptr @.str.2648, i32 signext undef)
+  %5337 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5338 = sext i16 %5337 to i64
+  call fastcc void @transparent_crc(i64 %5338, ptr @.str.2649, i32 signext undef)
+  %5339 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5339, ptr @.str.2650, i32 signext undef)
+  %5340 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5341 = sext i32 %5340 to i64
+  call fastcc void @transparent_crc(i64 %5341, ptr @.str.2651, i32 signext undef)
+  %5342 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 4, i32 0), align 2
+  %5343 = ashr i128 %5342, 99
+  %5344 = shl nsw i128 %5343, 32
+  %5345 = trunc i128 %5344 to i64
+  %5346 = ashr exact i64 %5345, 32
+  call fastcc void @transparent_crc(i64 %5346, ptr @.str.2652, i32 signext undef)
+  %5347 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 4, i32 0), align 2
+  %5348 = shl i128 %5347, 29
+  %5349 = ashr i128 %5348, 97
+  %5350 = shl nsw i128 %5349, 32
+  %5351 = trunc i128 %5350 to i64
+  %5352 = ashr exact i64 %5351, 32
+  call fastcc void @transparent_crc(i64 %5352, ptr @.str.2653, i32 signext undef)
+  %5353 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 4, i32 0), align 2
+  %5354 = shl i128 %5353, 60
+  %5355 = ashr i128 %5354, 108
+  %5356 = shl nsw i128 %5355, 32
+  %5357 = trunc i128 %5356 to i64
+  %5358 = ashr exact i64 %5357, 32
+  call fastcc void @transparent_crc(i64 %5358, ptr @.str.2654, i32 signext undef)
+  %5359 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 4, i32 0), align 2
+  %5360 = shl i128 %5359, 80
+  %5361 = ashr i128 %5360, 110
+  %5362 = shl nsw i128 %5361, 32
+  %5363 = trunc i128 %5362 to i64
+  %5364 = ashr exact i64 %5363, 32
+  call fastcc void @transparent_crc(i64 %5364, ptr @.str.2655, i32 signext undef)
+  %5365 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 4, i32 0), align 2
+  %5366 = lshr i128 %5365, 28
+  %5367 = trunc i128 %5366 to i64
+  %5368 = and i64 %5367, 3
+  call fastcc void @transparent_crc(i64 %5368, ptr @.str.2656, i32 signext undef)
+  %5369 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 4, i32 0), align 2
+  %5370 = shl i128 %5369, 100
+  %5371 = ashr i128 %5370, 107
+  %5372 = shl nsw i128 %5371, 32
+  %5373 = trunc i128 %5372 to i64
+  %5374 = ashr exact i64 %5373, 32
+  call fastcc void @transparent_crc(i64 %5374, ptr @.str.2657, i32 signext undef)
+  %5375 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 5, i32 0, i32 0), align 2
+  %5376 = lshr i80 %5375, 57
+  %5377 = trunc i80 %5376 to i64
+  call fastcc void @transparent_crc(i64 %5377, ptr @.str.2658, i32 signext undef)
+  %5378 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 5, i32 0, i32 0), align 2
+  %5379 = shl i80 %5378, 23
+  %5380 = ashr i80 %5379, 64
+  %5381 = shl nsw i80 %5380, 32
+  %5382 = trunc i80 %5381 to i64
   %5383 = ashr exact i64 %5382, 32
-  call fastcc void @transparent_crc(i64 %5383, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2655, i64 0, i64 0), i32 signext undef)
-  %5384 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 4, i32 0) to i128*), align 2
-  %5385 = lshr i128 %5384, 28
-  %5386 = trunc i128 %5385 to i64
-  %5387 = and i64 %5386, 3
-  call fastcc void @transparent_crc(i64 %5387, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2656, i64 0, i64 0), i32 signext undef)
-  %5388 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 4, i32 0) to i128*), align 2
-  %5389 = shl i128 %5388, 100
-  %5390 = ashr i128 %5389, 107
-  %5391 = shl nsw i128 %5390, 32
-  %5392 = trunc i128 %5391 to i64
-  %5393 = ashr exact i64 %5392, 32
-  call fastcc void @transparent_crc(i64 %5393, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2657, i64 0, i64 0), i32 signext undef)
-  %5394 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5395 = lshr i80 %5394, 57
-  %5396 = trunc i80 %5395 to i64
-  call fastcc void @transparent_crc(i64 %5396, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2658, i64 0, i64 0), i32 signext undef)
-  %5397 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5398 = shl i80 %5397, 23
-  %5399 = ashr i80 %5398, 64
-  %5400 = shl nsw i80 %5399, 32
-  %5401 = trunc i80 %5400 to i64
-  %5402 = ashr exact i64 %5401, 32
-  call fastcc void @transparent_crc(i64 %5402, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2659, i64 0, i64 0), i32 signext undef)
-  %5403 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5404 = shl i80 %5403, 39
-  %5405 = ashr i80 %5404, 62
-  %5406 = shl nsw i80 %5405, 32
-  %5407 = trunc i80 %5406 to i64
-  %5408 = ashr exact i64 %5407, 32
-  call fastcc void @transparent_crc(i64 %5408, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2660, i64 0, i64 0), i32 signext undef)
-  %5409 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2960, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5410 = shl i80 %5409, 57
-  %5411 = ashr i80 %5410, 58
-  %5412 = shl nsw i80 %5411, 32
-  %5413 = trunc i80 %5412 to i64
-  %5414 = ashr exact i64 %5413, 32
-  call fastcc void @transparent_crc(i64 %5414, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2661, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2679, i64 0, i64 0), i32 signext undef)
-  %5415 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5416 = sext i16 %5415 to i64
-  call fastcc void @transparent_crc(i64 %5416, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2680, i64 0, i64 0), i32 signext undef)
-  %5417 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5417, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2681, i64 0, i64 0), i32 signext undef)
-  %5418 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5419 = sext i32 %5418 to i64
-  call fastcc void @transparent_crc(i64 %5419, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2682, i64 0, i64 0), i32 signext undef)
-  %5420 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 4, i32 0) to i128*), align 2
-  %5421 = ashr i128 %5420, 99
-  %5422 = shl nsw i128 %5421, 32
-  %5423 = trunc i128 %5422 to i64
-  %5424 = ashr exact i64 %5423, 32
-  call fastcc void @transparent_crc(i64 %5424, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2683, i64 0, i64 0), i32 signext undef)
-  %5425 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 4, i32 0) to i128*), align 2
-  %5426 = shl i128 %5425, 29
-  %5427 = ashr i128 %5426, 97
-  %5428 = shl nsw i128 %5427, 32
-  %5429 = trunc i128 %5428 to i64
-  %5430 = ashr exact i64 %5429, 32
-  call fastcc void @transparent_crc(i64 %5430, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2684, i64 0, i64 0), i32 signext undef)
-  %5431 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 4, i32 0) to i128*), align 2
-  %5432 = shl i128 %5431, 60
-  %5433 = ashr i128 %5432, 108
-  %5434 = shl nsw i128 %5433, 32
-  %5435 = trunc i128 %5434 to i64
-  %5436 = ashr exact i64 %5435, 32
-  call fastcc void @transparent_crc(i64 %5436, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2685, i64 0, i64 0), i32 signext undef)
-  %5437 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 4, i32 0) to i128*), align 2
-  %5438 = shl i128 %5437, 80
-  %5439 = ashr i128 %5438, 110
-  %5440 = shl nsw i128 %5439, 32
-  %5441 = trunc i128 %5440 to i64
+  call fastcc void @transparent_crc(i64 %5383, ptr @.str.2659, i32 signext undef)
+  %5384 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 5, i32 0, i32 0), align 2
+  %5385 = shl i80 %5384, 39
+  %5386 = ashr i80 %5385, 62
+  %5387 = shl nsw i80 %5386, 32
+  %5388 = trunc i80 %5387 to i64
+  %5389 = ashr exact i64 %5388, 32
+  call fastcc void @transparent_crc(i64 %5389, ptr @.str.2660, i32 signext undef)
+  %5390 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2960, i64 0, i32 5, i32 0, i32 0), align 2
+  %5391 = shl i80 %5390, 57
+  %5392 = ashr i80 %5391, 58
+  %5393 = shl nsw i80 %5392, 32
+  %5394 = trunc i80 %5393 to i64
+  %5395 = ashr exact i64 %5394, 32
+  call fastcc void @transparent_crc(i64 %5395, ptr @.str.2661, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2679, i32 signext undef)
+  %5396 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5397 = sext i16 %5396 to i64
+  call fastcc void @transparent_crc(i64 %5397, ptr @.str.2680, i32 signext undef)
+  %5398 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5398, ptr @.str.2681, i32 signext undef)
+  %5399 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5400 = sext i32 %5399 to i64
+  call fastcc void @transparent_crc(i64 %5400, ptr @.str.2682, i32 signext undef)
+  %5401 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 4, i32 0), align 2
+  %5402 = ashr i128 %5401, 99
+  %5403 = shl nsw i128 %5402, 32
+  %5404 = trunc i128 %5403 to i64
+  %5405 = ashr exact i64 %5404, 32
+  call fastcc void @transparent_crc(i64 %5405, ptr @.str.2683, i32 signext undef)
+  %5406 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 4, i32 0), align 2
+  %5407 = shl i128 %5406, 29
+  %5408 = ashr i128 %5407, 97
+  %5409 = shl nsw i128 %5408, 32
+  %5410 = trunc i128 %5409 to i64
+  %5411 = ashr exact i64 %5410, 32
+  call fastcc void @transparent_crc(i64 %5411, ptr @.str.2684, i32 signext undef)
+  %5412 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 4, i32 0), align 2
+  %5413 = shl i128 %5412, 60
+  %5414 = ashr i128 %5413, 108
+  %5415 = shl nsw i128 %5414, 32
+  %5416 = trunc i128 %5415 to i64
+  %5417 = ashr exact i64 %5416, 32
+  call fastcc void @transparent_crc(i64 %5417, ptr @.str.2685, i32 signext undef)
+  %5418 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 4, i32 0), align 2
+  %5419 = shl i128 %5418, 80
+  %5420 = ashr i128 %5419, 110
+  %5421 = shl nsw i128 %5420, 32
+  %5422 = trunc i128 %5421 to i64
+  %5423 = ashr exact i64 %5422, 32
+  call fastcc void @transparent_crc(i64 %5423, ptr @.str.2686, i32 signext undef)
+  %5424 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 4, i32 0), align 2
+  %5425 = lshr i128 %5424, 28
+  %5426 = trunc i128 %5425 to i64
+  %5427 = and i64 %5426, 3
+  call fastcc void @transparent_crc(i64 %5427, ptr @.str.2687, i32 signext undef)
+  %5428 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 4, i32 0), align 2
+  %5429 = shl i128 %5428, 100
+  %5430 = ashr i128 %5429, 107
+  %5431 = shl nsw i128 %5430, 32
+  %5432 = trunc i128 %5431 to i64
+  %5433 = ashr exact i64 %5432, 32
+  call fastcc void @transparent_crc(i64 %5433, ptr @.str.2688, i32 signext undef)
+  %5434 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 0, i32 0), align 2
+  %5435 = lshr i80 %5434, 57
+  %5436 = trunc i80 %5435 to i64
+  call fastcc void @transparent_crc(i64 %5436, ptr @.str.2689, i32 signext undef)
+  %5437 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 0, i32 0), align 2
+  %5438 = shl i80 %5437, 23
+  %5439 = ashr i80 %5438, 64
+  %5440 = shl nsw i80 %5439, 32
+  %5441 = trunc i80 %5440 to i64
   %5442 = ashr exact i64 %5441, 32
-  call fastcc void @transparent_crc(i64 %5442, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2686, i64 0, i64 0), i32 signext undef)
-  %5443 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 4, i32 0) to i128*), align 2
-  %5444 = lshr i128 %5443, 28
-  %5445 = trunc i128 %5444 to i64
-  %5446 = and i64 %5445, 3
-  call fastcc void @transparent_crc(i64 %5446, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2687, i64 0, i64 0), i32 signext undef)
-  %5447 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 4, i32 0) to i128*), align 2
-  %5448 = shl i128 %5447, 100
-  %5449 = ashr i128 %5448, 107
-  %5450 = shl nsw i128 %5449, 32
-  %5451 = trunc i128 %5450 to i64
-  %5452 = ashr exact i64 %5451, 32
-  call fastcc void @transparent_crc(i64 %5452, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2688, i64 0, i64 0), i32 signext undef)
-  %5453 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5454 = lshr i80 %5453, 57
-  %5455 = trunc i80 %5454 to i64
-  call fastcc void @transparent_crc(i64 %5455, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2689, i64 0, i64 0), i32 signext undef)
-  %5456 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5457 = shl i80 %5456, 23
-  %5458 = ashr i80 %5457, 64
-  %5459 = shl nsw i80 %5458, 32
+  call fastcc void @transparent_crc(i64 %5442, ptr @.str.2690, i32 signext undef)
+  %5443 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 0, i32 0), align 2
+  %5444 = shl i80 %5443, 39
+  %5445 = ashr i80 %5444, 62
+  %5446 = shl nsw i80 %5445, 32
+  %5447 = trunc i80 %5446 to i64
+  %5448 = ashr exact i64 %5447, 32
+  call fastcc void @transparent_crc(i64 %5448, ptr @.str.2691, i32 signext undef)
+  %5449 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 0, i32 0), align 2
+  %5450 = shl i80 %5449, 57
+  %5451 = ashr i80 %5450, 58
+  %5452 = shl nsw i80 %5451, 32
+  %5453 = trunc i80 %5452 to i64
+  %5454 = ashr exact i64 %5453, 32
+  call fastcc void @transparent_crc(i64 %5454, ptr @.str.2692, i32 signext undef)
+  %5455 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 1), align 2
+  %5456 = lshr i80 %5455, 49
+  %5457 = trunc i80 %5456 to i64
+  call fastcc void @transparent_crc(i64 %5457, ptr @.str.2693, i32 signext undef)
+  %5458 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 1), align 2
+  %5459 = lshr i80 %5458, 24
   %5460 = trunc i80 %5459 to i64
-  %5461 = ashr exact i64 %5460, 32
-  call fastcc void @transparent_crc(i64 %5461, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2690, i64 0, i64 0), i32 signext undef)
-  %5462 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5463 = shl i80 %5462, 39
-  %5464 = ashr i80 %5463, 62
+  %5461 = and i64 %5460, 33554431
+  call fastcc void @transparent_crc(i64 %5461, ptr @.str.2694, i32 signext undef)
+  %5462 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 1), align 2
+  %5463 = shl i80 %5462, 56
+  %5464 = ashr i80 %5463, 68
   %5465 = shl nsw i80 %5464, 32
   %5466 = trunc i80 %5465 to i64
   %5467 = ashr exact i64 %5466, 32
-  call fastcc void @transparent_crc(i64 %5467, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2691, i64 0, i64 0), i32 signext undef)
-  %5468 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5469 = shl i80 %5468, 57
-  %5470 = ashr i80 %5469, 58
-  %5471 = shl nsw i80 %5470, 32
-  %5472 = trunc i80 %5471 to i64
-  %5473 = ashr exact i64 %5472, 32
-  call fastcc void @transparent_crc(i64 %5473, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2692, i64 0, i64 0), i32 signext undef)
-  %5474 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 1) to i80*), align 2
-  %5475 = lshr i80 %5474, 49
+  call fastcc void @transparent_crc(i64 %5467, ptr @.str.2695, i32 signext undef)
+  %5468 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 1), align 2
+  %5469 = lshr i80 %5468, 11
+  %5470 = trunc i80 %5469 to i64
+  %5471 = and i64 %5470, 1
+  call fastcc void @transparent_crc(i64 %5471, ptr @.str.2696, i32 signext undef)
+  %5472 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 5, i32 1), align 2
+  %5473 = shl i80 %5472, 69
+  %5474 = ashr i80 %5473, 72
+  %5475 = shl nsw i80 %5474, 32
   %5476 = trunc i80 %5475 to i64
-  call fastcc void @transparent_crc(i64 %5476, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2693, i64 0, i64 0), i32 signext undef)
-  %5477 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 1) to i80*), align 2
-  %5478 = lshr i80 %5477, 24
-  %5479 = trunc i80 %5478 to i64
-  %5480 = and i64 %5479, 33554431
-  call fastcc void @transparent_crc(i64 %5480, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2694, i64 0, i64 0), i32 signext undef)
-  %5481 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 1) to i80*), align 2
-  %5482 = shl i80 %5481, 56
-  %5483 = ashr i80 %5482, 68
-  %5484 = shl nsw i80 %5483, 32
-  %5485 = trunc i80 %5484 to i64
-  %5486 = ashr exact i64 %5485, 32
-  call fastcc void @transparent_crc(i64 %5486, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2695, i64 0, i64 0), i32 signext undef)
-  %5487 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 1) to i80*), align 2
-  %5488 = lshr i80 %5487, 11
-  %5489 = trunc i80 %5488 to i64
-  %5490 = and i64 %5489, 1
-  call fastcc void @transparent_crc(i64 %5490, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2696, i64 0, i64 0), i32 signext undef)
-  %5491 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 5, i32 1) to i80*), align 2
-  %5492 = shl i80 %5491, 69
-  %5493 = ashr i80 %5492, 72
-  %5494 = shl nsw i80 %5493, 32
-  %5495 = trunc i80 %5494 to i64
-  %5496 = ashr exact i64 %5495, 32
-  call fastcc void @transparent_crc(i64 %5496, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2697, i64 0, i64 0), i32 signext undef)
-  %5497 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 6), align 2, !tbaa !50
-  %5498 = sext i16 %5497 to i64
-  call fastcc void @transparent_crc(i64 %5498, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2698, i64 0, i64 0), i32 signext undef)
-  %5499 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2961, i64 0, i32 7), align 2, !tbaa !51
-  %5500 = zext i16 %5499 to i64
-  call fastcc void @transparent_crc(i64 %5500, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2699, i64 0, i64 0), i32 signext undef)
-  %5501 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 0), align 2, !tbaa !24
-  %5502 = sext i16 %5501 to i64
-  call fastcc void @transparent_crc(i64 %5502, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2700, i64 0, i64 0), i32 signext undef)
-  %5503 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 1), align 2, !tbaa !52
-  %5504 = sext i8 %5503 to i64
-  call fastcc void @transparent_crc(i64 %5504, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2701, i64 0, i64 0), i32 signext undef)
-  %5505 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5506 = lshr i120 %5505, 107
+  %5477 = ashr exact i64 %5476, 32
+  call fastcc void @transparent_crc(i64 %5477, ptr @.str.2697, i32 signext undef)
+  %5478 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 6), align 2, !tbaa !50
+  %5479 = sext i16 %5478 to i64
+  call fastcc void @transparent_crc(i64 %5479, ptr @.str.2698, i32 signext undef)
+  %5480 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2961, i64 0, i32 7), align 2, !tbaa !51
+  %5481 = zext i16 %5480 to i64
+  call fastcc void @transparent_crc(i64 %5481, ptr @.str.2699, i32 signext undef)
+  %5482 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 0), align 2, !tbaa !24
+  %5483 = sext i16 %5482 to i64
+  call fastcc void @transparent_crc(i64 %5483, ptr @.str.2700, i32 signext undef)
+  %5484 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 1), align 2, !tbaa !52
+  %5485 = sext i8 %5484 to i64
+  call fastcc void @transparent_crc(i64 %5485, ptr @.str.2701, i32 signext undef)
+  %5486 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5487 = lshr i120 %5486, 107
+  %5488 = trunc i120 %5487 to i64
+  call fastcc void @transparent_crc(i64 %5488, ptr @.str.2702, i32 signext undef)
+  %5489 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5490 = lshr i120 %5489, 78
+  %5491 = trunc i120 %5490 to i64
+  %5492 = and i64 %5491, 536870911
+  call fastcc void @transparent_crc(i64 %5492, ptr @.str.2703, i32 signext undef)
+  %5493 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5494 = shl i120 %5493, 42
+  %5495 = ashr i120 %5494, 104
+  %5496 = shl nsw i120 %5495, 32
+  %5497 = trunc i120 %5496 to i64
+  %5498 = ashr exact i64 %5497, 32
+  call fastcc void @transparent_crc(i64 %5498, ptr @.str.2704, i32 signext undef)
+  %5499 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5500 = shl i120 %5499, 58
+  %5501 = ashr i120 %5500, 105
+  %5502 = shl nsw i120 %5501, 32
+  %5503 = trunc i120 %5502 to i64
+  %5504 = ashr exact i64 %5503, 32
+  call fastcc void @transparent_crc(i64 %5504, ptr @.str.2705, i32 signext undef)
+  %5505 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5506 = lshr i120 %5505, 41
   %5507 = trunc i120 %5506 to i64
-  call fastcc void @transparent_crc(i64 %5507, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2702, i64 0, i64 0), i32 signext undef)
-  %5508 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5509 = lshr i120 %5508, 78
-  %5510 = trunc i120 %5509 to i64
-  %5511 = and i64 %5510, 536870911
-  call fastcc void @transparent_crc(i64 %5511, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2703, i64 0, i64 0), i32 signext undef)
-  %5512 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5513 = shl i120 %5512, 42
-  %5514 = ashr i120 %5513, 104
-  %5515 = shl nsw i120 %5514, 32
+  %5508 = and i64 %5507, 63
+  call fastcc void @transparent_crc(i64 %5508, ptr @.str.2706, i32 signext undef)
+  %5509 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5510 = lshr i120 %5509, 19
+  %5511 = trunc i120 %5510 to i64
+  %5512 = and i64 %5511, 4194303
+  call fastcc void @transparent_crc(i64 %5512, ptr @.str.2707, i32 signext undef)
+  %5513 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 2, i32 0), align 1
+  %5514 = shl i120 %5513, 101
+  %5515 = ashr exact i120 %5514, 69
   %5516 = trunc i120 %5515 to i64
   %5517 = ashr exact i64 %5516, 32
-  call fastcc void @transparent_crc(i64 %5517, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2704, i64 0, i64 0), i32 signext undef)
-  %5518 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5519 = shl i120 %5518, 58
-  %5520 = ashr i120 %5519, 105
-  %5521 = shl nsw i120 %5520, 32
-  %5522 = trunc i120 %5521 to i64
-  %5523 = ashr exact i64 %5522, 32
-  call fastcc void @transparent_crc(i64 %5523, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2705, i64 0, i64 0), i32 signext undef)
-  %5524 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5525 = lshr i120 %5524, 41
-  %5526 = trunc i120 %5525 to i64
-  %5527 = and i64 %5526, 63
-  call fastcc void @transparent_crc(i64 %5527, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2706, i64 0, i64 0), i32 signext undef)
-  %5528 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5529 = lshr i120 %5528, 19
-  %5530 = trunc i120 %5529 to i64
-  %5531 = and i64 %5530, 4194303
-  call fastcc void @transparent_crc(i64 %5531, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2707, i64 0, i64 0), i32 signext undef)
-  %5532 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 2, i32 0) to i120*), align 1
-  %5533 = shl i120 %5532, 101
-  %5534 = ashr exact i120 %5533, 69
-  %5535 = trunc i120 %5534 to i64
-  %5536 = ashr exact i64 %5535, 32
-  call fastcc void @transparent_crc(i64 %5536, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2708, i64 0, i64 0), i32 signext undef)
-  %5537 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5538 = zext i8 %5537 to i64
-  call fastcc void @transparent_crc(i64 %5538, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2709, i64 0, i64 0), i32 signext undef)
-  %5539 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5540 = sext i8 %5539 to i64
-  call fastcc void @transparent_crc(i64 %5540, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2710, i64 0, i64 0), i32 signext undef)
-  %5541 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5542 = sext i16 %5541 to i64
-  call fastcc void @transparent_crc(i64 %5542, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2711, i64 0, i64 0), i32 signext undef)
-  %5543 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5543, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2712, i64 0, i64 0), i32 signext undef)
-  %5544 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5545 = sext i32 %5544 to i64
-  call fastcc void @transparent_crc(i64 %5545, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2713, i64 0, i64 0), i32 signext undef)
-  %5546 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 4, i32 0) to i128*), align 2
-  %5547 = ashr i128 %5546, 99
-  %5548 = shl nsw i128 %5547, 32
-  %5549 = trunc i128 %5548 to i64
-  %5550 = ashr exact i64 %5549, 32
-  call fastcc void @transparent_crc(i64 %5550, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2714, i64 0, i64 0), i32 signext undef)
-  %5551 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 4, i32 0) to i128*), align 2
-  %5552 = shl i128 %5551, 29
-  %5553 = ashr i128 %5552, 97
-  %5554 = shl nsw i128 %5553, 32
-  %5555 = trunc i128 %5554 to i64
-  %5556 = ashr exact i64 %5555, 32
-  call fastcc void @transparent_crc(i64 %5556, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2715, i64 0, i64 0), i32 signext undef)
-  %5557 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 4, i32 0) to i128*), align 2
-  %5558 = shl i128 %5557, 60
-  %5559 = ashr i128 %5558, 108
-  %5560 = shl nsw i128 %5559, 32
-  %5561 = trunc i128 %5560 to i64
-  %5562 = ashr exact i64 %5561, 32
-  call fastcc void @transparent_crc(i64 %5562, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2716, i64 0, i64 0), i32 signext undef)
-  %5563 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 4, i32 0) to i128*), align 2
-  %5564 = shl i128 %5563, 80
-  %5565 = ashr i128 %5564, 110
-  %5566 = shl nsw i128 %5565, 32
-  %5567 = trunc i128 %5566 to i64
+  call fastcc void @transparent_crc(i64 %5517, ptr @.str.2708, i32 signext undef)
+  %5518 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5519 = zext i8 %5518 to i64
+  call fastcc void @transparent_crc(i64 %5519, ptr @.str.2709, i32 signext undef)
+  %5520 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5521 = sext i8 %5520 to i64
+  call fastcc void @transparent_crc(i64 %5521, ptr @.str.2710, i32 signext undef)
+  %5522 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5523 = sext i16 %5522 to i64
+  call fastcc void @transparent_crc(i64 %5523, ptr @.str.2711, i32 signext undef)
+  %5524 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5524, ptr @.str.2712, i32 signext undef)
+  %5525 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5526 = sext i32 %5525 to i64
+  call fastcc void @transparent_crc(i64 %5526, ptr @.str.2713, i32 signext undef)
+  %5527 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 4, i32 0), align 2
+  %5528 = ashr i128 %5527, 99
+  %5529 = shl nsw i128 %5528, 32
+  %5530 = trunc i128 %5529 to i64
+  %5531 = ashr exact i64 %5530, 32
+  call fastcc void @transparent_crc(i64 %5531, ptr @.str.2714, i32 signext undef)
+  %5532 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 4, i32 0), align 2
+  %5533 = shl i128 %5532, 29
+  %5534 = ashr i128 %5533, 97
+  %5535 = shl nsw i128 %5534, 32
+  %5536 = trunc i128 %5535 to i64
+  %5537 = ashr exact i64 %5536, 32
+  call fastcc void @transparent_crc(i64 %5537, ptr @.str.2715, i32 signext undef)
+  %5538 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 4, i32 0), align 2
+  %5539 = shl i128 %5538, 60
+  %5540 = ashr i128 %5539, 108
+  %5541 = shl nsw i128 %5540, 32
+  %5542 = trunc i128 %5541 to i64
+  %5543 = ashr exact i64 %5542, 32
+  call fastcc void @transparent_crc(i64 %5543, ptr @.str.2716, i32 signext undef)
+  %5544 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 4, i32 0), align 2
+  %5545 = shl i128 %5544, 80
+  %5546 = ashr i128 %5545, 110
+  %5547 = shl nsw i128 %5546, 32
+  %5548 = trunc i128 %5547 to i64
+  %5549 = ashr exact i64 %5548, 32
+  call fastcc void @transparent_crc(i64 %5549, ptr @.str.2717, i32 signext undef)
+  %5550 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 4, i32 0), align 2
+  %5551 = lshr i128 %5550, 28
+  %5552 = trunc i128 %5551 to i64
+  %5553 = and i64 %5552, 3
+  call fastcc void @transparent_crc(i64 %5553, ptr @.str.2718, i32 signext undef)
+  %5554 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 4, i32 0), align 2
+  %5555 = shl i128 %5554, 100
+  %5556 = ashr i128 %5555, 107
+  %5557 = shl nsw i128 %5556, 32
+  %5558 = trunc i128 %5557 to i64
+  %5559 = ashr exact i64 %5558, 32
+  call fastcc void @transparent_crc(i64 %5559, ptr @.str.2719, i32 signext undef)
+  %5560 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 0, i32 0), align 2
+  %5561 = lshr i80 %5560, 57
+  %5562 = trunc i80 %5561 to i64
+  call fastcc void @transparent_crc(i64 %5562, ptr @.str.2720, i32 signext undef)
+  %5563 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 0, i32 0), align 2
+  %5564 = shl i80 %5563, 23
+  %5565 = ashr i80 %5564, 64
+  %5566 = shl nsw i80 %5565, 32
+  %5567 = trunc i80 %5566 to i64
   %5568 = ashr exact i64 %5567, 32
-  call fastcc void @transparent_crc(i64 %5568, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2717, i64 0, i64 0), i32 signext undef)
-  %5569 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 4, i32 0) to i128*), align 2
-  %5570 = lshr i128 %5569, 28
-  %5571 = trunc i128 %5570 to i64
-  %5572 = and i64 %5571, 3
-  call fastcc void @transparent_crc(i64 %5572, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2718, i64 0, i64 0), i32 signext undef)
-  %5573 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 4, i32 0) to i128*), align 2
-  %5574 = shl i128 %5573, 100
-  %5575 = ashr i128 %5574, 107
-  %5576 = shl nsw i128 %5575, 32
-  %5577 = trunc i128 %5576 to i64
-  %5578 = ashr exact i64 %5577, 32
-  call fastcc void @transparent_crc(i64 %5578, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2719, i64 0, i64 0), i32 signext undef)
-  %5579 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5580 = lshr i80 %5579, 57
-  %5581 = trunc i80 %5580 to i64
-  call fastcc void @transparent_crc(i64 %5581, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2720, i64 0, i64 0), i32 signext undef)
-  %5582 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5583 = shl i80 %5582, 23
-  %5584 = ashr i80 %5583, 64
-  %5585 = shl nsw i80 %5584, 32
+  call fastcc void @transparent_crc(i64 %5568, ptr @.str.2721, i32 signext undef)
+  %5569 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 0, i32 0), align 2
+  %5570 = shl i80 %5569, 39
+  %5571 = ashr i80 %5570, 62
+  %5572 = shl nsw i80 %5571, 32
+  %5573 = trunc i80 %5572 to i64
+  %5574 = ashr exact i64 %5573, 32
+  call fastcc void @transparent_crc(i64 %5574, ptr @.str.2722, i32 signext undef)
+  %5575 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 0, i32 0), align 2
+  %5576 = shl i80 %5575, 57
+  %5577 = ashr i80 %5576, 58
+  %5578 = shl nsw i80 %5577, 32
+  %5579 = trunc i80 %5578 to i64
+  %5580 = ashr exact i64 %5579, 32
+  call fastcc void @transparent_crc(i64 %5580, ptr @.str.2723, i32 signext undef)
+  %5581 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 1), align 2
+  %5582 = lshr i80 %5581, 49
+  %5583 = trunc i80 %5582 to i64
+  call fastcc void @transparent_crc(i64 %5583, ptr @.str.2724, i32 signext undef)
+  %5584 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 1), align 2
+  %5585 = lshr i80 %5584, 24
   %5586 = trunc i80 %5585 to i64
-  %5587 = ashr exact i64 %5586, 32
-  call fastcc void @transparent_crc(i64 %5587, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2721, i64 0, i64 0), i32 signext undef)
-  %5588 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5589 = shl i80 %5588, 39
-  %5590 = ashr i80 %5589, 62
+  %5587 = and i64 %5586, 33554431
+  call fastcc void @transparent_crc(i64 %5587, ptr @.str.2725, i32 signext undef)
+  %5588 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 1), align 2
+  %5589 = shl i80 %5588, 56
+  %5590 = ashr i80 %5589, 68
   %5591 = shl nsw i80 %5590, 32
   %5592 = trunc i80 %5591 to i64
   %5593 = ashr exact i64 %5592, 32
-  call fastcc void @transparent_crc(i64 %5593, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2722, i64 0, i64 0), i32 signext undef)
-  %5594 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5595 = shl i80 %5594, 57
-  %5596 = ashr i80 %5595, 58
-  %5597 = shl nsw i80 %5596, 32
-  %5598 = trunc i80 %5597 to i64
-  %5599 = ashr exact i64 %5598, 32
-  call fastcc void @transparent_crc(i64 %5599, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2723, i64 0, i64 0), i32 signext undef)
-  %5600 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 1) to i80*), align 2
-  %5601 = lshr i80 %5600, 49
+  call fastcc void @transparent_crc(i64 %5593, ptr @.str.2726, i32 signext undef)
+  %5594 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 1), align 2
+  %5595 = lshr i80 %5594, 11
+  %5596 = trunc i80 %5595 to i64
+  %5597 = and i64 %5596, 1
+  call fastcc void @transparent_crc(i64 %5597, ptr @.str.2727, i32 signext undef)
+  %5598 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2962, i64 0, i32 5, i32 1), align 2
+  %5599 = shl i80 %5598, 69
+  %5600 = ashr i80 %5599, 72
+  %5601 = shl nsw i80 %5600, 32
   %5602 = trunc i80 %5601 to i64
-  call fastcc void @transparent_crc(i64 %5602, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2724, i64 0, i64 0), i32 signext undef)
-  %5603 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 1) to i80*), align 2
-  %5604 = lshr i80 %5603, 24
-  %5605 = trunc i80 %5604 to i64
-  %5606 = and i64 %5605, 33554431
-  call fastcc void @transparent_crc(i64 %5606, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2725, i64 0, i64 0), i32 signext undef)
-  %5607 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 1) to i80*), align 2
-  %5608 = shl i80 %5607, 56
-  %5609 = ashr i80 %5608, 68
-  %5610 = shl nsw i80 %5609, 32
-  %5611 = trunc i80 %5610 to i64
-  %5612 = ashr exact i64 %5611, 32
-  call fastcc void @transparent_crc(i64 %5612, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2726, i64 0, i64 0), i32 signext undef)
-  %5613 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 1) to i80*), align 2
-  %5614 = lshr i80 %5613, 11
-  %5615 = trunc i80 %5614 to i64
-  %5616 = and i64 %5615, 1
-  call fastcc void @transparent_crc(i64 %5616, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2727, i64 0, i64 0), i32 signext undef)
-  %5617 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2962, i64 0, i32 5, i32 1) to i80*), align 2
-  %5618 = shl i80 %5617, 69
-  %5619 = ashr i80 %5618, 72
-  %5620 = shl nsw i80 %5619, 32
-  %5621 = trunc i80 %5620 to i64
+  %5603 = ashr exact i64 %5602, 32
+  call fastcc void @transparent_crc(i64 %5603, ptr @.str.2728, i32 signext undef)
+  %5604 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 2, i32 0), align 1
+  %5605 = shl i120 %5604, 58
+  %5606 = ashr i120 %5605, 105
+  %5607 = shl nsw i120 %5606, 32
+  %5608 = trunc i120 %5607 to i64
+  %5609 = ashr exact i64 %5608, 32
+  call fastcc void @transparent_crc(i64 %5609, ptr @.str.2798, i32 signext undef)
+  %5610 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 2, i32 0), align 1
+  %5611 = lshr i120 %5610, 41
+  %5612 = trunc i120 %5611 to i64
+  %5613 = and i64 %5612, 63
+  call fastcc void @transparent_crc(i64 %5613, ptr @.str.2799, i32 signext undef)
+  %5614 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 2, i32 0), align 1
+  %5615 = lshr i120 %5614, 19
+  %5616 = trunc i120 %5615 to i64
+  %5617 = and i64 %5616, 4194303
+  call fastcc void @transparent_crc(i64 %5617, ptr @.str.2800, i32 signext undef)
+  %5618 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 2, i32 0), align 1
+  %5619 = shl i120 %5618, 101
+  %5620 = ashr exact i120 %5619, 69
+  %5621 = trunc i120 %5620 to i64
   %5622 = ashr exact i64 %5621, 32
-  call fastcc void @transparent_crc(i64 %5622, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2728, i64 0, i64 0), i32 signext undef)
-  %5623 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 2, i32 0) to i120*), align 1
-  %5624 = shl i120 %5623, 58
-  %5625 = ashr i120 %5624, 105
-  %5626 = shl nsw i120 %5625, 32
-  %5627 = trunc i120 %5626 to i64
-  %5628 = ashr exact i64 %5627, 32
-  call fastcc void @transparent_crc(i64 %5628, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2798, i64 0, i64 0), i32 signext undef)
-  %5629 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 2, i32 0) to i120*), align 1
-  %5630 = lshr i120 %5629, 41
-  %5631 = trunc i120 %5630 to i64
-  %5632 = and i64 %5631, 63
-  call fastcc void @transparent_crc(i64 %5632, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2799, i64 0, i64 0), i32 signext undef)
-  %5633 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 2, i32 0) to i120*), align 1
-  %5634 = lshr i120 %5633, 19
-  %5635 = trunc i120 %5634 to i64
-  %5636 = and i64 %5635, 4194303
-  call fastcc void @transparent_crc(i64 %5636, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2800, i64 0, i64 0), i32 signext undef)
-  %5637 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 2, i32 0) to i120*), align 1
-  %5638 = shl i120 %5637, 101
-  %5639 = ashr exact i120 %5638, 69
-  %5640 = trunc i120 %5639 to i64
-  %5641 = ashr exact i64 %5640, 32
-  call fastcc void @transparent_crc(i64 %5641, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2801, i64 0, i64 0), i32 signext undef)
-  %5642 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5643 = zext i8 %5642 to i64
-  call fastcc void @transparent_crc(i64 %5643, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2802, i64 0, i64 0), i32 signext undef)
-  %5644 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5645 = sext i8 %5644 to i64
-  call fastcc void @transparent_crc(i64 %5645, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2803, i64 0, i64 0), i32 signext undef)
-  %5646 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5647 = sext i16 %5646 to i64
-  call fastcc void @transparent_crc(i64 %5647, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2804, i64 0, i64 0), i32 signext undef)
-  %5648 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5648, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2805, i64 0, i64 0), i32 signext undef)
-  %5649 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5650 = sext i32 %5649 to i64
-  call fastcc void @transparent_crc(i64 %5650, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2806, i64 0, i64 0), i32 signext undef)
-  %5651 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 4, i32 0) to i128*), align 2
-  %5652 = ashr i128 %5651, 99
-  %5653 = shl nsw i128 %5652, 32
-  %5654 = trunc i128 %5653 to i64
-  %5655 = ashr exact i64 %5654, 32
-  call fastcc void @transparent_crc(i64 %5655, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2807, i64 0, i64 0), i32 signext undef)
-  %5656 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 4, i32 0) to i128*), align 2
-  %5657 = shl i128 %5656, 29
-  %5658 = ashr i128 %5657, 97
-  %5659 = shl nsw i128 %5658, 32
-  %5660 = trunc i128 %5659 to i64
-  %5661 = ashr exact i64 %5660, 32
-  call fastcc void @transparent_crc(i64 %5661, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2808, i64 0, i64 0), i32 signext undef)
-  %5662 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2814, i64 0, i64 0), i32 signext undef)
-  %5663 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2965, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2841, i64 0, i64 0), i32 signext undef)
-  %5664 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2966, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2936, i64 0, i64 0), i32 signext undef)
-  %5665 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5666 = lshr i80 %5665, 57
-  %5667 = trunc i80 %5666 to i64
-  call fastcc void @transparent_crc(i64 %5667, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2937, i64 0, i64 0), i32 signext undef)
-  %5668 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5669 = shl i80 %5668, 23
-  %5670 = ashr i80 %5669, 64
-  %5671 = shl nsw i80 %5670, 32
+  call fastcc void @transparent_crc(i64 %5622, ptr @.str.2801, i32 signext undef)
+  %5623 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5624 = zext i8 %5623 to i64
+  call fastcc void @transparent_crc(i64 %5624, ptr @.str.2802, i32 signext undef)
+  %5625 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5626 = sext i8 %5625 to i64
+  call fastcc void @transparent_crc(i64 %5626, ptr @.str.2803, i32 signext undef)
+  %5627 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5628 = sext i16 %5627 to i64
+  call fastcc void @transparent_crc(i64 %5628, ptr @.str.2804, i32 signext undef)
+  %5629 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5629, ptr @.str.2805, i32 signext undef)
+  %5630 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5631 = sext i32 %5630 to i64
+  call fastcc void @transparent_crc(i64 %5631, ptr @.str.2806, i32 signext undef)
+  %5632 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 4, i32 0), align 2
+  %5633 = ashr i128 %5632, 99
+  %5634 = shl nsw i128 %5633, 32
+  %5635 = trunc i128 %5634 to i64
+  %5636 = ashr exact i64 %5635, 32
+  call fastcc void @transparent_crc(i64 %5636, ptr @.str.2807, i32 signext undef)
+  %5637 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 4, i32 0), align 2
+  %5638 = shl i128 %5637, 29
+  %5639 = ashr i128 %5638, 97
+  %5640 = shl nsw i128 %5639, 32
+  %5641 = trunc i128 %5640 to i64
+  %5642 = ashr exact i64 %5641, 32
+  call fastcc void @transparent_crc(i64 %5642, ptr @.str.2808, i32 signext undef)
+  %5643 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2814, i32 signext undef)
+  %5644 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2965, i64 0, i32 5, i32 0, i32 0), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.2841, i32 signext undef)
+  %5645 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2966, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.2936, i32 signext undef)
+  %5646 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 0, i32 0), align 2
+  %5647 = lshr i80 %5646, 57
+  %5648 = trunc i80 %5647 to i64
+  call fastcc void @transparent_crc(i64 %5648, ptr @.str.2937, i32 signext undef)
+  %5649 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 0, i32 0), align 2
+  %5650 = shl i80 %5649, 23
+  %5651 = ashr i80 %5650, 64
+  %5652 = shl nsw i80 %5651, 32
+  %5653 = trunc i80 %5652 to i64
+  %5654 = ashr exact i64 %5653, 32
+  call fastcc void @transparent_crc(i64 %5654, ptr @.str.2938, i32 signext undef)
+  %5655 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 0, i32 0), align 2
+  %5656 = shl i80 %5655, 39
+  %5657 = ashr i80 %5656, 62
+  %5658 = shl nsw i80 %5657, 32
+  %5659 = trunc i80 %5658 to i64
+  %5660 = ashr exact i64 %5659, 32
+  call fastcc void @transparent_crc(i64 %5660, ptr @.str.2939, i32 signext undef)
+  %5661 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 0, i32 0), align 2
+  %5662 = shl i80 %5661, 57
+  %5663 = ashr i80 %5662, 58
+  %5664 = shl nsw i80 %5663, 32
+  %5665 = trunc i80 %5664 to i64
+  %5666 = ashr exact i64 %5665, 32
+  call fastcc void @transparent_crc(i64 %5666, ptr @.str.2940, i32 signext undef)
+  %5667 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 1), align 2
+  %5668 = lshr i80 %5667, 49
+  %5669 = trunc i80 %5668 to i64
+  call fastcc void @transparent_crc(i64 %5669, ptr @.str.2941, i32 signext undef)
+  %5670 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 1), align 2
+  %5671 = lshr i80 %5670, 24
   %5672 = trunc i80 %5671 to i64
-  %5673 = ashr exact i64 %5672, 32
-  call fastcc void @transparent_crc(i64 %5673, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2938, i64 0, i64 0), i32 signext undef)
-  %5674 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5675 = shl i80 %5674, 39
-  %5676 = ashr i80 %5675, 62
+  %5673 = and i64 %5672, 33554431
+  call fastcc void @transparent_crc(i64 %5673, ptr @.str.2942, i32 signext undef)
+  %5674 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 1), align 2
+  %5675 = shl i80 %5674, 56
+  %5676 = ashr i80 %5675, 68
   %5677 = shl nsw i80 %5676, 32
   %5678 = trunc i80 %5677 to i64
   %5679 = ashr exact i64 %5678, 32
-  call fastcc void @transparent_crc(i64 %5679, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2939, i64 0, i64 0), i32 signext undef)
-  %5680 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5681 = shl i80 %5680, 57
-  %5682 = ashr i80 %5681, 58
-  %5683 = shl nsw i80 %5682, 32
-  %5684 = trunc i80 %5683 to i64
-  %5685 = ashr exact i64 %5684, 32
-  call fastcc void @transparent_crc(i64 %5685, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2940, i64 0, i64 0), i32 signext undef)
-  %5686 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 1) to i80*), align 2
-  %5687 = lshr i80 %5686, 49
+  call fastcc void @transparent_crc(i64 %5679, ptr @.str.2943, i32 signext undef)
+  %5680 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 1), align 2
+  %5681 = lshr i80 %5680, 11
+  %5682 = trunc i80 %5681 to i64
+  %5683 = and i64 %5682, 1
+  call fastcc void @transparent_crc(i64 %5683, ptr @.str.2944, i32 signext undef)
+  %5684 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 5, i32 1), align 2
+  %5685 = shl i80 %5684, 69
+  %5686 = ashr i80 %5685, 72
+  %5687 = shl nsw i80 %5686, 32
   %5688 = trunc i80 %5687 to i64
-  call fastcc void @transparent_crc(i64 %5688, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2941, i64 0, i64 0), i32 signext undef)
-  %5689 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 1) to i80*), align 2
-  %5690 = lshr i80 %5689, 24
-  %5691 = trunc i80 %5690 to i64
-  %5692 = and i64 %5691, 33554431
-  call fastcc void @transparent_crc(i64 %5692, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2942, i64 0, i64 0), i32 signext undef)
-  %5693 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 1) to i80*), align 2
-  %5694 = shl i80 %5693, 56
-  %5695 = ashr i80 %5694, 68
-  %5696 = shl nsw i80 %5695, 32
-  %5697 = trunc i80 %5696 to i64
-  %5698 = ashr exact i64 %5697, 32
-  call fastcc void @transparent_crc(i64 %5698, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2943, i64 0, i64 0), i32 signext undef)
-  %5699 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 1) to i80*), align 2
-  %5700 = lshr i80 %5699, 11
-  %5701 = trunc i80 %5700 to i64
-  %5702 = and i64 %5701, 1
-  call fastcc void @transparent_crc(i64 %5702, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2944, i64 0, i64 0), i32 signext undef)
-  %5703 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 5, i32 1) to i80*), align 2
-  %5704 = shl i80 %5703, 69
-  %5705 = ashr i80 %5704, 72
-  %5706 = shl nsw i80 %5705, 32
-  %5707 = trunc i80 %5706 to i64
-  %5708 = ashr exact i64 %5707, 32
-  call fastcc void @transparent_crc(i64 %5708, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2945, i64 0, i64 0), i32 signext undef)
-  %5709 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 6), align 2, !tbaa !50
-  %5710 = sext i16 %5709 to i64
-  call fastcc void @transparent_crc(i64 %5710, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2946, i64 0, i64 0), i32 signext undef)
-  %5711 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2969, i64 0, i32 7), align 2, !tbaa !51
-  %5712 = zext i16 %5711 to i64
-  call fastcc void @transparent_crc(i64 %5712, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2947, i64 0, i64 0), i32 signext undef)
-  %5713 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 0), align 2, !tbaa !24
-  %5714 = sext i16 %5713 to i64
-  call fastcc void @transparent_crc(i64 %5714, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2948, i64 0, i64 0), i32 signext undef)
-  %5715 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 1), align 2, !tbaa !52
-  %5716 = sext i8 %5715 to i64
-  call fastcc void @transparent_crc(i64 %5716, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2949, i64 0, i64 0), i32 signext undef)
-  %5717 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5718 = lshr i120 %5717, 107
+  %5689 = ashr exact i64 %5688, 32
+  call fastcc void @transparent_crc(i64 %5689, ptr @.str.2945, i32 signext undef)
+  %5690 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 6), align 2, !tbaa !50
+  %5691 = sext i16 %5690 to i64
+  call fastcc void @transparent_crc(i64 %5691, ptr @.str.2946, i32 signext undef)
+  %5692 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2969, i64 0, i32 7), align 2, !tbaa !51
+  %5693 = zext i16 %5692 to i64
+  call fastcc void @transparent_crc(i64 %5693, ptr @.str.2947, i32 signext undef)
+  %5694 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 0), align 2, !tbaa !24
+  %5695 = sext i16 %5694 to i64
+  call fastcc void @transparent_crc(i64 %5695, ptr @.str.2948, i32 signext undef)
+  %5696 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 1), align 2, !tbaa !52
+  %5697 = sext i8 %5696 to i64
+  call fastcc void @transparent_crc(i64 %5697, ptr @.str.2949, i32 signext undef)
+  %5698 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5699 = lshr i120 %5698, 107
+  %5700 = trunc i120 %5699 to i64
+  call fastcc void @transparent_crc(i64 %5700, ptr @.str.2950, i32 signext undef)
+  %5701 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5702 = lshr i120 %5701, 78
+  %5703 = trunc i120 %5702 to i64
+  %5704 = and i64 %5703, 536870911
+  call fastcc void @transparent_crc(i64 %5704, ptr @.str.2951, i32 signext undef)
+  %5705 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5706 = shl i120 %5705, 42
+  %5707 = ashr i120 %5706, 104
+  %5708 = shl nsw i120 %5707, 32
+  %5709 = trunc i120 %5708 to i64
+  %5710 = ashr exact i64 %5709, 32
+  call fastcc void @transparent_crc(i64 %5710, ptr @.str.2952, i32 signext undef)
+  %5711 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5712 = shl i120 %5711, 58
+  %5713 = ashr i120 %5712, 105
+  %5714 = shl nsw i120 %5713, 32
+  %5715 = trunc i120 %5714 to i64
+  %5716 = ashr exact i64 %5715, 32
+  call fastcc void @transparent_crc(i64 %5716, ptr @.str.2953, i32 signext undef)
+  %5717 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5718 = lshr i120 %5717, 41
   %5719 = trunc i120 %5718 to i64
-  call fastcc void @transparent_crc(i64 %5719, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2950, i64 0, i64 0), i32 signext undef)
-  %5720 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5721 = lshr i120 %5720, 78
-  %5722 = trunc i120 %5721 to i64
-  %5723 = and i64 %5722, 536870911
-  call fastcc void @transparent_crc(i64 %5723, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2951, i64 0, i64 0), i32 signext undef)
-  %5724 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5725 = shl i120 %5724, 42
-  %5726 = ashr i120 %5725, 104
-  %5727 = shl nsw i120 %5726, 32
+  %5720 = and i64 %5719, 63
+  call fastcc void @transparent_crc(i64 %5720, ptr @.str.2954, i32 signext undef)
+  %5721 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5722 = lshr i120 %5721, 19
+  %5723 = trunc i120 %5722 to i64
+  %5724 = and i64 %5723, 4194303
+  call fastcc void @transparent_crc(i64 %5724, ptr @.str.2955, i32 signext undef)
+  %5725 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 2, i32 0), align 1
+  %5726 = shl i120 %5725, 101
+  %5727 = ashr exact i120 %5726, 69
   %5728 = trunc i120 %5727 to i64
   %5729 = ashr exact i64 %5728, 32
-  call fastcc void @transparent_crc(i64 %5729, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2952, i64 0, i64 0), i32 signext undef)
-  %5730 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5731 = shl i120 %5730, 58
-  %5732 = ashr i120 %5731, 105
-  %5733 = shl nsw i120 %5732, 32
-  %5734 = trunc i120 %5733 to i64
-  %5735 = ashr exact i64 %5734, 32
-  call fastcc void @transparent_crc(i64 %5735, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2953, i64 0, i64 0), i32 signext undef)
-  %5736 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5737 = lshr i120 %5736, 41
-  %5738 = trunc i120 %5737 to i64
-  %5739 = and i64 %5738, 63
-  call fastcc void @transparent_crc(i64 %5739, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2954, i64 0, i64 0), i32 signext undef)
-  %5740 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5741 = lshr i120 %5740, 19
-  %5742 = trunc i120 %5741 to i64
-  %5743 = and i64 %5742, 4194303
-  call fastcc void @transparent_crc(i64 %5743, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2955, i64 0, i64 0), i32 signext undef)
-  %5744 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 2, i32 0) to i120*), align 1
-  %5745 = shl i120 %5744, 101
-  %5746 = ashr exact i120 %5745, 69
-  %5747 = trunc i120 %5746 to i64
-  %5748 = ashr exact i64 %5747, 32
-  call fastcc void @transparent_crc(i64 %5748, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2956, i64 0, i64 0), i32 signext undef)
-  %5749 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5750 = zext i8 %5749 to i64
-  call fastcc void @transparent_crc(i64 %5750, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2957, i64 0, i64 0), i32 signext undef)
-  %5751 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5752 = sext i8 %5751 to i64
-  call fastcc void @transparent_crc(i64 %5752, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2958, i64 0, i64 0), i32 signext undef)
-  %5753 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5754 = sext i16 %5753 to i64
-  call fastcc void @transparent_crc(i64 %5754, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2959, i64 0, i64 0), i32 signext undef)
-  %5755 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5755, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2960, i64 0, i64 0), i32 signext undef)
-  %5756 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5757 = sext i32 %5756 to i64
-  call fastcc void @transparent_crc(i64 %5757, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2961, i64 0, i64 0), i32 signext undef)
-  %5758 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 4, i32 0) to i128*), align 2
-  %5759 = ashr i128 %5758, 99
-  %5760 = shl nsw i128 %5759, 32
-  %5761 = trunc i128 %5760 to i64
-  %5762 = ashr exact i64 %5761, 32
-  call fastcc void @transparent_crc(i64 %5762, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2962, i64 0, i64 0), i32 signext undef)
-  %5763 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 4, i32 0) to i128*), align 2
-  %5764 = shl i128 %5763, 29
-  %5765 = ashr i128 %5764, 97
-  %5766 = shl nsw i128 %5765, 32
-  %5767 = trunc i128 %5766 to i64
-  %5768 = ashr exact i64 %5767, 32
-  call fastcc void @transparent_crc(i64 %5768, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2963, i64 0, i64 0), i32 signext undef)
-  %5769 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 4, i32 0) to i128*), align 2
-  %5770 = shl i128 %5769, 60
-  %5771 = ashr i128 %5770, 108
-  %5772 = shl nsw i128 %5771, 32
-  %5773 = trunc i128 %5772 to i64
-  %5774 = ashr exact i64 %5773, 32
-  call fastcc void @transparent_crc(i64 %5774, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2964, i64 0, i64 0), i32 signext undef)
-  %5775 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 4, i32 0) to i128*), align 2
-  %5776 = shl i128 %5775, 80
-  %5777 = ashr i128 %5776, 110
-  %5778 = shl nsw i128 %5777, 32
-  %5779 = trunc i128 %5778 to i64
+  call fastcc void @transparent_crc(i64 %5729, ptr @.str.2956, i32 signext undef)
+  %5730 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5731 = zext i8 %5730 to i64
+  call fastcc void @transparent_crc(i64 %5731, ptr @.str.2957, i32 signext undef)
+  %5732 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5733 = sext i8 %5732 to i64
+  call fastcc void @transparent_crc(i64 %5733, ptr @.str.2958, i32 signext undef)
+  %5734 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5735 = sext i16 %5734 to i64
+  call fastcc void @transparent_crc(i64 %5735, ptr @.str.2959, i32 signext undef)
+  %5736 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5736, ptr @.str.2960, i32 signext undef)
+  %5737 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5738 = sext i32 %5737 to i64
+  call fastcc void @transparent_crc(i64 %5738, ptr @.str.2961, i32 signext undef)
+  %5739 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 4, i32 0), align 2
+  %5740 = ashr i128 %5739, 99
+  %5741 = shl nsw i128 %5740, 32
+  %5742 = trunc i128 %5741 to i64
+  %5743 = ashr exact i64 %5742, 32
+  call fastcc void @transparent_crc(i64 %5743, ptr @.str.2962, i32 signext undef)
+  %5744 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 4, i32 0), align 2
+  %5745 = shl i128 %5744, 29
+  %5746 = ashr i128 %5745, 97
+  %5747 = shl nsw i128 %5746, 32
+  %5748 = trunc i128 %5747 to i64
+  %5749 = ashr exact i64 %5748, 32
+  call fastcc void @transparent_crc(i64 %5749, ptr @.str.2963, i32 signext undef)
+  %5750 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 4, i32 0), align 2
+  %5751 = shl i128 %5750, 60
+  %5752 = ashr i128 %5751, 108
+  %5753 = shl nsw i128 %5752, 32
+  %5754 = trunc i128 %5753 to i64
+  %5755 = ashr exact i64 %5754, 32
+  call fastcc void @transparent_crc(i64 %5755, ptr @.str.2964, i32 signext undef)
+  %5756 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 4, i32 0), align 2
+  %5757 = shl i128 %5756, 80
+  %5758 = ashr i128 %5757, 110
+  %5759 = shl nsw i128 %5758, 32
+  %5760 = trunc i128 %5759 to i64
+  %5761 = ashr exact i64 %5760, 32
+  call fastcc void @transparent_crc(i64 %5761, ptr @.str.2965, i32 signext undef)
+  %5762 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 4, i32 0), align 2
+  %5763 = lshr i128 %5762, 28
+  %5764 = trunc i128 %5763 to i64
+  %5765 = and i64 %5764, 3
+  call fastcc void @transparent_crc(i64 %5765, ptr @.str.2966, i32 signext undef)
+  %5766 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 4, i32 0), align 2
+  %5767 = shl i128 %5766, 100
+  %5768 = ashr i128 %5767, 107
+  %5769 = shl nsw i128 %5768, 32
+  %5770 = trunc i128 %5769 to i64
+  %5771 = ashr exact i64 %5770, 32
+  call fastcc void @transparent_crc(i64 %5771, ptr @.str.2967, i32 signext undef)
+  %5772 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 0, i32 0), align 2
+  %5773 = lshr i80 %5772, 57
+  %5774 = trunc i80 %5773 to i64
+  call fastcc void @transparent_crc(i64 %5774, ptr @.str.2968, i32 signext undef)
+  %5775 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 0, i32 0), align 2
+  %5776 = shl i80 %5775, 23
+  %5777 = ashr i80 %5776, 64
+  %5778 = shl nsw i80 %5777, 32
+  %5779 = trunc i80 %5778 to i64
   %5780 = ashr exact i64 %5779, 32
-  call fastcc void @transparent_crc(i64 %5780, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2965, i64 0, i64 0), i32 signext undef)
-  %5781 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 4, i32 0) to i128*), align 2
-  %5782 = lshr i128 %5781, 28
-  %5783 = trunc i128 %5782 to i64
-  %5784 = and i64 %5783, 3
-  call fastcc void @transparent_crc(i64 %5784, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2966, i64 0, i64 0), i32 signext undef)
-  %5785 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 4, i32 0) to i128*), align 2
-  %5786 = shl i128 %5785, 100
-  %5787 = ashr i128 %5786, 107
-  %5788 = shl nsw i128 %5787, 32
-  %5789 = trunc i128 %5788 to i64
-  %5790 = ashr exact i64 %5789, 32
-  call fastcc void @transparent_crc(i64 %5790, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2967, i64 0, i64 0), i32 signext undef)
-  %5791 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5792 = lshr i80 %5791, 57
-  %5793 = trunc i80 %5792 to i64
-  call fastcc void @transparent_crc(i64 %5793, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2968, i64 0, i64 0), i32 signext undef)
-  %5794 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5795 = shl i80 %5794, 23
-  %5796 = ashr i80 %5795, 64
-  %5797 = shl nsw i80 %5796, 32
+  call fastcc void @transparent_crc(i64 %5780, ptr @.str.2969, i32 signext undef)
+  %5781 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 0, i32 0), align 2
+  %5782 = shl i80 %5781, 39
+  %5783 = ashr i80 %5782, 62
+  %5784 = shl nsw i80 %5783, 32
+  %5785 = trunc i80 %5784 to i64
+  %5786 = ashr exact i64 %5785, 32
+  call fastcc void @transparent_crc(i64 %5786, ptr @.str.2970, i32 signext undef)
+  %5787 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 0, i32 0), align 2
+  %5788 = shl i80 %5787, 57
+  %5789 = ashr i80 %5788, 58
+  %5790 = shl nsw i80 %5789, 32
+  %5791 = trunc i80 %5790 to i64
+  %5792 = ashr exact i64 %5791, 32
+  call fastcc void @transparent_crc(i64 %5792, ptr @.str.2971, i32 signext undef)
+  %5793 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 1), align 2
+  %5794 = lshr i80 %5793, 49
+  %5795 = trunc i80 %5794 to i64
+  call fastcc void @transparent_crc(i64 %5795, ptr @.str.2972, i32 signext undef)
+  %5796 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 1), align 2
+  %5797 = lshr i80 %5796, 24
   %5798 = trunc i80 %5797 to i64
-  %5799 = ashr exact i64 %5798, 32
-  call fastcc void @transparent_crc(i64 %5799, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2969, i64 0, i64 0), i32 signext undef)
-  %5800 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5801 = shl i80 %5800, 39
-  %5802 = ashr i80 %5801, 62
+  %5799 = and i64 %5798, 33554431
+  call fastcc void @transparent_crc(i64 %5799, ptr @.str.2973, i32 signext undef)
+  %5800 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 1), align 2
+  %5801 = shl i80 %5800, 56
+  %5802 = ashr i80 %5801, 68
   %5803 = shl nsw i80 %5802, 32
   %5804 = trunc i80 %5803 to i64
   %5805 = ashr exact i64 %5804, 32
-  call fastcc void @transparent_crc(i64 %5805, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2970, i64 0, i64 0), i32 signext undef)
-  %5806 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5807 = shl i80 %5806, 57
-  %5808 = ashr i80 %5807, 58
-  %5809 = shl nsw i80 %5808, 32
-  %5810 = trunc i80 %5809 to i64
-  %5811 = ashr exact i64 %5810, 32
-  call fastcc void @transparent_crc(i64 %5811, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2971, i64 0, i64 0), i32 signext undef)
-  %5812 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 1) to i80*), align 2
-  %5813 = lshr i80 %5812, 49
+  call fastcc void @transparent_crc(i64 %5805, ptr @.str.2974, i32 signext undef)
+  %5806 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 1), align 2
+  %5807 = lshr i80 %5806, 11
+  %5808 = trunc i80 %5807 to i64
+  %5809 = and i64 %5808, 1
+  call fastcc void @transparent_crc(i64 %5809, ptr @.str.2975, i32 signext undef)
+  %5810 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 5, i32 1), align 2
+  %5811 = shl i80 %5810, 69
+  %5812 = ashr i80 %5811, 72
+  %5813 = shl nsw i80 %5812, 32
   %5814 = trunc i80 %5813 to i64
-  call fastcc void @transparent_crc(i64 %5814, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2972, i64 0, i64 0), i32 signext undef)
-  %5815 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 1) to i80*), align 2
-  %5816 = lshr i80 %5815, 24
-  %5817 = trunc i80 %5816 to i64
-  %5818 = and i64 %5817, 33554431
-  call fastcc void @transparent_crc(i64 %5818, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2973, i64 0, i64 0), i32 signext undef)
-  %5819 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 1) to i80*), align 2
-  %5820 = shl i80 %5819, 56
-  %5821 = ashr i80 %5820, 68
-  %5822 = shl nsw i80 %5821, 32
-  %5823 = trunc i80 %5822 to i64
-  %5824 = ashr exact i64 %5823, 32
-  call fastcc void @transparent_crc(i64 %5824, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2974, i64 0, i64 0), i32 signext undef)
-  %5825 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 1) to i80*), align 2
-  %5826 = lshr i80 %5825, 11
-  %5827 = trunc i80 %5826 to i64
-  %5828 = and i64 %5827, 1
-  call fastcc void @transparent_crc(i64 %5828, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2975, i64 0, i64 0), i32 signext undef)
-  %5829 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 5, i32 1) to i80*), align 2
-  %5830 = shl i80 %5829, 69
-  %5831 = ashr i80 %5830, 72
-  %5832 = shl nsw i80 %5831, 32
-  %5833 = trunc i80 %5832 to i64
-  %5834 = ashr exact i64 %5833, 32
-  call fastcc void @transparent_crc(i64 %5834, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2976, i64 0, i64 0), i32 signext undef)
-  %5835 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 6), align 2, !tbaa !50
-  %5836 = sext i16 %5835 to i64
-  call fastcc void @transparent_crc(i64 %5836, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2977, i64 0, i64 0), i32 signext undef)
-  %5837 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2970, i64 0, i32 7), align 2, !tbaa !51
-  %5838 = zext i16 %5837 to i64
-  call fastcc void @transparent_crc(i64 %5838, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2978, i64 0, i64 0), i32 signext undef)
-  %5839 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 0), align 2, !tbaa !24
-  %5840 = sext i16 %5839 to i64
-  call fastcc void @transparent_crc(i64 %5840, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2979, i64 0, i64 0), i32 signext undef)
-  %5841 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 1), align 2, !tbaa !52
-  %5842 = sext i8 %5841 to i64
-  call fastcc void @transparent_crc(i64 %5842, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.2980, i64 0, i64 0), i32 signext undef)
-  %5843 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5844 = lshr i120 %5843, 107
+  %5815 = ashr exact i64 %5814, 32
+  call fastcc void @transparent_crc(i64 %5815, ptr @.str.2976, i32 signext undef)
+  %5816 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 6), align 2, !tbaa !50
+  %5817 = sext i16 %5816 to i64
+  call fastcc void @transparent_crc(i64 %5817, ptr @.str.2977, i32 signext undef)
+  %5818 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2970, i64 0, i32 7), align 2, !tbaa !51
+  %5819 = zext i16 %5818 to i64
+  call fastcc void @transparent_crc(i64 %5819, ptr @.str.2978, i32 signext undef)
+  %5820 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 0), align 2, !tbaa !24
+  %5821 = sext i16 %5820 to i64
+  call fastcc void @transparent_crc(i64 %5821, ptr @.str.2979, i32 signext undef)
+  %5822 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 1), align 2, !tbaa !52
+  %5823 = sext i8 %5822 to i64
+  call fastcc void @transparent_crc(i64 %5823, ptr @.str.2980, i32 signext undef)
+  %5824 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5825 = lshr i120 %5824, 107
+  %5826 = trunc i120 %5825 to i64
+  call fastcc void @transparent_crc(i64 %5826, ptr @.str.2981, i32 signext undef)
+  %5827 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5828 = lshr i120 %5827, 78
+  %5829 = trunc i120 %5828 to i64
+  %5830 = and i64 %5829, 536870911
+  call fastcc void @transparent_crc(i64 %5830, ptr @.str.2982, i32 signext undef)
+  %5831 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5832 = shl i120 %5831, 42
+  %5833 = ashr i120 %5832, 104
+  %5834 = shl nsw i120 %5833, 32
+  %5835 = trunc i120 %5834 to i64
+  %5836 = ashr exact i64 %5835, 32
+  call fastcc void @transparent_crc(i64 %5836, ptr @.str.2983, i32 signext undef)
+  %5837 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5838 = shl i120 %5837, 58
+  %5839 = ashr i120 %5838, 105
+  %5840 = shl nsw i120 %5839, 32
+  %5841 = trunc i120 %5840 to i64
+  %5842 = ashr exact i64 %5841, 32
+  call fastcc void @transparent_crc(i64 %5842, ptr @.str.2984, i32 signext undef)
+  %5843 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5844 = lshr i120 %5843, 41
   %5845 = trunc i120 %5844 to i64
-  call fastcc void @transparent_crc(i64 %5845, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2981, i64 0, i64 0), i32 signext undef)
-  %5846 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5847 = lshr i120 %5846, 78
-  %5848 = trunc i120 %5847 to i64
-  %5849 = and i64 %5848, 536870911
-  call fastcc void @transparent_crc(i64 %5849, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2982, i64 0, i64 0), i32 signext undef)
-  %5850 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5851 = shl i120 %5850, 42
-  %5852 = ashr i120 %5851, 104
-  %5853 = shl nsw i120 %5852, 32
+  %5846 = and i64 %5845, 63
+  call fastcc void @transparent_crc(i64 %5846, ptr @.str.2985, i32 signext undef)
+  %5847 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5848 = lshr i120 %5847, 19
+  %5849 = trunc i120 %5848 to i64
+  %5850 = and i64 %5849, 4194303
+  call fastcc void @transparent_crc(i64 %5850, ptr @.str.2986, i32 signext undef)
+  %5851 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 2, i32 0), align 1
+  %5852 = shl i120 %5851, 101
+  %5853 = ashr exact i120 %5852, 69
   %5854 = trunc i120 %5853 to i64
   %5855 = ashr exact i64 %5854, 32
-  call fastcc void @transparent_crc(i64 %5855, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2983, i64 0, i64 0), i32 signext undef)
-  %5856 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5857 = shl i120 %5856, 58
-  %5858 = ashr i120 %5857, 105
-  %5859 = shl nsw i120 %5858, 32
-  %5860 = trunc i120 %5859 to i64
-  %5861 = ashr exact i64 %5860, 32
-  call fastcc void @transparent_crc(i64 %5861, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2984, i64 0, i64 0), i32 signext undef)
-  %5862 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5863 = lshr i120 %5862, 41
-  %5864 = trunc i120 %5863 to i64
-  %5865 = and i64 %5864, 63
-  call fastcc void @transparent_crc(i64 %5865, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2985, i64 0, i64 0), i32 signext undef)
-  %5866 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5867 = lshr i120 %5866, 19
-  %5868 = trunc i120 %5867 to i64
-  %5869 = and i64 %5868, 4194303
-  call fastcc void @transparent_crc(i64 %5869, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2986, i64 0, i64 0), i32 signext undef)
-  %5870 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 2, i32 0) to i120*), align 1
-  %5871 = shl i120 %5870, 101
-  %5872 = ashr exact i120 %5871, 69
-  %5873 = trunc i120 %5872 to i64
-  %5874 = ashr exact i64 %5873, 32
-  call fastcc void @transparent_crc(i64 %5874, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2987, i64 0, i64 0), i32 signext undef)
-  %5875 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %5876 = zext i8 %5875 to i64
-  call fastcc void @transparent_crc(i64 %5876, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2988, i64 0, i64 0), i32 signext undef)
-  %5877 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %5878 = sext i8 %5877 to i64
-  call fastcc void @transparent_crc(i64 %5878, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2989, i64 0, i64 0), i32 signext undef)
-  %5879 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %5880 = sext i16 %5879 to i64
-  call fastcc void @transparent_crc(i64 %5880, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2990, i64 0, i64 0), i32 signext undef)
-  %5881 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %5881, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2991, i64 0, i64 0), i32 signext undef)
-  %5882 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %5883 = sext i32 %5882 to i64
-  call fastcc void @transparent_crc(i64 %5883, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2992, i64 0, i64 0), i32 signext undef)
-  %5884 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 4, i32 0) to i128*), align 2
-  %5885 = ashr i128 %5884, 99
-  %5886 = shl nsw i128 %5885, 32
-  %5887 = trunc i128 %5886 to i64
-  %5888 = ashr exact i64 %5887, 32
-  call fastcc void @transparent_crc(i64 %5888, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2993, i64 0, i64 0), i32 signext undef)
-  %5889 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 4, i32 0) to i128*), align 2
-  %5890 = shl i128 %5889, 29
-  %5891 = ashr i128 %5890, 97
-  %5892 = shl nsw i128 %5891, 32
-  %5893 = trunc i128 %5892 to i64
-  %5894 = ashr exact i64 %5893, 32
-  call fastcc void @transparent_crc(i64 %5894, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2994, i64 0, i64 0), i32 signext undef)
-  %5895 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 4, i32 0) to i128*), align 2
-  %5896 = shl i128 %5895, 60
-  %5897 = ashr i128 %5896, 108
-  %5898 = shl nsw i128 %5897, 32
-  %5899 = trunc i128 %5898 to i64
-  %5900 = ashr exact i64 %5899, 32
-  call fastcc void @transparent_crc(i64 %5900, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2995, i64 0, i64 0), i32 signext undef)
-  %5901 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 4, i32 0) to i128*), align 2
-  %5902 = shl i128 %5901, 80
-  %5903 = ashr i128 %5902, 110
-  %5904 = shl nsw i128 %5903, 32
-  %5905 = trunc i128 %5904 to i64
+  call fastcc void @transparent_crc(i64 %5855, ptr @.str.2987, i32 signext undef)
+  %5856 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5857 = zext i8 %5856 to i64
+  call fastcc void @transparent_crc(i64 %5857, ptr @.str.2988, i32 signext undef)
+  %5858 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5859 = sext i8 %5858 to i64
+  call fastcc void @transparent_crc(i64 %5859, ptr @.str.2989, i32 signext undef)
+  %5860 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5861 = sext i16 %5860 to i64
+  call fastcc void @transparent_crc(i64 %5861, ptr @.str.2990, i32 signext undef)
+  %5862 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5862, ptr @.str.2991, i32 signext undef)
+  %5863 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5864 = sext i32 %5863 to i64
+  call fastcc void @transparent_crc(i64 %5864, ptr @.str.2992, i32 signext undef)
+  %5865 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 4, i32 0), align 2
+  %5866 = ashr i128 %5865, 99
+  %5867 = shl nsw i128 %5866, 32
+  %5868 = trunc i128 %5867 to i64
+  %5869 = ashr exact i64 %5868, 32
+  call fastcc void @transparent_crc(i64 %5869, ptr @.str.2993, i32 signext undef)
+  %5870 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 4, i32 0), align 2
+  %5871 = shl i128 %5870, 29
+  %5872 = ashr i128 %5871, 97
+  %5873 = shl nsw i128 %5872, 32
+  %5874 = trunc i128 %5873 to i64
+  %5875 = ashr exact i64 %5874, 32
+  call fastcc void @transparent_crc(i64 %5875, ptr @.str.2994, i32 signext undef)
+  %5876 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 4, i32 0), align 2
+  %5877 = shl i128 %5876, 60
+  %5878 = ashr i128 %5877, 108
+  %5879 = shl nsw i128 %5878, 32
+  %5880 = trunc i128 %5879 to i64
+  %5881 = ashr exact i64 %5880, 32
+  call fastcc void @transparent_crc(i64 %5881, ptr @.str.2995, i32 signext undef)
+  %5882 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 4, i32 0), align 2
+  %5883 = shl i128 %5882, 80
+  %5884 = ashr i128 %5883, 110
+  %5885 = shl nsw i128 %5884, 32
+  %5886 = trunc i128 %5885 to i64
+  %5887 = ashr exact i64 %5886, 32
+  call fastcc void @transparent_crc(i64 %5887, ptr @.str.2996, i32 signext undef)
+  %5888 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 4, i32 0), align 2
+  %5889 = lshr i128 %5888, 28
+  %5890 = trunc i128 %5889 to i64
+  %5891 = and i64 %5890, 3
+  call fastcc void @transparent_crc(i64 %5891, ptr @.str.2997, i32 signext undef)
+  %5892 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 4, i32 0), align 2
+  %5893 = shl i128 %5892, 100
+  %5894 = ashr i128 %5893, 107
+  %5895 = shl nsw i128 %5894, 32
+  %5896 = trunc i128 %5895 to i64
+  %5897 = ashr exact i64 %5896, 32
+  call fastcc void @transparent_crc(i64 %5897, ptr @.str.2998, i32 signext undef)
+  %5898 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 0, i32 0), align 2
+  %5899 = lshr i80 %5898, 57
+  %5900 = trunc i80 %5899 to i64
+  call fastcc void @transparent_crc(i64 %5900, ptr @.str.2999, i32 signext undef)
+  %5901 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 0, i32 0), align 2
+  %5902 = shl i80 %5901, 23
+  %5903 = ashr i80 %5902, 64
+  %5904 = shl nsw i80 %5903, 32
+  %5905 = trunc i80 %5904 to i64
   %5906 = ashr exact i64 %5905, 32
-  call fastcc void @transparent_crc(i64 %5906, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2996, i64 0, i64 0), i32 signext undef)
-  %5907 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 4, i32 0) to i128*), align 2
-  %5908 = lshr i128 %5907, 28
-  %5909 = trunc i128 %5908 to i64
-  %5910 = and i64 %5909, 3
-  call fastcc void @transparent_crc(i64 %5910, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2997, i64 0, i64 0), i32 signext undef)
-  %5911 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 4, i32 0) to i128*), align 2
-  %5912 = shl i128 %5911, 100
-  %5913 = ashr i128 %5912, 107
-  %5914 = shl nsw i128 %5913, 32
-  %5915 = trunc i128 %5914 to i64
-  %5916 = ashr exact i64 %5915, 32
-  call fastcc void @transparent_crc(i64 %5916, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.2998, i64 0, i64 0), i32 signext undef)
-  %5917 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5918 = lshr i80 %5917, 57
-  %5919 = trunc i80 %5918 to i64
-  call fastcc void @transparent_crc(i64 %5919, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.2999, i64 0, i64 0), i32 signext undef)
-  %5920 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5921 = shl i80 %5920, 23
-  %5922 = ashr i80 %5921, 64
-  %5923 = shl nsw i80 %5922, 32
+  call fastcc void @transparent_crc(i64 %5906, ptr @.str.3000, i32 signext undef)
+  %5907 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 0, i32 0), align 2
+  %5908 = shl i80 %5907, 39
+  %5909 = ashr i80 %5908, 62
+  %5910 = shl nsw i80 %5909, 32
+  %5911 = trunc i80 %5910 to i64
+  %5912 = ashr exact i64 %5911, 32
+  call fastcc void @transparent_crc(i64 %5912, ptr @.str.3001, i32 signext undef)
+  %5913 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 0, i32 0), align 2
+  %5914 = shl i80 %5913, 57
+  %5915 = ashr i80 %5914, 58
+  %5916 = shl nsw i80 %5915, 32
+  %5917 = trunc i80 %5916 to i64
+  %5918 = ashr exact i64 %5917, 32
+  call fastcc void @transparent_crc(i64 %5918, ptr @.str.3002, i32 signext undef)
+  %5919 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 1), align 2
+  %5920 = lshr i80 %5919, 49
+  %5921 = trunc i80 %5920 to i64
+  call fastcc void @transparent_crc(i64 %5921, ptr @.str.3003, i32 signext undef)
+  %5922 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 1), align 2
+  %5923 = lshr i80 %5922, 24
   %5924 = trunc i80 %5923 to i64
-  %5925 = ashr exact i64 %5924, 32
-  call fastcc void @transparent_crc(i64 %5925, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3000, i64 0, i64 0), i32 signext undef)
-  %5926 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5927 = shl i80 %5926, 39
-  %5928 = ashr i80 %5927, 62
+  %5925 = and i64 %5924, 33554431
+  call fastcc void @transparent_crc(i64 %5925, ptr @.str.3004, i32 signext undef)
+  %5926 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 1), align 2
+  %5927 = shl i80 %5926, 56
+  %5928 = ashr i80 %5927, 68
   %5929 = shl nsw i80 %5928, 32
   %5930 = trunc i80 %5929 to i64
   %5931 = ashr exact i64 %5930, 32
-  call fastcc void @transparent_crc(i64 %5931, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3001, i64 0, i64 0), i32 signext undef)
-  %5932 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %5933 = shl i80 %5932, 57
-  %5934 = ashr i80 %5933, 58
-  %5935 = shl nsw i80 %5934, 32
-  %5936 = trunc i80 %5935 to i64
-  %5937 = ashr exact i64 %5936, 32
-  call fastcc void @transparent_crc(i64 %5937, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3002, i64 0, i64 0), i32 signext undef)
-  %5938 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 1) to i80*), align 2
-  %5939 = lshr i80 %5938, 49
+  call fastcc void @transparent_crc(i64 %5931, ptr @.str.3005, i32 signext undef)
+  %5932 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 1), align 2
+  %5933 = lshr i80 %5932, 11
+  %5934 = trunc i80 %5933 to i64
+  %5935 = and i64 %5934, 1
+  call fastcc void @transparent_crc(i64 %5935, ptr @.str.3006, i32 signext undef)
+  %5936 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 5, i32 1), align 2
+  %5937 = shl i80 %5936, 69
+  %5938 = ashr i80 %5937, 72
+  %5939 = shl nsw i80 %5938, 32
   %5940 = trunc i80 %5939 to i64
-  call fastcc void @transparent_crc(i64 %5940, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3003, i64 0, i64 0), i32 signext undef)
-  %5941 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 1) to i80*), align 2
-  %5942 = lshr i80 %5941, 24
-  %5943 = trunc i80 %5942 to i64
-  %5944 = and i64 %5943, 33554431
-  call fastcc void @transparent_crc(i64 %5944, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3004, i64 0, i64 0), i32 signext undef)
-  %5945 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 1) to i80*), align 2
-  %5946 = shl i80 %5945, 56
-  %5947 = ashr i80 %5946, 68
-  %5948 = shl nsw i80 %5947, 32
-  %5949 = trunc i80 %5948 to i64
-  %5950 = ashr exact i64 %5949, 32
-  call fastcc void @transparent_crc(i64 %5950, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3005, i64 0, i64 0), i32 signext undef)
-  %5951 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 1) to i80*), align 2
-  %5952 = lshr i80 %5951, 11
-  %5953 = trunc i80 %5952 to i64
-  %5954 = and i64 %5953, 1
-  call fastcc void @transparent_crc(i64 %5954, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3006, i64 0, i64 0), i32 signext undef)
-  %5955 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 5, i32 1) to i80*), align 2
-  %5956 = shl i80 %5955, 69
-  %5957 = ashr i80 %5956, 72
-  %5958 = shl nsw i80 %5957, 32
-  %5959 = trunc i80 %5958 to i64
-  %5960 = ashr exact i64 %5959, 32
-  call fastcc void @transparent_crc(i64 %5960, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3007, i64 0, i64 0), i32 signext undef)
-  %5961 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 6), align 2, !tbaa !50
-  %5962 = sext i16 %5961 to i64
-  call fastcc void @transparent_crc(i64 %5962, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3008, i64 0, i64 0), i32 signext undef)
-  %5963 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2971, i64 0, i32 7), align 2, !tbaa !51
-  %5964 = zext i16 %5963 to i64
-  call fastcc void @transparent_crc(i64 %5964, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3009, i64 0, i64 0), i32 signext undef)
-  %5965 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 0), align 2, !tbaa !24
-  %5966 = sext i16 %5965 to i64
-  call fastcc void @transparent_crc(i64 %5966, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3010, i64 0, i64 0), i32 signext undef)
-  %5967 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 1), align 2, !tbaa !52
-  %5968 = sext i8 %5967 to i64
-  call fastcc void @transparent_crc(i64 %5968, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3011, i64 0, i64 0), i32 signext undef)
-  %5969 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5970 = lshr i120 %5969, 107
+  %5941 = ashr exact i64 %5940, 32
+  call fastcc void @transparent_crc(i64 %5941, ptr @.str.3007, i32 signext undef)
+  %5942 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 6), align 2, !tbaa !50
+  %5943 = sext i16 %5942 to i64
+  call fastcc void @transparent_crc(i64 %5943, ptr @.str.3008, i32 signext undef)
+  %5944 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2971, i64 0, i32 7), align 2, !tbaa !51
+  %5945 = zext i16 %5944 to i64
+  call fastcc void @transparent_crc(i64 %5945, ptr @.str.3009, i32 signext undef)
+  %5946 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 0), align 2, !tbaa !24
+  %5947 = sext i16 %5946 to i64
+  call fastcc void @transparent_crc(i64 %5947, ptr @.str.3010, i32 signext undef)
+  %5948 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 1), align 2, !tbaa !52
+  %5949 = sext i8 %5948 to i64
+  call fastcc void @transparent_crc(i64 %5949, ptr @.str.3011, i32 signext undef)
+  %5950 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5951 = lshr i120 %5950, 107
+  %5952 = trunc i120 %5951 to i64
+  call fastcc void @transparent_crc(i64 %5952, ptr @.str.3012, i32 signext undef)
+  %5953 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5954 = lshr i120 %5953, 78
+  %5955 = trunc i120 %5954 to i64
+  %5956 = and i64 %5955, 536870911
+  call fastcc void @transparent_crc(i64 %5956, ptr @.str.3013, i32 signext undef)
+  %5957 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5958 = shl i120 %5957, 42
+  %5959 = ashr i120 %5958, 104
+  %5960 = shl nsw i120 %5959, 32
+  %5961 = trunc i120 %5960 to i64
+  %5962 = ashr exact i64 %5961, 32
+  call fastcc void @transparent_crc(i64 %5962, ptr @.str.3014, i32 signext undef)
+  %5963 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5964 = shl i120 %5963, 58
+  %5965 = ashr i120 %5964, 105
+  %5966 = shl nsw i120 %5965, 32
+  %5967 = trunc i120 %5966 to i64
+  %5968 = ashr exact i64 %5967, 32
+  call fastcc void @transparent_crc(i64 %5968, ptr @.str.3015, i32 signext undef)
+  %5969 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5970 = lshr i120 %5969, 41
   %5971 = trunc i120 %5970 to i64
-  call fastcc void @transparent_crc(i64 %5971, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3012, i64 0, i64 0), i32 signext undef)
-  %5972 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5973 = lshr i120 %5972, 78
-  %5974 = trunc i120 %5973 to i64
-  %5975 = and i64 %5974, 536870911
-  call fastcc void @transparent_crc(i64 %5975, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3013, i64 0, i64 0), i32 signext undef)
-  %5976 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5977 = shl i120 %5976, 42
-  %5978 = ashr i120 %5977, 104
-  %5979 = shl nsw i120 %5978, 32
+  %5972 = and i64 %5971, 63
+  call fastcc void @transparent_crc(i64 %5972, ptr @.str.3016, i32 signext undef)
+  %5973 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5974 = lshr i120 %5973, 19
+  %5975 = trunc i120 %5974 to i64
+  %5976 = and i64 %5975, 4194303
+  call fastcc void @transparent_crc(i64 %5976, ptr @.str.3017, i32 signext undef)
+  %5977 = load volatile i120, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 2, i32 0), align 1
+  %5978 = shl i120 %5977, 101
+  %5979 = ashr exact i120 %5978, 69
   %5980 = trunc i120 %5979 to i64
   %5981 = ashr exact i64 %5980, 32
-  call fastcc void @transparent_crc(i64 %5981, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3014, i64 0, i64 0), i32 signext undef)
-  %5982 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5983 = shl i120 %5982, 58
-  %5984 = ashr i120 %5983, 105
-  %5985 = shl nsw i120 %5984, 32
-  %5986 = trunc i120 %5985 to i64
-  %5987 = ashr exact i64 %5986, 32
-  call fastcc void @transparent_crc(i64 %5987, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3015, i64 0, i64 0), i32 signext undef)
-  %5988 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5989 = lshr i120 %5988, 41
-  %5990 = trunc i120 %5989 to i64
-  %5991 = and i64 %5990, 63
-  call fastcc void @transparent_crc(i64 %5991, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3016, i64 0, i64 0), i32 signext undef)
-  %5992 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5993 = lshr i120 %5992, 19
-  %5994 = trunc i120 %5993 to i64
-  %5995 = and i64 %5994, 4194303
-  call fastcc void @transparent_crc(i64 %5995, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3017, i64 0, i64 0), i32 signext undef)
-  %5996 = load volatile i120, i120* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 2, i32 0) to i120*), align 1
-  %5997 = shl i120 %5996, 101
-  %5998 = ashr exact i120 %5997, 69
-  %5999 = trunc i120 %5998 to i64
-  %6000 = ashr exact i64 %5999, 32
-  call fastcc void @transparent_crc(i64 %6000, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3018, i64 0, i64 0), i32 signext undef)
-  %6001 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 3, i32 0), align 2, !tbaa !45
-  %6002 = zext i8 %6001 to i64
-  call fastcc void @transparent_crc(i64 %6002, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3019, i64 0, i64 0), i32 signext undef)
-  %6003 = load i8, i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 3, i32 1), align 1, !tbaa !46
-  %6004 = sext i8 %6003 to i64
-  call fastcc void @transparent_crc(i64 %6004, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3020, i64 0, i64 0), i32 signext undef)
-  %6005 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 3, i32 2), align 2, !tbaa !47
-  %6006 = sext i16 %6005 to i64
-  call fastcc void @transparent_crc(i64 %6006, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3021, i64 0, i64 0), i32 signext undef)
-  %6007 = load i64, i64* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 3, i32 3), align 2, !tbaa !48
-  call fastcc void @transparent_crc(i64 %6007, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3022, i64 0, i64 0), i32 signext undef)
-  %6008 = load i32, i32* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 3, i32 4), align 2, !tbaa !49
-  %6009 = sext i32 %6008 to i64
-  call fastcc void @transparent_crc(i64 %6009, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3023, i64 0, i64 0), i32 signext undef)
-  %6010 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 4, i32 0) to i128*), align 2
-  %6011 = ashr i128 %6010, 99
-  %6012 = shl nsw i128 %6011, 32
-  %6013 = trunc i128 %6012 to i64
-  %6014 = ashr exact i64 %6013, 32
-  call fastcc void @transparent_crc(i64 %6014, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3024, i64 0, i64 0), i32 signext undef)
-  %6015 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 4, i32 0) to i128*), align 2
-  %6016 = shl i128 %6015, 29
-  %6017 = ashr i128 %6016, 97
-  %6018 = shl nsw i128 %6017, 32
-  %6019 = trunc i128 %6018 to i64
-  %6020 = ashr exact i64 %6019, 32
-  call fastcc void @transparent_crc(i64 %6020, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3025, i64 0, i64 0), i32 signext undef)
-  %6021 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 4, i32 0) to i128*), align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3037, i64 0, i64 0), i32 signext undef)
-  %6022 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2972, i64 0, i32 5, i32 1) to i80*), align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3086, i64 0, i64 0), i32 signext undef)
-  %6023 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 4, i32 0) to i128*), align 2
-  %6024 = shl i128 %6023, 29
-  %6025 = ashr i128 %6024, 97
-  %6026 = shl nsw i128 %6025, 32
-  %6027 = trunc i128 %6026 to i64
-  %6028 = ashr exact i64 %6027, 32
-  call fastcc void @transparent_crc(i64 %6028, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3087, i64 0, i64 0), i32 signext undef)
-  %6029 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 4, i32 0) to i128*), align 2
-  %6030 = shl i128 %6029, 60
-  %6031 = ashr i128 %6030, 108
-  %6032 = shl nsw i128 %6031, 32
-  %6033 = trunc i128 %6032 to i64
-  %6034 = ashr exact i64 %6033, 32
-  call fastcc void @transparent_crc(i64 %6034, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3088, i64 0, i64 0), i32 signext undef)
-  %6035 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 4, i32 0) to i128*), align 2
-  %6036 = shl i128 %6035, 80
-  %6037 = ashr i128 %6036, 110
-  %6038 = shl nsw i128 %6037, 32
-  %6039 = trunc i128 %6038 to i64
+  call fastcc void @transparent_crc(i64 %5981, ptr @.str.3018, i32 signext undef)
+  %5982 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 3, i32 0), align 2, !tbaa !45
+  %5983 = zext i8 %5982 to i64
+  call fastcc void @transparent_crc(i64 %5983, ptr @.str.3019, i32 signext undef)
+  %5984 = load i8, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 3, i32 1), align 1, !tbaa !46
+  %5985 = sext i8 %5984 to i64
+  call fastcc void @transparent_crc(i64 %5985, ptr @.str.3020, i32 signext undef)
+  %5986 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 3, i32 2), align 2, !tbaa !47
+  %5987 = sext i16 %5986 to i64
+  call fastcc void @transparent_crc(i64 %5987, ptr @.str.3021, i32 signext undef)
+  %5988 = load i64, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 3, i32 3), align 2, !tbaa !48
+  call fastcc void @transparent_crc(i64 %5988, ptr @.str.3022, i32 signext undef)
+  %5989 = load i32, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 3, i32 4), align 2, !tbaa !49
+  %5990 = sext i32 %5989 to i64
+  call fastcc void @transparent_crc(i64 %5990, ptr @.str.3023, i32 signext undef)
+  %5991 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 4, i32 0), align 2
+  %5992 = ashr i128 %5991, 99
+  %5993 = shl nsw i128 %5992, 32
+  %5994 = trunc i128 %5993 to i64
+  %5995 = ashr exact i64 %5994, 32
+  call fastcc void @transparent_crc(i64 %5995, ptr @.str.3024, i32 signext undef)
+  %5996 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 4, i32 0), align 2
+  %5997 = shl i128 %5996, 29
+  %5998 = ashr i128 %5997, 97
+  %5999 = shl nsw i128 %5998, 32
+  %6000 = trunc i128 %5999 to i64
+  %6001 = ashr exact i64 %6000, 32
+  call fastcc void @transparent_crc(i64 %6001, ptr @.str.3025, i32 signext undef)
+  %6002 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 4, i32 0), align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3037, i32 signext undef)
+  %6003 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2972, i64 0, i32 5, i32 1), align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3086, i32 signext undef)
+  %6004 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 4, i32 0), align 2
+  %6005 = shl i128 %6004, 29
+  %6006 = ashr i128 %6005, 97
+  %6007 = shl nsw i128 %6006, 32
+  %6008 = trunc i128 %6007 to i64
+  %6009 = ashr exact i64 %6008, 32
+  call fastcc void @transparent_crc(i64 %6009, ptr @.str.3087, i32 signext undef)
+  %6010 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 4, i32 0), align 2
+  %6011 = shl i128 %6010, 60
+  %6012 = ashr i128 %6011, 108
+  %6013 = shl nsw i128 %6012, 32
+  %6014 = trunc i128 %6013 to i64
+  %6015 = ashr exact i64 %6014, 32
+  call fastcc void @transparent_crc(i64 %6015, ptr @.str.3088, i32 signext undef)
+  %6016 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 4, i32 0), align 2
+  %6017 = shl i128 %6016, 80
+  %6018 = ashr i128 %6017, 110
+  %6019 = shl nsw i128 %6018, 32
+  %6020 = trunc i128 %6019 to i64
+  %6021 = ashr exact i64 %6020, 32
+  call fastcc void @transparent_crc(i64 %6021, ptr @.str.3089, i32 signext undef)
+  %6022 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 4, i32 0), align 2
+  %6023 = lshr i128 %6022, 28
+  %6024 = trunc i128 %6023 to i64
+  %6025 = and i64 %6024, 3
+  call fastcc void @transparent_crc(i64 %6025, ptr @.str.3090, i32 signext undef)
+  %6026 = load volatile i128, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 4, i32 0), align 2
+  %6027 = shl i128 %6026, 100
+  %6028 = ashr i128 %6027, 107
+  %6029 = shl nsw i128 %6028, 32
+  %6030 = trunc i128 %6029 to i64
+  %6031 = ashr exact i64 %6030, 32
+  call fastcc void @transparent_crc(i64 %6031, ptr @.str.3091, i32 signext undef)
+  %6032 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 0, i32 0), align 2
+  %6033 = lshr i80 %6032, 57
+  %6034 = trunc i80 %6033 to i64
+  call fastcc void @transparent_crc(i64 %6034, ptr @.str.3092, i32 signext undef)
+  %6035 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 0, i32 0), align 2
+  %6036 = shl i80 %6035, 23
+  %6037 = ashr i80 %6036, 64
+  %6038 = shl nsw i80 %6037, 32
+  %6039 = trunc i80 %6038 to i64
   %6040 = ashr exact i64 %6039, 32
-  call fastcc void @transparent_crc(i64 %6040, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3089, i64 0, i64 0), i32 signext undef)
-  %6041 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 4, i32 0) to i128*), align 2
-  %6042 = lshr i128 %6041, 28
-  %6043 = trunc i128 %6042 to i64
-  %6044 = and i64 %6043, 3
-  call fastcc void @transparent_crc(i64 %6044, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3090, i64 0, i64 0), i32 signext undef)
-  %6045 = load volatile i128, i128* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 4, i32 0) to i128*), align 2
-  %6046 = shl i128 %6045, 100
-  %6047 = ashr i128 %6046, 107
-  %6048 = shl nsw i128 %6047, 32
-  %6049 = trunc i128 %6048 to i64
-  %6050 = ashr exact i64 %6049, 32
-  call fastcc void @transparent_crc(i64 %6050, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3091, i64 0, i64 0), i32 signext undef)
-  %6051 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %6052 = lshr i80 %6051, 57
-  %6053 = trunc i80 %6052 to i64
-  call fastcc void @transparent_crc(i64 %6053, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3092, i64 0, i64 0), i32 signext undef)
-  %6054 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %6055 = shl i80 %6054, 23
-  %6056 = ashr i80 %6055, 64
-  %6057 = shl nsw i80 %6056, 32
+  call fastcc void @transparent_crc(i64 %6040, ptr @.str.3093, i32 signext undef)
+  %6041 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 0, i32 0), align 2
+  %6042 = shl i80 %6041, 39
+  %6043 = ashr i80 %6042, 62
+  %6044 = shl nsw i80 %6043, 32
+  %6045 = trunc i80 %6044 to i64
+  %6046 = ashr exact i64 %6045, 32
+  call fastcc void @transparent_crc(i64 %6046, ptr @.str.3094, i32 signext undef)
+  %6047 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 0, i32 0), align 2
+  %6048 = shl i80 %6047, 57
+  %6049 = ashr i80 %6048, 58
+  %6050 = shl nsw i80 %6049, 32
+  %6051 = trunc i80 %6050 to i64
+  %6052 = ashr exact i64 %6051, 32
+  call fastcc void @transparent_crc(i64 %6052, ptr @.str.3095, i32 signext undef)
+  %6053 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 1), align 2
+  %6054 = lshr i80 %6053, 49
+  %6055 = trunc i80 %6054 to i64
+  call fastcc void @transparent_crc(i64 %6055, ptr @.str.3096, i32 signext undef)
+  %6056 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 1), align 2
+  %6057 = lshr i80 %6056, 24
   %6058 = trunc i80 %6057 to i64
-  %6059 = ashr exact i64 %6058, 32
-  call fastcc void @transparent_crc(i64 %6059, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3093, i64 0, i64 0), i32 signext undef)
-  %6060 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %6061 = shl i80 %6060, 39
-  %6062 = ashr i80 %6061, 62
+  %6059 = and i64 %6058, 33554431
+  call fastcc void @transparent_crc(i64 %6059, ptr @.str.3097, i32 signext undef)
+  %6060 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 1), align 2
+  %6061 = shl i80 %6060, 56
+  %6062 = ashr i80 %6061, 68
   %6063 = shl nsw i80 %6062, 32
   %6064 = trunc i80 %6063 to i64
   %6065 = ashr exact i64 %6064, 32
-  call fastcc void @transparent_crc(i64 %6065, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3094, i64 0, i64 0), i32 signext undef)
-  %6066 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 0, i32 0) to i80*), align 2
-  %6067 = shl i80 %6066, 57
-  %6068 = ashr i80 %6067, 58
-  %6069 = shl nsw i80 %6068, 32
-  %6070 = trunc i80 %6069 to i64
-  %6071 = ashr exact i64 %6070, 32
-  call fastcc void @transparent_crc(i64 %6071, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3095, i64 0, i64 0), i32 signext undef)
-  %6072 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 1) to i80*), align 2
-  %6073 = lshr i80 %6072, 49
+  call fastcc void @transparent_crc(i64 %6065, ptr @.str.3098, i32 signext undef)
+  %6066 = load i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 1), align 2
+  %6067 = lshr i80 %6066, 11
+  %6068 = trunc i80 %6067 to i64
+  %6069 = and i64 %6068, 1
+  call fastcc void @transparent_crc(i64 %6069, ptr @.str.3099, i32 signext undef)
+  %6070 = load volatile i80, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 5, i32 1), align 2
+  %6071 = shl i80 %6070, 69
+  %6072 = ashr i80 %6071, 72
+  %6073 = shl nsw i80 %6072, 32
   %6074 = trunc i80 %6073 to i64
-  call fastcc void @transparent_crc(i64 %6074, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3096, i64 0, i64 0), i32 signext undef)
-  %6075 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 1) to i80*), align 2
-  %6076 = lshr i80 %6075, 24
-  %6077 = trunc i80 %6076 to i64
-  %6078 = and i64 %6077, 33554431
-  call fastcc void @transparent_crc(i64 %6078, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3097, i64 0, i64 0), i32 signext undef)
-  %6079 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 1) to i80*), align 2
-  %6080 = shl i80 %6079, 56
-  %6081 = ashr i80 %6080, 68
-  %6082 = shl nsw i80 %6081, 32
-  %6083 = trunc i80 %6082 to i64
-  %6084 = ashr exact i64 %6083, 32
-  call fastcc void @transparent_crc(i64 %6084, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3098, i64 0, i64 0), i32 signext undef)
-  %6085 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 1) to i80*), align 2
-  %6086 = lshr i80 %6085, 11
-  %6087 = trunc i80 %6086 to i64
-  %6088 = and i64 %6087, 1
-  call fastcc void @transparent_crc(i64 %6088, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3099, i64 0, i64 0), i32 signext undef)
-  %6089 = load volatile i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 5, i32 1) to i80*), align 2
-  %6090 = shl i80 %6089, 69
-  %6091 = ashr i80 %6090, 72
-  %6092 = shl nsw i80 %6091, 32
-  %6093 = trunc i80 %6092 to i64
-  %6094 = ashr exact i64 %6093, 32
-  call fastcc void @transparent_crc(i64 %6094, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3100, i64 0, i64 0), i32 signext undef)
-  %6095 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 6), align 2, !tbaa !50
-  %6096 = sext i16 %6095 to i64
-  call fastcc void @transparent_crc(i64 %6096, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3101, i64 0, i64 0), i32 signext undef)
-  %6097 = load i16, i16* getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>* @g_2974, i64 0, i32 7), align 2, !tbaa !51
-  %6098 = zext i16 %6097 to i64
-  call fastcc void @transparent_crc(i64 %6098, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3102, i64 0, i64 0), i32 signext undef)
-  %6099 = load i16, i16* undef, align 2, !tbaa !24
-  %6100 = sext i16 %6099 to i64
-  call fastcc void @transparent_crc(i64 %6100, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3103, i64 0, i64 0), i32 signext undef)
-  %6101 = getelementptr inbounds [4 x %5], [4 x %5]* bitcast (<{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>* @g_2975 to [4 x %5]*), i64 0, i64 0, i32 1
-  %6102 = load i8, i8* %6101, align 2, !tbaa !52
-  %6103 = sext i8 %6102 to i64
-  call fastcc void @transparent_crc(i64 %6103, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3104, i64 0, i64 0), i32 signext undef)
-  %6104 = load volatile i120, i120* undef, align 1
-  %6105 = lshr i120 %6104, 107
-  %6106 = trunc i120 %6105 to i64
-  call fastcc void @transparent_crc(i64 %6106, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3105, i64 0, i64 0), i32 signext undef)
-  %6107 = load volatile i120, i120* undef, align 1
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3122, i64 0, i64 0), i32 signext undef)
-  %6108 = load volatile i80, i80* undef, align 2
-  %6109 = lshr i80 %6108, 57
-  %6110 = trunc i80 %6109 to i64
-  call fastcc void @transparent_crc(i64 %6110, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3123, i64 0, i64 0), i32 signext undef)
-  %6111 = load volatile i80, i80* undef, align 2
-  %6112 = shl i80 %6111, 23
-  %6113 = ashr i80 %6112, 64
-  %6114 = shl nsw i80 %6113, 32
-  %6115 = trunc i80 %6114 to i64
-  %6116 = ashr exact i64 %6115, 32
-  call fastcc void @transparent_crc(i64 %6116, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3124, i64 0, i64 0), i32 signext undef)
-  %6117 = load volatile i80, i80* undef, align 2
-  %6118 = shl i80 %6117, 39
-  %6119 = ashr i80 %6118, 62
-  %6120 = shl nsw i80 %6119, 32
-  %6121 = trunc i80 %6120 to i64
-  %6122 = ashr exact i64 %6121, 32
-  call fastcc void @transparent_crc(i64 %6122, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3125, i64 0, i64 0), i32 signext undef)
-  %6123 = load volatile i80, i80* undef, align 2
-  %6124 = shl i80 %6123, 57
-  %6125 = ashr i80 %6124, 58
-  %6126 = shl nsw i80 %6125, 32
-  %6127 = trunc i80 %6126 to i64
-  %6128 = ashr exact i64 %6127, 32
-  call fastcc void @transparent_crc(i64 %6128, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3126, i64 0, i64 0), i32 signext undef)
-  %6129 = load i80, i80* undef, align 2
-  %6130 = lshr i80 %6129, 49
-  %6131 = trunc i80 %6130 to i64
-  call fastcc void @transparent_crc(i64 %6131, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3127, i64 0, i64 0), i32 signext undef)
-  %6132 = load volatile i80, i80* undef, align 2
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3128, i64 0, i64 0), i32 signext undef)
-  %6133 = load i80, i80* undef, align 2
-  %6134 = shl i80 %6133, 56
-  %6135 = ashr i80 %6134, 68
-  %6136 = shl nsw i80 %6135, 32
-  %6137 = trunc i80 %6136 to i64
-  %6138 = ashr exact i64 %6137, 32
-  call fastcc void @transparent_crc(i64 %6138, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3129, i64 0, i64 0), i32 signext undef)
-  %6139 = load i80, i80* undef, align 2
-  %6140 = lshr i80 %6139, 11
-  %6141 = trunc i80 %6140 to i64
-  %6142 = and i64 %6141, 1
-  call fastcc void @transparent_crc(i64 %6142, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3130, i64 0, i64 0), i32 signext undef)
-  %6143 = load volatile i80, i80* undef, align 2
-  %6144 = shl i80 %6143, 69
-  %6145 = ashr i80 %6144, 72
-  %6146 = shl nsw i80 %6145, 32
-  %6147 = trunc i80 %6146 to i64
-  %6148 = ashr exact i64 %6147, 32
-  call fastcc void @transparent_crc(i64 %6148, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3131, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3132, i64 0, i64 0), i32 signext undef)
-  %6149 = load i16, i16* undef, align 2, !tbaa !51
-  %6150 = zext i16 %6149 to i64
-  call fastcc void @transparent_crc(i64 %6150, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3133, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 1, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3134, i64 0, i64 0), i32 signext undef)
-  %6151 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6152 = lshr i120 %6151, 107
+  %6075 = ashr exact i64 %6074, 32
+  call fastcc void @transparent_crc(i64 %6075, ptr @.str.3100, i32 signext undef)
+  %6076 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 6), align 2, !tbaa !50
+  %6077 = sext i16 %6076 to i64
+  call fastcc void @transparent_crc(i64 %6077, ptr @.str.3101, i32 signext undef)
+  %6078 = load i16, ptr getelementptr inbounds (<{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, ptr @g_2974, i64 0, i32 7), align 2, !tbaa !51
+  %6079 = zext i16 %6078 to i64
+  call fastcc void @transparent_crc(i64 %6079, ptr @.str.3102, i32 signext undef)
+  %6080 = load i16, ptr undef, align 2, !tbaa !24
+  %6081 = sext i16 %6080 to i64
+  call fastcc void @transparent_crc(i64 %6081, ptr @.str.3103, i32 signext undef)
+  %6082 = getelementptr inbounds [4 x %5], ptr bitcast (<{ <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }>, <{ i16, i8, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, %0, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i16, i16 }> }>* @g_2975 to ptr), i64 0, i64 0, i32 1
+  %6083 = load i8, ptr %6082, align 2, !tbaa !52
+  %6084 = sext i8 %6083 to i64
+  call fastcc void @transparent_crc(i64 %6084, ptr @.str.3104, i32 signext undef)
+  %6085 = load volatile i120, ptr undef, align 1
+  %6086 = lshr i120 %6085, 107
+  %6087 = trunc i120 %6086 to i64
+  call fastcc void @transparent_crc(i64 %6087, ptr @.str.3105, i32 signext undef)
+  %6088 = load volatile i120, ptr undef, align 1
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3122, i32 signext undef)
+  %6089 = load volatile i80, ptr undef, align 2
+  %6090 = lshr i80 %6089, 57
+  %6091 = trunc i80 %6090 to i64
+  call fastcc void @transparent_crc(i64 %6091, ptr @.str.3123, i32 signext undef)
+  %6092 = load volatile i80, ptr undef, align 2
+  %6093 = shl i80 %6092, 23
+  %6094 = ashr i80 %6093, 64
+  %6095 = shl nsw i80 %6094, 32
+  %6096 = trunc i80 %6095 to i64
+  %6097 = ashr exact i64 %6096, 32
+  call fastcc void @transparent_crc(i64 %6097, ptr @.str.3124, i32 signext undef)
+  %6098 = load volatile i80, ptr undef, align 2
+  %6099 = shl i80 %6098, 39
+  %6100 = ashr i80 %6099, 62
+  %6101 = shl nsw i80 %6100, 32
+  %6102 = trunc i80 %6101 to i64
+  %6103 = ashr exact i64 %6102, 32
+  call fastcc void @transparent_crc(i64 %6103, ptr @.str.3125, i32 signext undef)
+  %6104 = load volatile i80, ptr undef, align 2
+  %6105 = shl i80 %6104, 57
+  %6106 = ashr i80 %6105, 58
+  %6107 = shl nsw i80 %6106, 32
+  %6108 = trunc i80 %6107 to i64
+  %6109 = ashr exact i64 %6108, 32
+  call fastcc void @transparent_crc(i64 %6109, ptr @.str.3126, i32 signext undef)
+  %6110 = load i80, ptr undef, align 2
+  %6111 = lshr i80 %6110, 49
+  %6112 = trunc i80 %6111 to i64
+  call fastcc void @transparent_crc(i64 %6112, ptr @.str.3127, i32 signext undef)
+  %6113 = load volatile i80, ptr undef, align 2
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3128, i32 signext undef)
+  %6114 = load i80, ptr undef, align 2
+  %6115 = shl i80 %6114, 56
+  %6116 = ashr i80 %6115, 68
+  %6117 = shl nsw i80 %6116, 32
+  %6118 = trunc i80 %6117 to i64
+  %6119 = ashr exact i64 %6118, 32
+  call fastcc void @transparent_crc(i64 %6119, ptr @.str.3129, i32 signext undef)
+  %6120 = load i80, ptr undef, align 2
+  %6121 = lshr i80 %6120, 11
+  %6122 = trunc i80 %6121 to i64
+  %6123 = and i64 %6122, 1
+  call fastcc void @transparent_crc(i64 %6123, ptr @.str.3130, i32 signext undef)
+  %6124 = load volatile i80, ptr undef, align 2
+  %6125 = shl i80 %6124, 69
+  %6126 = ashr i80 %6125, 72
+  %6127 = shl nsw i80 %6126, 32
+  %6128 = trunc i80 %6127 to i64
+  %6129 = ashr exact i64 %6128, 32
+  call fastcc void @transparent_crc(i64 %6129, ptr @.str.3131, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3132, i32 signext undef)
+  %6130 = load i16, ptr undef, align 2, !tbaa !51
+  %6131 = zext i16 %6130 to i64
+  call fastcc void @transparent_crc(i64 %6131, ptr @.str.3133, i32 signext undef)
+  call fastcc void @transparent_crc(i64 1, ptr @.str.3134, i32 signext undef)
+  %6132 = load i120, ptr @g_2986, align 8
+  %6133 = lshr i120 %6132, 107
+  %6134 = trunc i120 %6133 to i64
+  call fastcc void @transparent_crc(i64 %6134, ptr @.str.3135, i32 signext undef)
+  %6135 = load i120, ptr @g_2986, align 8
+  %6136 = lshr i120 %6135, 78
+  %6137 = trunc i120 %6136 to i64
+  %6138 = and i64 %6137, 536870911
+  call fastcc void @transparent_crc(i64 %6138, ptr @.str.3136, i32 signext undef)
+  %6139 = load i120, ptr @g_2986, align 8
+  %6140 = shl i120 %6139, 42
+  %6141 = ashr i120 %6140, 104
+  %6142 = shl nsw i120 %6141, 32
+  %6143 = trunc i120 %6142 to i64
+  %6144 = ashr exact i64 %6143, 32
+  call fastcc void @transparent_crc(i64 %6144, ptr @.str.3137, i32 signext undef)
+  %6145 = load volatile i120, ptr @g_2986, align 8
+  %6146 = shl i120 %6145, 58
+  %6147 = ashr i120 %6146, 105
+  %6148 = shl nsw i120 %6147, 32
+  %6149 = trunc i120 %6148 to i64
+  %6150 = ashr exact i64 %6149, 32
+  call fastcc void @transparent_crc(i64 %6150, ptr @.str.3138, i32 signext undef)
+  %6151 = load volatile i120, ptr @g_2986, align 8
+  %6152 = lshr i120 %6151, 41
   %6153 = trunc i120 %6152 to i64
-  call fastcc void @transparent_crc(i64 %6153, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3135, i64 0, i64 0), i32 signext undef)
-  %6154 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6155 = lshr i120 %6154, 78
-  %6156 = trunc i120 %6155 to i64
-  %6157 = and i64 %6156, 536870911
-  call fastcc void @transparent_crc(i64 %6157, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3136, i64 0, i64 0), i32 signext undef)
-  %6158 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6159 = shl i120 %6158, 42
-  %6160 = ashr i120 %6159, 104
-  %6161 = shl nsw i120 %6160, 32
+  %6154 = and i64 %6153, 63
+  call fastcc void @transparent_crc(i64 %6154, ptr @.str.3139, i32 signext undef)
+  %6155 = load i120, ptr @g_2986, align 8
+  %6156 = lshr i120 %6155, 19
+  %6157 = trunc i120 %6156 to i64
+  %6158 = and i64 %6157, 4194303
+  call fastcc void @transparent_crc(i64 %6158, ptr @.str.3140, i32 signext undef)
+  %6159 = load i120, ptr @g_2986, align 8
+  %6160 = shl i120 %6159, 101
+  %6161 = ashr exact i120 %6160, 69
   %6162 = trunc i120 %6161 to i64
   %6163 = ashr exact i64 %6162, 32
-  call fastcc void @transparent_crc(i64 %6163, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3137, i64 0, i64 0), i32 signext undef)
-  %6164 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6165 = shl i120 %6164, 58
-  %6166 = ashr i120 %6165, 105
-  %6167 = shl nsw i120 %6166, 32
-  %6168 = trunc i120 %6167 to i64
-  %6169 = ashr exact i64 %6168, 32
-  call fastcc void @transparent_crc(i64 %6169, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3138, i64 0, i64 0), i32 signext undef)
-  %6170 = load volatile i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6171 = lshr i120 %6170, 41
-  %6172 = trunc i120 %6171 to i64
-  %6173 = and i64 %6172, 63
-  call fastcc void @transparent_crc(i64 %6173, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3139, i64 0, i64 0), i32 signext undef)
-  %6174 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6175 = lshr i120 %6174, 19
-  %6176 = trunc i120 %6175 to i64
-  %6177 = and i64 %6176, 4194303
-  call fastcc void @transparent_crc(i64 %6177, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3140, i64 0, i64 0), i32 signext undef)
-  %6178 = load i120, i120* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_2986 to i120*), align 8
-  %6179 = shl i120 %6178, 101
-  %6180 = ashr exact i120 %6179, 69
-  %6181 = trunc i120 %6180 to i64
-  %6182 = ashr exact i64 %6181, 32
-  call fastcc void @transparent_crc(i64 %6182, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3141, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 440374213169866530, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3142, i64 0, i64 0), i32 signext undef)
-  %6183 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 0), align 4, !tbaa !34
-  %6184 = zext i32 %6183 to i64
-  call fastcc void @transparent_crc(i64 %6184, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3143, i64 0, i64 0), i32 signext undef)
-  %6185 = load i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 1), align 4, !tbaa !6
-  %6186 = sext i8 %6185 to i64
-  call fastcc void @transparent_crc(i64 %6186, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3144, i64 0, i64 0), i32 signext undef)
-  %6187 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3145, i64 0, i64 0), i32 signext undef)
-  %6188 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 3), align 4, !tbaa !33
-  %6189 = zext i32 %6188 to i64
-  call fastcc void @transparent_crc(i64 %6189, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3146, i64 0, i64 0), i32 signext undef)
-  %6190 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6191 = lshr i80 %6190, 57
-  %6192 = trunc i80 %6191 to i64
-  call fastcc void @transparent_crc(i64 %6192, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3147, i64 0, i64 0), i32 signext undef)
-  %6193 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6194 = shl i80 %6193, 23
-  %6195 = ashr i80 %6194, 64
-  %6196 = shl nsw i80 %6195, 32
-  %6197 = trunc i80 %6196 to i64
-  %6198 = ashr exact i64 %6197, 32
-  call fastcc void @transparent_crc(i64 %6198, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3148, i64 0, i64 0), i32 signext undef)
-  %6199 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6200 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3090, i64 0, i32 4, i32 1) to i80*), align 2
-  %6201 = shl i80 %6200, 69
-  %6202 = ashr i80 %6201, 72
-  %6203 = shl nsw i80 %6202, 32
-  %6204 = trunc i80 %6203 to i64
-  %6205 = ashr exact i64 %6204, 32
-  call fastcc void @transparent_crc(i64 %6205, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3155, i64 0, i64 0), i32 signext undef)
-  %6206 = load i16, i16* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 0), align 2, !tbaa !57
-  %6207 = sext i16 %6206 to i64
-  call fastcc void @transparent_crc(i64 %6207, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3156, i64 0, i64 0), i32 signext undef)
-  %6208 = load i32, i32* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 1), align 2, !tbaa !58
-  %6209 = sext i32 %6208 to i64
-  call fastcc void @transparent_crc(i64 %6209, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3157, i64 0, i64 0), i32 signext undef)
-  %6210 = load volatile i8, i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 2), align 2, !tbaa !59
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3158, i64 0, i64 0), i32 signext undef)
-  %6211 = load i16, i16* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 3), align 1, !tbaa !60
-  %6212 = sext i16 %6211 to i64
-  call fastcc void @transparent_crc(i64 %6212, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3159, i64 0, i64 0), i32 signext undef)
-  %6213 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 4, i32 0) to i80*), align 1
-  %6214 = lshr i80 %6213, 57
-  %6215 = trunc i80 %6214 to i64
-  call fastcc void @transparent_crc(i64 %6215, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3160, i64 0, i64 0), i32 signext undef)
-  %6216 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 4, i32 0) to i80*), align 1
-  %6217 = shl i80 %6216, 23
-  %6218 = ashr i80 %6217, 64
-  %6219 = shl nsw i80 %6218, 32
-  %6220 = trunc i80 %6219 to i64
-  %6221 = ashr exact i64 %6220, 32
-  call fastcc void @transparent_crc(i64 %6221, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3161, i64 0, i64 0), i32 signext undef)
-  %6222 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 4, i32 0) to i80*), align 1
-  %6223 = shl i80 %6222, 39
-  %6224 = ashr i80 %6223, 62
-  %6225 = shl nsw i80 %6224, 32
-  %6226 = trunc i80 %6225 to i64
-  %6227 = ashr exact i64 %6226, 32
-  call fastcc void @transparent_crc(i64 %6227, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3162, i64 0, i64 0), i32 signext undef)
-  %6228 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 4, i32 0) to i80*), align 1
-  %6229 = shl i80 %6228, 57
-  %6230 = ashr i80 %6229, 58
-  %6231 = shl nsw i80 %6230, 32
-  %6232 = trunc i80 %6231 to i64
-  %6233 = ashr exact i64 %6232, 32
-  call fastcc void @transparent_crc(i64 %6233, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3163, i64 0, i64 0), i32 signext undef)
-  %6234 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 5), align 1, !tbaa !54
-  call fastcc void @transparent_crc(i64 %6234, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3164, i64 0, i64 0), i32 signext undef)
-  %6235 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3108, i64 0, i32 6), align 1, !tbaa !56
-  call fastcc void @transparent_crc(i64 %6235, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3165, i64 0, i64 0), i32 signext undef)
-  %6236 = load volatile i80, i80* undef, align 2
-  %6237 = lshr i80 %6236, 57
-  %6238 = trunc i80 %6237 to i64
-  call fastcc void @transparent_crc(i64 %6238, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3166, i64 0, i64 0), i32 signext undef)
-  %6239 = load volatile i80, i80* undef, align 2
-  %6240 = shl i80 %6239, 23
-  %6241 = ashr i80 %6240, 64
-  %6242 = shl nsw i80 %6241, 32
+  call fastcc void @transparent_crc(i64 %6163, ptr @.str.3141, i32 signext undef)
+  call fastcc void @transparent_crc(i64 440374213169866530, ptr @.str.3142, i32 signext undef)
+  %6164 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 0), align 4, !tbaa !34
+  %6165 = zext i32 %6164 to i64
+  call fastcc void @transparent_crc(i64 %6165, ptr @.str.3143, i32 signext undef)
+  %6166 = load i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 1), align 4, !tbaa !6
+  %6167 = sext i8 %6166 to i64
+  call fastcc void @transparent_crc(i64 %6167, ptr @.str.3144, i32 signext undef)
+  %6168 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3145, i32 signext undef)
+  %6169 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 3), align 4, !tbaa !33
+  %6170 = zext i32 %6169 to i64
+  call fastcc void @transparent_crc(i64 %6170, ptr @.str.3146, i32 signext undef)
+  %6171 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 4, i32 0, i32 0), align 4
+  %6172 = lshr i80 %6171, 57
+  %6173 = trunc i80 %6172 to i64
+  call fastcc void @transparent_crc(i64 %6173, ptr @.str.3147, i32 signext undef)
+  %6174 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 4, i32 0, i32 0), align 4
+  %6175 = shl i80 %6174, 23
+  %6176 = ashr i80 %6175, 64
+  %6177 = shl nsw i80 %6176, 32
+  %6178 = trunc i80 %6177 to i64
+  %6179 = ashr exact i64 %6178, 32
+  call fastcc void @transparent_crc(i64 %6179, ptr @.str.3148, i32 signext undef)
+  %6180 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 4, i32 0, i32 0), align 4
+  %6181 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3090, i64 0, i32 4, i32 1), align 2
+  %6182 = shl i80 %6181, 69
+  %6183 = ashr i80 %6182, 72
+  %6184 = shl nsw i80 %6183, 32
+  %6185 = trunc i80 %6184 to i64
+  %6186 = ashr exact i64 %6185, 32
+  call fastcc void @transparent_crc(i64 %6186, ptr @.str.3155, i32 signext undef)
+  %6187 = load i16, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 0), align 2, !tbaa !57
+  %6188 = sext i16 %6187 to i64
+  call fastcc void @transparent_crc(i64 %6188, ptr @.str.3156, i32 signext undef)
+  %6189 = load i32, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 1), align 2, !tbaa !58
+  %6190 = sext i32 %6189 to i64
+  call fastcc void @transparent_crc(i64 %6190, ptr @.str.3157, i32 signext undef)
+  %6191 = load volatile i8, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 2), align 2, !tbaa !59
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3158, i32 signext undef)
+  %6192 = load i16, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 3), align 1, !tbaa !60
+  %6193 = sext i16 %6192 to i64
+  call fastcc void @transparent_crc(i64 %6193, ptr @.str.3159, i32 signext undef)
+  %6194 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 4, i32 0), align 1
+  %6195 = lshr i80 %6194, 57
+  %6196 = trunc i80 %6195 to i64
+  call fastcc void @transparent_crc(i64 %6196, ptr @.str.3160, i32 signext undef)
+  %6197 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 4, i32 0), align 1
+  %6198 = shl i80 %6197, 23
+  %6199 = ashr i80 %6198, 64
+  %6200 = shl nsw i80 %6199, 32
+  %6201 = trunc i80 %6200 to i64
+  %6202 = ashr exact i64 %6201, 32
+  call fastcc void @transparent_crc(i64 %6202, ptr @.str.3161, i32 signext undef)
+  %6203 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 4, i32 0), align 1
+  %6204 = shl i80 %6203, 39
+  %6205 = ashr i80 %6204, 62
+  %6206 = shl nsw i80 %6205, 32
+  %6207 = trunc i80 %6206 to i64
+  %6208 = ashr exact i64 %6207, 32
+  call fastcc void @transparent_crc(i64 %6208, ptr @.str.3162, i32 signext undef)
+  %6209 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 4, i32 0), align 1
+  %6210 = shl i80 %6209, 57
+  %6211 = ashr i80 %6210, 58
+  %6212 = shl nsw i80 %6211, 32
+  %6213 = trunc i80 %6212 to i64
+  %6214 = ashr exact i64 %6213, 32
+  call fastcc void @transparent_crc(i64 %6214, ptr @.str.3163, i32 signext undef)
+  %6215 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 5), align 1, !tbaa !54
+  call fastcc void @transparent_crc(i64 %6215, ptr @.str.3164, i32 signext undef)
+  %6216 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3108, i64 0, i32 6), align 1, !tbaa !56
+  call fastcc void @transparent_crc(i64 %6216, ptr @.str.3165, i32 signext undef)
+  %6217 = load volatile i80, ptr undef, align 2
+  %6218 = lshr i80 %6217, 57
+  %6219 = trunc i80 %6218 to i64
+  call fastcc void @transparent_crc(i64 %6219, ptr @.str.3166, i32 signext undef)
+  %6220 = load volatile i80, ptr undef, align 2
+  %6221 = shl i80 %6220, 23
+  %6222 = ashr i80 %6221, 64
+  %6223 = shl nsw i80 %6222, 32
+  %6224 = trunc i80 %6223 to i64
+  %6225 = ashr exact i64 %6224, 32
+  call fastcc void @transparent_crc(i64 %6225, ptr @.str.3167, i32 signext undef)
+  %6226 = load volatile i80, ptr undef, align 2
+  %6227 = shl i80 %6226, 39
+  %6228 = ashr i80 %6227, 62
+  %6229 = shl nsw i80 %6228, 32
+  %6230 = trunc i80 %6229 to i64
+  %6231 = ashr exact i64 %6230, 32
+  call fastcc void @transparent_crc(i64 %6231, ptr @.str.3168, i32 signext undef)
+  %6232 = load volatile i80, ptr undef, align 2
+  %6233 = shl i80 %6232, 57
+  %6234 = ashr i80 %6233, 58
+  %6235 = shl nsw i80 %6234, 32
+  %6236 = trunc i80 %6235 to i64
+  %6237 = ashr exact i64 %6236, 32
+  call fastcc void @transparent_crc(i64 %6237, ptr @.str.3169, i32 signext undef)
+  %6238 = load i80, ptr undef, align 2
+  %6239 = lshr i80 %6238, 49
+  %6240 = trunc i80 %6239 to i64
+  call fastcc void @transparent_crc(i64 %6240, ptr @.str.3170, i32 signext undef)
+  %6241 = load volatile i80, ptr undef, align 2
+  %6242 = lshr i80 %6241, 24
   %6243 = trunc i80 %6242 to i64
-  %6244 = ashr exact i64 %6243, 32
-  call fastcc void @transparent_crc(i64 %6244, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3167, i64 0, i64 0), i32 signext undef)
-  %6245 = load volatile i80, i80* undef, align 2
-  %6246 = shl i80 %6245, 39
-  %6247 = ashr i80 %6246, 62
+  %6244 = and i64 %6243, 33554431
+  call fastcc void @transparent_crc(i64 %6244, ptr @.str.3171, i32 signext undef)
+  %6245 = load i80, ptr undef, align 2
+  %6246 = shl i80 %6245, 56
+  %6247 = ashr i80 %6246, 68
   %6248 = shl nsw i80 %6247, 32
   %6249 = trunc i80 %6248 to i64
   %6250 = ashr exact i64 %6249, 32
-  call fastcc void @transparent_crc(i64 %6250, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3168, i64 0, i64 0), i32 signext undef)
-  %6251 = load volatile i80, i80* undef, align 2
-  %6252 = shl i80 %6251, 57
-  %6253 = ashr i80 %6252, 58
+  call fastcc void @transparent_crc(i64 %6250, ptr @.str.3172, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3166, i32 signext undef)
+  %6251 = load volatile i80, ptr undef, align 2
+  %6252 = shl i80 %6251, 23
+  %6253 = ashr i80 %6252, 64
   %6254 = shl nsw i80 %6253, 32
   %6255 = trunc i80 %6254 to i64
   %6256 = ashr exact i64 %6255, 32
-  call fastcc void @transparent_crc(i64 %6256, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3169, i64 0, i64 0), i32 signext undef)
-  %6257 = load i80, i80* undef, align 2
-  %6258 = lshr i80 %6257, 49
-  %6259 = trunc i80 %6258 to i64
-  call fastcc void @transparent_crc(i64 %6259, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3170, i64 0, i64 0), i32 signext undef)
-  %6260 = load volatile i80, i80* undef, align 2
-  %6261 = lshr i80 %6260, 24
-  %6262 = trunc i80 %6261 to i64
-  %6263 = and i64 %6262, 33554431
-  call fastcc void @transparent_crc(i64 %6263, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3171, i64 0, i64 0), i32 signext undef)
-  %6264 = load i80, i80* undef, align 2
-  %6265 = shl i80 %6264, 56
-  %6266 = ashr i80 %6265, 68
-  %6267 = shl nsw i80 %6266, 32
-  %6268 = trunc i80 %6267 to i64
-  %6269 = ashr exact i64 %6268, 32
-  call fastcc void @transparent_crc(i64 %6269, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3172, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3166, i64 0, i64 0), i32 signext undef)
-  %6270 = load volatile i80, i80* undef, align 2
-  %6271 = shl i80 %6270, 23
-  %6272 = ashr i80 %6271, 64
-  %6273 = shl nsw i80 %6272, 32
+  call fastcc void @transparent_crc(i64 %6256, ptr @.str.3167, i32 signext undef)
+  %6257 = load volatile i80, ptr undef, align 2
+  %6258 = shl i80 %6257, 39
+  %6259 = ashr i80 %6258, 62
+  %6260 = shl nsw i80 %6259, 32
+  %6261 = trunc i80 %6260 to i64
+  %6262 = ashr exact i64 %6261, 32
+  call fastcc void @transparent_crc(i64 %6262, ptr @.str.3168, i32 signext undef)
+  %6263 = load volatile i80, ptr undef, align 2
+  %6264 = shl i80 %6263, 57
+  %6265 = ashr i80 %6264, 58
+  %6266 = shl nsw i80 %6265, 32
+  %6267 = trunc i80 %6266 to i64
+  %6268 = ashr exact i64 %6267, 32
+  call fastcc void @transparent_crc(i64 %6268, ptr @.str.3169, i32 signext undef)
+  %6269 = load i80, ptr undef, align 2
+  %6270 = lshr i80 %6269, 49
+  %6271 = trunc i80 %6270 to i64
+  call fastcc void @transparent_crc(i64 %6271, ptr @.str.3170, i32 signext undef)
+  %6272 = load volatile i80, ptr undef, align 2
+  %6273 = lshr i80 %6272, 24
   %6274 = trunc i80 %6273 to i64
-  %6275 = ashr exact i64 %6274, 32
-  call fastcc void @transparent_crc(i64 %6275, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3167, i64 0, i64 0), i32 signext undef)
-  %6276 = load volatile i80, i80* undef, align 2
-  %6277 = shl i80 %6276, 39
-  %6278 = ashr i80 %6277, 62
+  %6275 = and i64 %6274, 33554431
+  call fastcc void @transparent_crc(i64 %6275, ptr @.str.3171, i32 signext undef)
+  %6276 = load i80, ptr undef, align 2
+  %6277 = shl i80 %6276, 56
+  %6278 = ashr i80 %6277, 68
   %6279 = shl nsw i80 %6278, 32
   %6280 = trunc i80 %6279 to i64
   %6281 = ashr exact i64 %6280, 32
-  call fastcc void @transparent_crc(i64 %6281, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3168, i64 0, i64 0), i32 signext undef)
-  %6282 = load volatile i80, i80* undef, align 2
-  %6283 = shl i80 %6282, 57
-  %6284 = ashr i80 %6283, 58
-  %6285 = shl nsw i80 %6284, 32
-  %6286 = trunc i80 %6285 to i64
-  %6287 = ashr exact i64 %6286, 32
-  call fastcc void @transparent_crc(i64 %6287, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3169, i64 0, i64 0), i32 signext undef)
-  %6288 = load i80, i80* undef, align 2
-  %6289 = lshr i80 %6288, 49
+  call fastcc void @transparent_crc(i64 %6281, ptr @.str.3172, i32 signext undef)
+  %6282 = load i80, ptr undef, align 2
+  %6283 = lshr i80 %6282, 11
+  %6284 = trunc i80 %6283 to i64
+  %6285 = and i64 %6284, 1
+  call fastcc void @transparent_crc(i64 %6285, ptr @.str.3173, i32 signext undef)
+  %6286 = load volatile i80, ptr undef, align 2
+  %6287 = shl i80 %6286, 69
+  %6288 = ashr i80 %6287, 72
+  %6289 = shl nsw i80 %6288, 32
   %6290 = trunc i80 %6289 to i64
-  call fastcc void @transparent_crc(i64 %6290, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3170, i64 0, i64 0), i32 signext undef)
-  %6291 = load volatile i80, i80* undef, align 2
-  %6292 = lshr i80 %6291, 24
-  %6293 = trunc i80 %6292 to i64
-  %6294 = and i64 %6293, 33554431
-  call fastcc void @transparent_crc(i64 %6294, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3171, i64 0, i64 0), i32 signext undef)
-  %6295 = load i80, i80* undef, align 2
-  %6296 = shl i80 %6295, 56
-  %6297 = ashr i80 %6296, 68
+  %6291 = ashr exact i64 %6290, 32
+  call fastcc void @transparent_crc(i64 %6291, ptr @.str.3174, i32 signext undef)
+  %6292 = load volatile i80, ptr undef, align 2
+  %6293 = lshr i80 %6292, 57
+  %6294 = trunc i80 %6293 to i64
+  call fastcc void @transparent_crc(i64 %6294, ptr @.str.3166, i32 signext undef)
+  %6295 = load volatile i80, ptr undef, align 2
+  %6296 = shl i80 %6295, 23
+  %6297 = ashr i80 %6296, 64
   %6298 = shl nsw i80 %6297, 32
   %6299 = trunc i80 %6298 to i64
   %6300 = ashr exact i64 %6299, 32
-  call fastcc void @transparent_crc(i64 %6300, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3172, i64 0, i64 0), i32 signext undef)
-  %6301 = load i80, i80* undef, align 2
-  %6302 = lshr i80 %6301, 11
-  %6303 = trunc i80 %6302 to i64
-  %6304 = and i64 %6303, 1
-  call fastcc void @transparent_crc(i64 %6304, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3173, i64 0, i64 0), i32 signext undef)
-  %6305 = load volatile i80, i80* undef, align 2
-  %6306 = shl i80 %6305, 69
-  %6307 = ashr i80 %6306, 72
-  %6308 = shl nsw i80 %6307, 32
-  %6309 = trunc i80 %6308 to i64
-  %6310 = ashr exact i64 %6309, 32
-  call fastcc void @transparent_crc(i64 %6310, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3174, i64 0, i64 0), i32 signext undef)
-  %6311 = load volatile i80, i80* undef, align 2
-  %6312 = lshr i80 %6311, 57
-  %6313 = trunc i80 %6312 to i64
-  call fastcc void @transparent_crc(i64 %6313, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3166, i64 0, i64 0), i32 signext undef)
-  %6314 = load volatile i80, i80* undef, align 2
-  %6315 = shl i80 %6314, 23
-  %6316 = ashr i80 %6315, 64
-  %6317 = shl nsw i80 %6316, 32
-  %6318 = trunc i80 %6317 to i64
-  %6319 = ashr exact i64 %6318, 32
-  call fastcc void @transparent_crc(i64 %6319, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3167, i64 0, i64 0), i32 signext undef)
-  %6320 = load volatile i80, i80* undef, align 2
-  %6321 = shl i80 %6320, 39
-  %6322 = ashr i80 %6321, 62
-  %6323 = shl nsw i80 %6322, 32
-  %6324 = trunc i80 %6323 to i64
-  %6325 = ashr exact i64 %6324, 32
-  call fastcc void @transparent_crc(i64 %6325, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3168, i64 0, i64 0), i32 signext undef)
-  %6326 = load volatile i80, i80* undef, align 2
-  %6327 = shl i80 %6326, 57
-  %6328 = ashr i80 %6327, 58
-  %6329 = shl nsw i80 %6328, 32
-  %6330 = trunc i80 %6329 to i64
-  %6331 = ashr exact i64 %6330, 32
-  call fastcc void @transparent_crc(i64 %6331, i8* getelementptr inbounds ([22 x i8], [22 x i8]* @.str.3169, i64 0, i64 0), i32 signext undef)
-  %6332 = getelementptr inbounds [10 x [7 x [3 x %4]]], [10 x [7 x [3 x %4]]]* bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_3202 to [10 x [7 x [3 x %4]]]*), i64 0, i64 0, i64 0, i64 2, i32 1
-  %6333 = bitcast [10 x i8]* %6332 to i80*
-  %6334 = load i80, i80* %6333, align 2
-  %6335 = lshr i80 %6334, 49
-  %6336 = trunc i80 %6335 to i64
-  call fastcc void @transparent_crc(i64 %6336, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3170, i64 0, i64 0), i32 signext undef)
-  %6337 = load volatile i80, i80* %6333, align 2
-  %6338 = lshr i80 %6337, 24
+  call fastcc void @transparent_crc(i64 %6300, ptr @.str.3167, i32 signext undef)
+  %6301 = load volatile i80, ptr undef, align 2
+  %6302 = shl i80 %6301, 39
+  %6303 = ashr i80 %6302, 62
+  %6304 = shl nsw i80 %6303, 32
+  %6305 = trunc i80 %6304 to i64
+  %6306 = ashr exact i64 %6305, 32
+  call fastcc void @transparent_crc(i64 %6306, ptr @.str.3168, i32 signext undef)
+  %6307 = load volatile i80, ptr undef, align 2
+  %6308 = shl i80 %6307, 57
+  %6309 = ashr i80 %6308, 58
+  %6310 = shl nsw i80 %6309, 32
+  %6311 = trunc i80 %6310 to i64
+  %6312 = ashr exact i64 %6311, 32
+  call fastcc void @transparent_crc(i64 %6312, ptr @.str.3169, i32 signext undef)
+  %6313 = getelementptr inbounds [10 x [7 x [3 x %4]]], ptr bitcast (<{ <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_3202 to ptr), i64 0, i64 0, i64 0, i64 2, i32 1
+  %6314 = load i80, ptr %6313, align 2
+  %6315 = lshr i80 %6314, 49
+  %6316 = trunc i80 %6315 to i64
+  call fastcc void @transparent_crc(i64 %6316, ptr @.str.3170, i32 signext undef)
+  %6317 = load volatile i80, ptr %6313, align 2
+  %6318 = lshr i80 %6317, 24
+  %6319 = trunc i80 %6318 to i64
+  %6320 = and i64 %6319, 33554431
+  call fastcc void @transparent_crc(i64 %6320, ptr @.str.3171, i32 signext undef)
+  %6321 = load i80, ptr %6313, align 2
+  %6322 = shl i80 %6321, 56
+  %6323 = ashr i80 %6322, 68
+  %6324 = shl nsw i80 %6323, 32
+  %6325 = trunc i80 %6324 to i64
+  %6326 = ashr exact i64 %6325, 32
+  call fastcc void @transparent_crc(i64 %6326, ptr @.str.3172, i32 signext undef)
+  %6327 = load i80, ptr %6313, align 2
+  %6328 = lshr i80 %6327, 11
+  %6329 = trunc i80 %6328 to i64
+  %6330 = and i64 %6329, 1
+  call fastcc void @transparent_crc(i64 %6330, ptr @.str.3173, i32 signext undef)
+  %6331 = load volatile i80, ptr %6313, align 2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3174, i32 signext undef)
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3189, i32 signext 0)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3190, i32 signext 0)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3191, i32 signext 0)
+  %6332 = load volatile i80, ptr undef, align 2
+  %6333 = ashr i80 %6332, 73
+  %6334 = shl nsw i80 %6333, 32
+  %6335 = trunc i80 %6334 to i64
+  %6336 = ashr exact i64 %6335, 32
+  call fastcc void @transparent_crc(i64 %6336, ptr @.str.3187, i32 signext 0)
+  %6337 = load volatile i80, ptr undef, align 2
+  %6338 = lshr i80 %6337, 61
   %6339 = trunc i80 %6338 to i64
-  %6340 = and i64 %6339, 33554431
-  call fastcc void @transparent_crc(i64 %6340, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3171, i64 0, i64 0), i32 signext undef)
-  %6341 = load i80, i80* %6333, align 2
-  %6342 = shl i80 %6341, 56
-  %6343 = ashr i80 %6342, 68
+  %6340 = and i64 %6339, 4095
+  call fastcc void @transparent_crc(i64 %6340, ptr @.str.3188, i32 signext 0)
+  %6341 = load volatile i80, ptr undef, align 2
+  %6342 = shl i80 %6341, 19
+  %6343 = ashr i80 %6342, 59
   %6344 = shl nsw i80 %6343, 32
   %6345 = trunc i80 %6344 to i64
   %6346 = ashr exact i64 %6345, 32
-  call fastcc void @transparent_crc(i64 %6346, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3172, i64 0, i64 0), i32 signext undef)
-  %6347 = load i80, i80* %6333, align 2
-  %6348 = lshr i80 %6347, 11
-  %6349 = trunc i80 %6348 to i64
-  %6350 = and i64 %6349, 1
-  call fastcc void @transparent_crc(i64 %6350, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3173, i64 0, i64 0), i32 signext undef)
-  %6351 = load volatile i80, i80* %6333, align 2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3174, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6352 = load volatile i80, i80* undef, align 2
-  %6353 = ashr i80 %6352, 73
-  %6354 = shl nsw i80 %6353, 32
-  %6355 = trunc i80 %6354 to i64
-  %6356 = ashr exact i64 %6355, 32
-  call fastcc void @transparent_crc(i64 %6356, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3187, i64 0, i64 0), i32 signext 0)
-  %6357 = load volatile i80, i80* undef, align 2
-  %6358 = lshr i80 %6357, 61
-  %6359 = trunc i80 %6358 to i64
-  %6360 = and i64 %6359, 4095
-  call fastcc void @transparent_crc(i64 %6360, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3188, i64 0, i64 0), i32 signext 0)
-  %6361 = load volatile i80, i80* undef, align 2
-  %6362 = shl i80 %6361, 19
-  %6363 = ashr i80 %6362, 59
-  %6364 = shl nsw i80 %6363, 32
-  %6365 = trunc i80 %6364 to i64
-  %6366 = ashr exact i64 %6365, 32
-  call fastcc void @transparent_crc(i64 %6366, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  %6367 = shl i80 %6361, 40
-  %6368 = ashr i80 %6367, 62
-  %6369 = shl nsw i80 %6368, 32
-  %6370 = trunc i80 %6369 to i64
-  %6371 = ashr exact i64 %6370, 32
-  call fastcc void @transparent_crc(i64 %6371, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  %6372 = lshr i80 %6361, 4
+  call fastcc void @transparent_crc(i64 %6346, ptr @.str.3189, i32 signext 0)
+  %6347 = shl i80 %6341, 40
+  %6348 = ashr i80 %6347, 62
+  %6349 = shl nsw i80 %6348, 32
+  %6350 = trunc i80 %6349 to i64
+  %6351 = ashr exact i64 %6350, 32
+  call fastcc void @transparent_crc(i64 %6351, ptr @.str.3190, i32 signext 0)
+  %6352 = lshr i80 %6341, 4
+  %6353 = trunc i80 %6352 to i64
+  %6354 = and i64 %6353, 262143
+  call fastcc void @transparent_crc(i64 %6354, ptr @.str.3191, i32 signext 0)
+  %6355 = load volatile i80, ptr undef, align 2
+  %6356 = ashr i80 %6355, 73
+  %6357 = shl nsw i80 %6356, 32
+  %6358 = trunc i80 %6357 to i64
+  %6359 = ashr exact i64 %6358, 32
+  call fastcc void @transparent_crc(i64 %6359, ptr @.str.3187, i32 signext 0)
+  %6360 = load volatile i80, ptr undef, align 2
+  %6361 = lshr i80 %6360, 61
+  %6362 = trunc i80 %6361 to i64
+  %6363 = and i64 %6362, 4095
+  call fastcc void @transparent_crc(i64 %6363, ptr @.str.3188, i32 signext 0)
+  %6364 = load volatile i80, ptr undef, align 2
+  %6365 = shl i80 %6364, 19
+  %6366 = ashr i80 %6365, 59
+  %6367 = shl nsw i80 %6366, 32
+  %6368 = trunc i80 %6367 to i64
+  %6369 = ashr exact i64 %6368, 32
+  call fastcc void @transparent_crc(i64 %6369, ptr @.str.3189, i32 signext 0)
+  %6370 = shl i80 %6364, 40
+  %6371 = ashr i80 %6370, 62
+  %6372 = shl nsw i80 %6371, 32
   %6373 = trunc i80 %6372 to i64
-  %6374 = and i64 %6373, 262143
-  call fastcc void @transparent_crc(i64 %6374, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6375 = load volatile i80, i80* undef, align 2
-  %6376 = ashr i80 %6375, 73
-  %6377 = shl nsw i80 %6376, 32
-  %6378 = trunc i80 %6377 to i64
-  %6379 = ashr exact i64 %6378, 32
-  call fastcc void @transparent_crc(i64 %6379, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3187, i64 0, i64 0), i32 signext 0)
-  %6380 = load volatile i80, i80* undef, align 2
-  %6381 = lshr i80 %6380, 61
-  %6382 = trunc i80 %6381 to i64
-  %6383 = and i64 %6382, 4095
-  call fastcc void @transparent_crc(i64 %6383, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3188, i64 0, i64 0), i32 signext 0)
-  %6384 = load volatile i80, i80* undef, align 2
-  %6385 = shl i80 %6384, 19
-  %6386 = ashr i80 %6385, 59
-  %6387 = shl nsw i80 %6386, 32
-  %6388 = trunc i80 %6387 to i64
-  %6389 = ashr exact i64 %6388, 32
-  call fastcc void @transparent_crc(i64 %6389, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  %6390 = shl i80 %6384, 40
-  %6391 = ashr i80 %6390, 62
-  %6392 = shl nsw i80 %6391, 32
-  %6393 = trunc i80 %6392 to i64
-  %6394 = ashr exact i64 %6393, 32
-  call fastcc void @transparent_crc(i64 %6394, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  %6395 = lshr i80 %6384, 4
+  %6374 = ashr exact i64 %6373, 32
+  call fastcc void @transparent_crc(i64 %6374, ptr @.str.3190, i32 signext 0)
+  %6375 = lshr i80 %6364, 4
+  %6376 = trunc i80 %6375 to i64
+  %6377 = and i64 %6376, 262143
+  call fastcc void @transparent_crc(i64 %6377, ptr @.str.3191, i32 signext 0)
+  %6378 = load volatile i80, ptr undef, align 2
+  %6379 = ashr i80 %6378, 73
+  %6380 = shl nsw i80 %6379, 32
+  %6381 = trunc i80 %6380 to i64
+  %6382 = ashr exact i64 %6381, 32
+  call fastcc void @transparent_crc(i64 %6382, ptr @.str.3187, i32 signext 0)
+  %6383 = load volatile i80, ptr undef, align 2
+  %6384 = lshr i80 %6383, 61
+  %6385 = trunc i80 %6384 to i64
+  %6386 = and i64 %6385, 4095
+  call fastcc void @transparent_crc(i64 %6386, ptr @.str.3188, i32 signext 0)
+  %6387 = load volatile i80, ptr undef, align 2
+  %6388 = shl i80 %6387, 19
+  %6389 = ashr i80 %6388, 59
+  %6390 = shl nsw i80 %6389, 32
+  %6391 = trunc i80 %6390 to i64
+  %6392 = ashr exact i64 %6391, 32
+  call fastcc void @transparent_crc(i64 %6392, ptr @.str.3189, i32 signext 0)
+  %6393 = shl i80 %6387, 40
+  %6394 = ashr i80 %6393, 62
+  %6395 = shl nsw i80 %6394, 32
   %6396 = trunc i80 %6395 to i64
-  %6397 = and i64 %6396, 262143
-  call fastcc void @transparent_crc(i64 %6397, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6398 = load volatile i80, i80* undef, align 2
-  %6399 = ashr i80 %6398, 73
-  %6400 = shl nsw i80 %6399, 32
-  %6401 = trunc i80 %6400 to i64
-  %6402 = ashr exact i64 %6401, 32
-  call fastcc void @transparent_crc(i64 %6402, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3187, i64 0, i64 0), i32 signext 0)
-  %6403 = load volatile i80, i80* undef, align 2
-  %6404 = lshr i80 %6403, 61
+  %6397 = ashr exact i64 %6396, 32
+  call fastcc void @transparent_crc(i64 %6397, ptr @.str.3190, i32 signext 0)
+  %6398 = lshr i80 %6387, 4
+  %6399 = trunc i80 %6398 to i64
+  %6400 = and i64 %6399, 262143
+  call fastcc void @transparent_crc(i64 %6400, ptr @.str.3191, i32 signext 0)
+  %6401 = getelementptr inbounds [4 x [5 x [7 x %7]]], ptr bitcast (<{ <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_3370 to ptr), i64 0, i64 0, i64 0, i64 4
+  %6402 = load volatile i80, ptr %6401, align 2
+  %6403 = ashr i80 %6402, 73
+  %6404 = shl nsw i80 %6403, 32
   %6405 = trunc i80 %6404 to i64
-  %6406 = and i64 %6405, 4095
-  call fastcc void @transparent_crc(i64 %6406, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3188, i64 0, i64 0), i32 signext 0)
-  %6407 = load volatile i80, i80* undef, align 2
-  %6408 = shl i80 %6407, 19
-  %6409 = ashr i80 %6408, 59
-  %6410 = shl nsw i80 %6409, 32
-  %6411 = trunc i80 %6410 to i64
-  %6412 = ashr exact i64 %6411, 32
-  call fastcc void @transparent_crc(i64 %6412, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  %6413 = shl i80 %6407, 40
-  %6414 = ashr i80 %6413, 62
-  %6415 = shl nsw i80 %6414, 32
-  %6416 = trunc i80 %6415 to i64
-  %6417 = ashr exact i64 %6416, 32
-  call fastcc void @transparent_crc(i64 %6417, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  %6418 = lshr i80 %6407, 4
-  %6419 = trunc i80 %6418 to i64
-  %6420 = and i64 %6419, 262143
-  call fastcc void @transparent_crc(i64 %6420, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6421 = getelementptr inbounds [4 x [5 x [7 x %7]]], [4 x [5 x [7 x %7]]]* bitcast (<{ <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }>, <{ <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }>, <{ { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }> }> }>* @g_3370 to [4 x [5 x [7 x %7]]]*), i64 0, i64 0, i64 0, i64 4
-  %6422 = bitcast %7* %6421 to i80*
-  %6423 = load volatile i80, i80* %6422, align 2
-  %6424 = ashr i80 %6423, 73
-  %6425 = shl nsw i80 %6424, 32
-  %6426 = trunc i80 %6425 to i64
-  %6427 = ashr exact i64 %6426, 32
-  call fastcc void @transparent_crc(i64 %6427, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3187, i64 0, i64 0), i32 signext 0)
-  %6428 = load volatile i80, i80* %6422, align 2
-  %6429 = lshr i80 %6428, 61
-  %6430 = trunc i80 %6429 to i64
-  %6431 = and i64 %6430, 4095
-  call fastcc void @transparent_crc(i64 %6431, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3188, i64 0, i64 0), i32 signext 0)
-  %6432 = load volatile i80, i80* %6422, align 2
-  %6433 = shl i80 %6432, 19
-  %6434 = ashr i80 %6433, 59
-  %6435 = shl nsw i80 %6434, 32
-  %6436 = trunc i80 %6435 to i64
-  %6437 = ashr exact i64 %6436, 32
-  call fastcc void @transparent_crc(i64 %6437, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  %6438 = shl i80 %6432, 40
-  %6439 = ashr i80 %6438, 62
-  %6440 = shl nsw i80 %6439, 32
-  %6441 = trunc i80 %6440 to i64
-  %6442 = ashr exact i64 %6441, 32
-  call fastcc void @transparent_crc(i64 %6442, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  %6443 = lshr i80 %6432, 4
-  %6444 = trunc i80 %6443 to i64
-  %6445 = and i64 %6444, 262143
-  call fastcc void @transparent_crc(i64 %6445, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6446 = load volatile i80, i80* undef, align 2
-  %6447 = ashr i80 %6446, 73
-  %6448 = shl nsw i80 %6447, 32
-  %6449 = trunc i80 %6448 to i64
-  %6450 = ashr exact i64 %6449, 32
-  call fastcc void @transparent_crc(i64 %6450, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3187, i64 0, i64 0), i32 signext 0)
-  %6451 = load volatile i80, i80* undef, align 2
-  %6452 = lshr i80 %6451, 61
-  %6453 = trunc i80 %6452 to i64
-  %6454 = and i64 %6453, 4095
-  call fastcc void @transparent_crc(i64 %6454, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3188, i64 0, i64 0), i32 signext 0)
-  %6455 = load volatile i80, i80* undef, align 2
-  %6456 = shl i80 %6455, 19
-  %6457 = ashr i80 %6456, 59
-  %6458 = shl nsw i80 %6457, 32
-  %6459 = trunc i80 %6458 to i64
-  %6460 = ashr exact i64 %6459, 32
-  call fastcc void @transparent_crc(i64 %6460, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  %6461 = shl i80 %6455, 40
-  %6462 = ashr i80 %6461, 62
-  %6463 = shl nsw i80 %6462, 32
-  %6464 = trunc i80 %6463 to i64
-  %6465 = ashr exact i64 %6464, 32
-  call fastcc void @transparent_crc(i64 %6465, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  %6466 = lshr i80 %6455, 4
-  %6467 = trunc i80 %6466 to i64
-  %6468 = and i64 %6467, 262143
-  call fastcc void @transparent_crc(i64 %6468, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6469 = load volatile i80, i80* undef, align 2
-  %6470 = ashr i80 %6469, 73
-  %6471 = shl nsw i80 %6470, 32
-  %6472 = trunc i80 %6471 to i64
-  %6473 = ashr exact i64 %6472, 32
-  call fastcc void @transparent_crc(i64 %6473, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3187, i64 0, i64 0), i32 signext 0)
-  %6474 = load volatile i80, i80* undef, align 2
-  %6475 = lshr i80 %6474, 61
-  %6476 = trunc i80 %6475 to i64
-  %6477 = and i64 %6476, 4095
-  call fastcc void @transparent_crc(i64 %6477, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3188, i64 0, i64 0), i32 signext 0)
-  %6478 = load volatile i80, i80* undef, align 2
-  %6479 = shl i80 %6478, 19
-  %6480 = ashr i80 %6479, 59
-  %6481 = shl nsw i80 %6480, 32
-  %6482 = trunc i80 %6481 to i64
-  %6483 = ashr exact i64 %6482, 32
-  call fastcc void @transparent_crc(i64 %6483, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3189, i64 0, i64 0), i32 signext 0)
-  %6484 = shl i80 %6478, 40
-  %6485 = ashr i80 %6484, 62
-  %6486 = shl nsw i80 %6485, 32
-  %6487 = trunc i80 %6486 to i64
-  %6488 = ashr exact i64 %6487, 32
-  call fastcc void @transparent_crc(i64 %6488, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3190, i64 0, i64 0), i32 signext 0)
-  %6489 = lshr i80 %6478, 4
-  %6490 = trunc i80 %6489 to i64
-  %6491 = and i64 %6490, 262143
-  call fastcc void @transparent_crc(i64 %6491, i8* getelementptr inbounds ([19 x i8], [19 x i8]* @.str.3191, i64 0, i64 0), i32 signext 0)
-  %6492 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 0), align 4, !tbaa !34
-  %6493 = zext i32 %6492 to i64
-  call fastcc void @transparent_crc(i64 %6493, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3192, i64 0, i64 0), i32 signext undef)
-  %6494 = load i8, i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 1), align 4, !tbaa !6
-  %6495 = sext i8 %6494 to i64
-  call fastcc void @transparent_crc(i64 %6495, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3193, i64 0, i64 0), i32 signext undef)
-  %6496 = load volatile i16, i16* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 2), align 2, !tbaa !32
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3194, i64 0, i64 0), i32 signext undef)
-  %6497 = load i32, i32* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 3), align 4, !tbaa !33
-  %6498 = zext i32 %6497 to i64
-  call fastcc void @transparent_crc(i64 %6498, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3195, i64 0, i64 0), i32 signext undef)
-  %6499 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6500 = lshr i80 %6499, 57
+  %6406 = ashr exact i64 %6405, 32
+  call fastcc void @transparent_crc(i64 %6406, ptr @.str.3187, i32 signext 0)
+  %6407 = load volatile i80, ptr %6401, align 2
+  %6408 = lshr i80 %6407, 61
+  %6409 = trunc i80 %6408 to i64
+  %6410 = and i64 %6409, 4095
+  call fastcc void @transparent_crc(i64 %6410, ptr @.str.3188, i32 signext 0)
+  %6411 = load volatile i80, ptr %6401, align 2
+  %6412 = shl i80 %6411, 19
+  %6413 = ashr i80 %6412, 59
+  %6414 = shl nsw i80 %6413, 32
+  %6415 = trunc i80 %6414 to i64
+  %6416 = ashr exact i64 %6415, 32
+  call fastcc void @transparent_crc(i64 %6416, ptr @.str.3189, i32 signext 0)
+  %6417 = shl i80 %6411, 40
+  %6418 = ashr i80 %6417, 62
+  %6419 = shl nsw i80 %6418, 32
+  %6420 = trunc i80 %6419 to i64
+  %6421 = ashr exact i64 %6420, 32
+  call fastcc void @transparent_crc(i64 %6421, ptr @.str.3190, i32 signext 0)
+  %6422 = lshr i80 %6411, 4
+  %6423 = trunc i80 %6422 to i64
+  %6424 = and i64 %6423, 262143
+  call fastcc void @transparent_crc(i64 %6424, ptr @.str.3191, i32 signext 0)
+  %6425 = load volatile i80, ptr undef, align 2
+  %6426 = ashr i80 %6425, 73
+  %6427 = shl nsw i80 %6426, 32
+  %6428 = trunc i80 %6427 to i64
+  %6429 = ashr exact i64 %6428, 32
+  call fastcc void @transparent_crc(i64 %6429, ptr @.str.3187, i32 signext 0)
+  %6430 = load volatile i80, ptr undef, align 2
+  %6431 = lshr i80 %6430, 61
+  %6432 = trunc i80 %6431 to i64
+  %6433 = and i64 %6432, 4095
+  call fastcc void @transparent_crc(i64 %6433, ptr @.str.3188, i32 signext 0)
+  %6434 = load volatile i80, ptr undef, align 2
+  %6435 = shl i80 %6434, 19
+  %6436 = ashr i80 %6435, 59
+  %6437 = shl nsw i80 %6436, 32
+  %6438 = trunc i80 %6437 to i64
+  %6439 = ashr exact i64 %6438, 32
+  call fastcc void @transparent_crc(i64 %6439, ptr @.str.3189, i32 signext 0)
+  %6440 = shl i80 %6434, 40
+  %6441 = ashr i80 %6440, 62
+  %6442 = shl nsw i80 %6441, 32
+  %6443 = trunc i80 %6442 to i64
+  %6444 = ashr exact i64 %6443, 32
+  call fastcc void @transparent_crc(i64 %6444, ptr @.str.3190, i32 signext 0)
+  %6445 = lshr i80 %6434, 4
+  %6446 = trunc i80 %6445 to i64
+  %6447 = and i64 %6446, 262143
+  call fastcc void @transparent_crc(i64 %6447, ptr @.str.3191, i32 signext 0)
+  %6448 = load volatile i80, ptr undef, align 2
+  %6449 = ashr i80 %6448, 73
+  %6450 = shl nsw i80 %6449, 32
+  %6451 = trunc i80 %6450 to i64
+  %6452 = ashr exact i64 %6451, 32
+  call fastcc void @transparent_crc(i64 %6452, ptr @.str.3187, i32 signext 0)
+  %6453 = load volatile i80, ptr undef, align 2
+  %6454 = lshr i80 %6453, 61
+  %6455 = trunc i80 %6454 to i64
+  %6456 = and i64 %6455, 4095
+  call fastcc void @transparent_crc(i64 %6456, ptr @.str.3188, i32 signext 0)
+  %6457 = load volatile i80, ptr undef, align 2
+  %6458 = shl i80 %6457, 19
+  %6459 = ashr i80 %6458, 59
+  %6460 = shl nsw i80 %6459, 32
+  %6461 = trunc i80 %6460 to i64
+  %6462 = ashr exact i64 %6461, 32
+  call fastcc void @transparent_crc(i64 %6462, ptr @.str.3189, i32 signext 0)
+  %6463 = shl i80 %6457, 40
+  %6464 = ashr i80 %6463, 62
+  %6465 = shl nsw i80 %6464, 32
+  %6466 = trunc i80 %6465 to i64
+  %6467 = ashr exact i64 %6466, 32
+  call fastcc void @transparent_crc(i64 %6467, ptr @.str.3190, i32 signext 0)
+  %6468 = lshr i80 %6457, 4
+  %6469 = trunc i80 %6468 to i64
+  %6470 = and i64 %6469, 262143
+  call fastcc void @transparent_crc(i64 %6470, ptr @.str.3191, i32 signext 0)
+  %6471 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 0), align 4, !tbaa !34
+  %6472 = zext i32 %6471 to i64
+  call fastcc void @transparent_crc(i64 %6472, ptr @.str.3192, i32 signext undef)
+  %6473 = load i8, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 1), align 4, !tbaa !6
+  %6474 = sext i8 %6473 to i64
+  call fastcc void @transparent_crc(i64 %6474, ptr @.str.3193, i32 signext undef)
+  %6475 = load volatile i16, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 2), align 2, !tbaa !32
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3194, i32 signext undef)
+  %6476 = load i32, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 3), align 4, !tbaa !33
+  %6477 = zext i32 %6476 to i64
+  call fastcc void @transparent_crc(i64 %6477, ptr @.str.3195, i32 signext undef)
+  %6478 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 0, i32 0), align 4
+  %6479 = lshr i80 %6478, 57
+  %6480 = trunc i80 %6479 to i64
+  call fastcc void @transparent_crc(i64 %6480, ptr @.str.3196, i32 signext undef)
+  %6481 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 0, i32 0), align 4
+  %6482 = shl i80 %6481, 23
+  %6483 = ashr i80 %6482, 64
+  %6484 = shl nsw i80 %6483, 32
+  %6485 = trunc i80 %6484 to i64
+  %6486 = ashr exact i64 %6485, 32
+  call fastcc void @transparent_crc(i64 %6486, ptr @.str.3197, i32 signext undef)
+  %6487 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 0, i32 0), align 4
+  %6488 = shl i80 %6487, 39
+  %6489 = ashr i80 %6488, 62
+  %6490 = shl nsw i80 %6489, 32
+  %6491 = trunc i80 %6490 to i64
+  %6492 = ashr exact i64 %6491, 32
+  call fastcc void @transparent_crc(i64 %6492, ptr @.str.3198, i32 signext undef)
+  %6493 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 0, i32 0), align 4
+  %6494 = shl i80 %6493, 57
+  %6495 = ashr i80 %6494, 58
+  %6496 = shl nsw i80 %6495, 32
+  %6497 = trunc i80 %6496 to i64
+  %6498 = ashr exact i64 %6497, 32
+  call fastcc void @transparent_crc(i64 %6498, ptr @.str.3199, i32 signext undef)
+  %6499 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 1), align 2
+  %6500 = lshr i80 %6499, 49
   %6501 = trunc i80 %6500 to i64
-  call fastcc void @transparent_crc(i64 %6501, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3196, i64 0, i64 0), i32 signext undef)
-  %6502 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6503 = shl i80 %6502, 23
-  %6504 = ashr i80 %6503, 64
-  %6505 = shl nsw i80 %6504, 32
-  %6506 = trunc i80 %6505 to i64
-  %6507 = ashr exact i64 %6506, 32
-  call fastcc void @transparent_crc(i64 %6507, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3197, i64 0, i64 0), i32 signext undef)
-  %6508 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6509 = shl i80 %6508, 39
-  %6510 = ashr i80 %6509, 62
-  %6511 = shl nsw i80 %6510, 32
-  %6512 = trunc i80 %6511 to i64
-  %6513 = ashr exact i64 %6512, 32
-  call fastcc void @transparent_crc(i64 %6513, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3198, i64 0, i64 0), i32 signext undef)
-  %6514 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 0, i32 0) to i80*), align 4
-  %6515 = shl i80 %6514, 57
-  %6516 = ashr i80 %6515, 58
-  %6517 = shl nsw i80 %6516, 32
-  %6518 = trunc i80 %6517 to i64
-  %6519 = ashr exact i64 %6518, 32
-  call fastcc void @transparent_crc(i64 %6519, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3199, i64 0, i64 0), i32 signext undef)
-  %6520 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 1) to i80*), align 2
-  %6521 = lshr i80 %6520, 49
-  %6522 = trunc i80 %6521 to i64
-  call fastcc void @transparent_crc(i64 %6522, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3200, i64 0, i64 0), i32 signext undef)
-  %6523 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 1) to i80*), align 2
-  %6524 = lshr i80 %6523, 24
-  %6525 = trunc i80 %6524 to i64
-  %6526 = and i64 %6525, 33554431
-  call fastcc void @transparent_crc(i64 %6526, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3201, i64 0, i64 0), i32 signext undef)
-  %6527 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 1) to i80*), align 2
-  %6528 = shl i80 %6527, 56
-  %6529 = ashr i80 %6528, 68
-  %6530 = shl nsw i80 %6529, 32
-  %6531 = trunc i80 %6530 to i64
-  %6532 = ashr exact i64 %6531, 32
-  call fastcc void @transparent_crc(i64 %6532, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3202, i64 0, i64 0), i32 signext undef)
-  %6533 = load i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 1) to i80*), align 2
-  %6534 = lshr i80 %6533, 11
-  %6535 = trunc i80 %6534 to i64
-  %6536 = and i64 %6535, 1
-  call fastcc void @transparent_crc(i64 %6536, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3203, i64 0, i64 0), i32 signext undef)
-  %6537 = load volatile i80, i80* bitcast (i8* getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, { i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }* @g_3431, i64 0, i32 4, i32 1) to i80*), align 2
-  %6538 = shl i80 %6537, 69
-  %6539 = ashr i80 %6538, 72
-  %6540 = shl nsw i80 %6539, 32
-  %6541 = trunc i80 %6540 to i64
-  %6542 = ashr exact i64 %6541, 32
-  call fastcc void @transparent_crc(i64 %6542, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3204, i64 0, i64 0), i32 signext undef)
-  %6543 = load i16, i16* undef, align 2, !tbaa !21
-  %6544 = zext i16 %6543 to i64
-  call fastcc void @transparent_crc(i64 %6544, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3205, i64 0, i64 0), i32 signext 0)
-  %6545 = load i16, i16* undef, align 2, !tbaa !21
-  %6546 = zext i16 %6545 to i64
-  call fastcc void @transparent_crc(i64 %6546, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3205, i64 0, i64 0), i32 signext 0)
-  %6547 = load i16, i16* undef, align 2, !tbaa !21
-  %6548 = zext i16 %6547 to i64
-  call fastcc void @transparent_crc(i64 %6548, i8* getelementptr inbounds ([16 x i8], [16 x i8]* @.str.3205, i64 0, i64 0), i32 signext 0)
-  %6549 = load i16, i16* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 0), align 2, !tbaa !57
-  %6550 = sext i16 %6549 to i64
-  call fastcc void @transparent_crc(i64 %6550, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3206, i64 0, i64 0), i32 signext undef)
-  %6551 = load i32, i32* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 1), align 2, !tbaa !58
-  %6552 = sext i32 %6551 to i64
-  call fastcc void @transparent_crc(i64 %6552, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3207, i64 0, i64 0), i32 signext undef)
-  %6553 = load volatile i8, i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 2), align 2, !tbaa !59
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3208, i64 0, i64 0), i32 signext undef)
-  %6554 = load i16, i16* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 3), align 1, !tbaa !60
-  %6555 = sext i16 %6554 to i64
-  call fastcc void @transparent_crc(i64 %6555, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3209, i64 0, i64 0), i32 signext undef)
-  %6556 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 4, i32 0) to i80*), align 1
-  %6557 = lshr i80 %6556, 57
-  %6558 = trunc i80 %6557 to i64
-  call fastcc void @transparent_crc(i64 %6558, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3210, i64 0, i64 0), i32 signext undef)
-  %6559 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 4, i32 0) to i80*), align 1
-  %6560 = shl i80 %6559, 23
-  %6561 = ashr i80 %6560, 64
-  %6562 = shl nsw i80 %6561, 32
-  %6563 = trunc i80 %6562 to i64
-  %6564 = ashr exact i64 %6563, 32
-  call fastcc void @transparent_crc(i64 %6564, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3211, i64 0, i64 0), i32 signext undef)
-  %6565 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 4, i32 0) to i80*), align 1
-  %6566 = shl i80 %6565, 39
-  %6567 = ashr i80 %6566, 62
-  %6568 = shl nsw i80 %6567, 32
-  %6569 = trunc i80 %6568 to i64
-  %6570 = ashr exact i64 %6569, 32
-  call fastcc void @transparent_crc(i64 %6570, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3212, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 0, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3213, i64 0, i64 0), i32 signext undef)
-  %6571 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 5), align 1, !tbaa !54
-  call fastcc void @transparent_crc(i64 %6571, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3214, i64 0, i64 0), i32 signext undef)
-  %6572 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3567, i64 0, i32 6), align 1, !tbaa !56
-  call fastcc void @transparent_crc(i64 %6572, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3215, i64 0, i64 0), i32 signext undef)
-  %6573 = load i16, i16* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 0), align 2, !tbaa !57
-  %6574 = sext i16 %6573 to i64
-  call fastcc void @transparent_crc(i64 %6574, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3216, i64 0, i64 0), i32 signext undef)
-  %6575 = load i32, i32* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 1), align 2, !tbaa !58
-  %6576 = sext i32 %6575 to i64
-  call fastcc void @transparent_crc(i64 %6576, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3217, i64 0, i64 0), i32 signext undef)
-  %6577 = load volatile i8, i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 2), align 2, !tbaa !59
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3218, i64 0, i64 0), i32 signext undef)
-  %6578 = load i16, i16* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 3), align 1, !tbaa !60
-  %6579 = sext i16 %6578 to i64
-  call fastcc void @transparent_crc(i64 %6579, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3219, i64 0, i64 0), i32 signext undef)
-  %6580 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 4, i32 0) to i80*), align 1
-  %6581 = lshr i80 %6580, 57
-  %6582 = trunc i80 %6581 to i64
-  call fastcc void @transparent_crc(i64 %6582, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3220, i64 0, i64 0), i32 signext undef)
-  %6583 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 4, i32 0) to i80*), align 1
-  %6584 = shl i80 %6583, 23
-  %6585 = ashr i80 %6584, 64
-  %6586 = shl nsw i80 %6585, 32
-  %6587 = trunc i80 %6586 to i64
-  %6588 = ashr exact i64 %6587, 32
-  call fastcc void @transparent_crc(i64 %6588, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3221, i64 0, i64 0), i32 signext undef)
-  %6589 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 4, i32 0) to i80*), align 1
-  %6590 = shl i80 %6589, 39
-  %6591 = ashr i80 %6590, 62
-  %6592 = shl nsw i80 %6591, 32
-  %6593 = trunc i80 %6592 to i64
-  %6594 = ashr exact i64 %6593, 32
-  call fastcc void @transparent_crc(i64 %6594, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3222, i64 0, i64 0), i32 signext undef)
-  %6595 = load i80, i80* bitcast (i8* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 4, i32 0) to i80*), align 1
-  %6596 = shl i80 %6595, 57
-  %6597 = ashr i80 %6596, 58
-  %6598 = shl nsw i80 %6597, 32
-  %6599 = trunc i80 %6598 to i64
-  %6600 = ashr exact i64 %6599, 32
-  call fastcc void @transparent_crc(i64 %6600, i8* getelementptr inbounds ([13 x i8], [13 x i8]* @.str.3223, i64 0, i64 0), i32 signext undef)
-  %6601 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 5), align 1, !tbaa !54
-  call fastcc void @transparent_crc(i64 %6601, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3224, i64 0, i64 0), i32 signext undef)
-  %6602 = load volatile i64, i64* getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, <{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>* @g_3568, i64 0, i32 6), align 1, !tbaa !56
-  call fastcc void @transparent_crc(i64 %6602, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3225, i64 0, i64 0), i32 signext undef)
-  call fastcc void @transparent_crc(i64 2184720098, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3226, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 2184720098, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3226, i64 0, i64 0), i32 signext 0)
-  call fastcc void @transparent_crc(i64 4294967295, i8* getelementptr inbounds ([7 x i8], [7 x i8]* @.str.3227, i64 0, i64 0), i32 signext undef)
-  %6603 = load i128, i128* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_3631 to i128*), align 8
-  %6604 = ashr i128 %6603, 99
-  %6605 = shl nsw i128 %6604, 32
-  %6606 = trunc i128 %6605 to i64
-  %6607 = ashr exact i64 %6606, 32
-  call fastcc void @transparent_crc(i64 %6607, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3228, i64 0, i64 0), i32 signext undef)
-  %6608 = load volatile i128, i128* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_3631 to i128*), align 8
-  %6609 = shl i128 %6608, 29
-  %6610 = ashr i128 %6609, 97
-  %6611 = shl nsw i128 %6610, 32
-  %6612 = trunc i128 %6611 to i64
-  %6613 = ashr exact i64 %6612, 32
-  call fastcc void @transparent_crc(i64 %6613, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3229, i64 0, i64 0), i32 signext undef)
-  %6614 = load volatile i128, i128* bitcast ({ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }* @g_3631 to i128*), align 8
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([10 x i8], [10 x i8]* @.str.3233, i64 0, i64 0), i32 signext undef)
-  %6615 = load i32, i32* @crc32_context, align 4, !tbaa !15
-  %6616 = xor i32 %6615, -1
-  %6617 = call signext i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str.3437, i64 0, i64 0), i32 zeroext %6616) #3
+  call fastcc void @transparent_crc(i64 %6501, ptr @.str.3200, i32 signext undef)
+  %6502 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 1), align 2
+  %6503 = lshr i80 %6502, 24
+  %6504 = trunc i80 %6503 to i64
+  %6505 = and i64 %6504, 33554431
+  call fastcc void @transparent_crc(i64 %6505, ptr @.str.3201, i32 signext undef)
+  %6506 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 1), align 2
+  %6507 = shl i80 %6506, 56
+  %6508 = ashr i80 %6507, 68
+  %6509 = shl nsw i80 %6508, 32
+  %6510 = trunc i80 %6509 to i64
+  %6511 = ashr exact i64 %6510, 32
+  call fastcc void @transparent_crc(i64 %6511, ptr @.str.3202, i32 signext undef)
+  %6512 = load i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 1), align 2
+  %6513 = lshr i80 %6512, 11
+  %6514 = trunc i80 %6513 to i64
+  %6515 = and i64 %6514, 1
+  call fastcc void @transparent_crc(i64 %6515, ptr @.str.3203, i32 signext undef)
+  %6516 = load volatile i80, ptr getelementptr inbounds ({ i32, i8, i16, i32, { { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 } }, ptr @g_3431, i64 0, i32 4, i32 1), align 2
+  %6517 = shl i80 %6516, 69
+  %6518 = ashr i80 %6517, 72
+  %6519 = shl nsw i80 %6518, 32
+  %6520 = trunc i80 %6519 to i64
+  %6521 = ashr exact i64 %6520, 32
+  call fastcc void @transparent_crc(i64 %6521, ptr @.str.3204, i32 signext undef)
+  %6522 = load i16, ptr undef, align 2, !tbaa !21
+  %6523 = zext i16 %6522 to i64
+  call fastcc void @transparent_crc(i64 %6523, ptr @.str.3205, i32 signext 0)
+  %6524 = load i16, ptr undef, align 2, !tbaa !21
+  %6525 = zext i16 %6524 to i64
+  call fastcc void @transparent_crc(i64 %6525, ptr @.str.3205, i32 signext 0)
+  %6526 = load i16, ptr undef, align 2, !tbaa !21
+  %6527 = zext i16 %6526 to i64
+  call fastcc void @transparent_crc(i64 %6527, ptr @.str.3205, i32 signext 0)
+  %6528 = load i16, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 0), align 2, !tbaa !57
+  %6529 = sext i16 %6528 to i64
+  call fastcc void @transparent_crc(i64 %6529, ptr @.str.3206, i32 signext undef)
+  %6530 = load i32, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 1), align 2, !tbaa !58
+  %6531 = sext i32 %6530 to i64
+  call fastcc void @transparent_crc(i64 %6531, ptr @.str.3207, i32 signext undef)
+  %6532 = load volatile i8, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 2), align 2, !tbaa !59
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3208, i32 signext undef)
+  %6533 = load i16, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 3), align 1, !tbaa !60
+  %6534 = sext i16 %6533 to i64
+  call fastcc void @transparent_crc(i64 %6534, ptr @.str.3209, i32 signext undef)
+  %6535 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 4, i32 0), align 1
+  %6536 = lshr i80 %6535, 57
+  %6537 = trunc i80 %6536 to i64
+  call fastcc void @transparent_crc(i64 %6537, ptr @.str.3210, i32 signext undef)
+  %6538 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 4, i32 0), align 1
+  %6539 = shl i80 %6538, 23
+  %6540 = ashr i80 %6539, 64
+  %6541 = shl nsw i80 %6540, 32
+  %6542 = trunc i80 %6541 to i64
+  %6543 = ashr exact i64 %6542, 32
+  call fastcc void @transparent_crc(i64 %6543, ptr @.str.3211, i32 signext undef)
+  %6544 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 4, i32 0), align 1
+  %6545 = shl i80 %6544, 39
+  %6546 = ashr i80 %6545, 62
+  %6547 = shl nsw i80 %6546, 32
+  %6548 = trunc i80 %6547 to i64
+  %6549 = ashr exact i64 %6548, 32
+  call fastcc void @transparent_crc(i64 %6549, ptr @.str.3212, i32 signext undef)
+  call fastcc void @transparent_crc(i64 0, ptr @.str.3213, i32 signext undef)
+  %6550 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 5), align 1, !tbaa !54
+  call fastcc void @transparent_crc(i64 %6550, ptr @.str.3214, i32 signext undef)
+  %6551 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3567, i64 0, i32 6), align 1, !tbaa !56
+  call fastcc void @transparent_crc(i64 %6551, ptr @.str.3215, i32 signext undef)
+  %6552 = load i16, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 0), align 2, !tbaa !57
+  %6553 = sext i16 %6552 to i64
+  call fastcc void @transparent_crc(i64 %6553, ptr @.str.3216, i32 signext undef)
+  %6554 = load i32, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 1), align 2, !tbaa !58
+  %6555 = sext i32 %6554 to i64
+  call fastcc void @transparent_crc(i64 %6555, ptr @.str.3217, i32 signext undef)
+  %6556 = load volatile i8, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 2), align 2, !tbaa !59
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3218, i32 signext undef)
+  %6557 = load i16, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 3), align 1, !tbaa !60
+  %6558 = sext i16 %6557 to i64
+  call fastcc void @transparent_crc(i64 %6558, ptr @.str.3219, i32 signext undef)
+  %6559 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 4, i32 0), align 1
+  %6560 = lshr i80 %6559, 57
+  %6561 = trunc i80 %6560 to i64
+  call fastcc void @transparent_crc(i64 %6561, ptr @.str.3220, i32 signext undef)
+  %6562 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 4, i32 0), align 1
+  %6563 = shl i80 %6562, 23
+  %6564 = ashr i80 %6563, 64
+  %6565 = shl nsw i80 %6564, 32
+  %6566 = trunc i80 %6565 to i64
+  %6567 = ashr exact i64 %6566, 32
+  call fastcc void @transparent_crc(i64 %6567, ptr @.str.3221, i32 signext undef)
+  %6568 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 4, i32 0), align 1
+  %6569 = shl i80 %6568, 39
+  %6570 = ashr i80 %6569, 62
+  %6571 = shl nsw i80 %6570, 32
+  %6572 = trunc i80 %6571 to i64
+  %6573 = ashr exact i64 %6572, 32
+  call fastcc void @transparent_crc(i64 %6573, ptr @.str.3222, i32 signext undef)
+  %6574 = load i80, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 4, i32 0), align 1
+  %6575 = shl i80 %6574, 57
+  %6576 = ashr i80 %6575, 58
+  %6577 = shl nsw i80 %6576, 32
+  %6578 = trunc i80 %6577 to i64
+  %6579 = ashr exact i64 %6578, 32
+  call fastcc void @transparent_crc(i64 %6579, ptr @.str.3223, i32 signext undef)
+  %6580 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 5), align 1, !tbaa !54
+  call fastcc void @transparent_crc(i64 %6580, ptr @.str.3224, i32 signext undef)
+  %6581 = load volatile i64, ptr getelementptr inbounds (<{ i16, i32, i8, i16, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }, i64, i64 }>, ptr @g_3568, i64 0, i32 6), align 1, !tbaa !56
+  call fastcc void @transparent_crc(i64 %6581, ptr @.str.3225, i32 signext undef)
+  call fastcc void @transparent_crc(i64 2184720098, ptr @.str.3226, i32 signext 0)
+  call fastcc void @transparent_crc(i64 2184720098, ptr @.str.3226, i32 signext 0)
+  call fastcc void @transparent_crc(i64 4294967295, ptr @.str.3227, i32 signext undef)
+  %6582 = load i128, ptr @g_3631, align 8
+  %6583 = ashr i128 %6582, 99
+  %6584 = shl nsw i128 %6583, 32
+  %6585 = trunc i128 %6584 to i64
+  %6586 = ashr exact i64 %6585, 32
+  call fastcc void @transparent_crc(i64 %6586, ptr @.str.3228, i32 signext undef)
+  %6587 = load volatile i128, ptr @g_3631, align 8
+  %6588 = shl i128 %6587, 29
+  %6589 = ashr i128 %6588, 97
+  %6590 = shl nsw i128 %6589, 32
+  %6591 = trunc i128 %6590 to i64
+  %6592 = ashr exact i64 %6591, 32
+  call fastcc void @transparent_crc(i64 %6592, ptr @.str.3229, i32 signext undef)
+  %6593 = load volatile i128, ptr @g_3631, align 8
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.3233, i32 signext undef)
+  %6594 = load i32, ptr @crc32_context, align 4, !tbaa !15
+  %6595 = xor i32 %6594, -1
+  %6596 = call signext i32 (ptr, ...) @printf(ptr @.str.3437, i32 zeroext %6595) #3
   ret i32 0
 
-; <label>:6618:                                   ; preds = %6637, %2
-  %6619 = phi i32 [ %6639, %6637 ], [ 0, %2 ]
-  %6620 = phi i64 [ %6638, %6637 ], [ undef, %2 ]
-  switch i8 %11, label %6635 [
-    i8 0, label %6634
-    i8 -1, label %6621
+; <label>:6618:                                   ; preds = %6616, %2
+  %6598 = phi i32 [ %6618, %6616 ], [ 0, %2 ]
+  %6599 = phi i64 [ %6617, %6616 ], [ undef, %2 ]
+  switch i8 %11, label %6614 [
+    i8 0, label %6613
+    i8 -1, label %6600
   ]
 
-; <label>:6621:                                   ; preds = %6618
-  %6622 = or i64 %6620, %8
-  %6623 = add i64 %6622, -1
-  %6624 = or i64 %6623, %8
-  %6625 = add i64 %6624, -1
-  %6626 = or i64 %6625, %8
-  %6627 = add i64 %6626, -1
-  %6628 = or i64 %6627, %8
-  %6629 = add i64 %6628, -1
-  %6630 = or i64 %6629, %8
-  %6631 = add i64 %6630, -1
-  %6632 = or i64 %6631, %8
-  %6633 = add nsw i64 -128, 4
-  br label %6637
+; <label>:6621:                                   ; preds = %6597
+  %6601 = or i64 %6599, %8
+  %6602 = add i64 %6601, -1
+  %6603 = or i64 %6602, %8
+  %6604 = add i64 %6603, -1
+  %6605 = or i64 %6604, %8
+  %6606 = add i64 %6605, -1
+  %6607 = or i64 %6606, %8
+  %6608 = add i64 %6607, -1
+  %6609 = or i64 %6608, %8
+  %6610 = add i64 %6609, -1
+  %6611 = or i64 %6610, %8
+  %6612 = add nsw i64 -128, 4
+  br label %6616
 
-; <label>:6634:                                   ; preds = %6618
+; <label>:6634:                                   ; preds = %6597
   unreachable
 
-; <label>:6635:                                   ; preds = %6618
-  %6636 = or i64 undef, %8
+; <label>:6635:                                   ; preds = %6597
+  %6615 = or i64 undef, %8
   unreachable
 
-; <label>:6637:                                   ; preds = %6621
-  %6638 = add i64 %6632, -1
-  %6639 = add nuw nsw i32 %6619, 1
-  %6640 = icmp eq i32 %6639, 23
-  br i1 %6640, label %6641, label %6618
+; <label>:6637:                                   ; preds = %6600
+  %6617 = add i64 %6611, -1
+  %6618 = add nuw nsw i32 %6598, 1
+  %6619 = icmp eq i32 %6618, 23
+  br i1 %6619, label %6620, label %6597
 
-; <label>:6641:                                   ; preds = %6637
-  %6642 = zext i8 %12 to i32
-  %6643 = add nuw nsw i32 %16, %6642
-  %6644 = trunc i64 %6633 to i16
-  store i16 %6644, i16* @g_129, align 2, !tbaa !21, !noalias !14
-  store i64 %6638, i64* getelementptr inbounds (%0, %0* @g_190, i64 0, i32 3), align 8, !tbaa !61, !noalias !1
-  %6645 = or i32 %6643, -3
-  store i32 %6645, i32* @g_13, align 4, !tbaa !15, !noalias !14
+; <label>:6641:                                   ; preds = %6616
+  %6621 = zext i8 %12 to i32
+  %6622 = add nuw nsw i32 %16, %6621
+  %6623 = trunc i64 %6612 to i16
+  store i16 %6623, ptr @g_129, align 2, !tbaa !21, !noalias !14
+  store i64 %6617, ptr getelementptr inbounds (%0, ptr @g_190, i64 0, i32 3), align 8, !tbaa !61, !noalias !1
+  %6624 = or i32 %6622, -3
+  store i32 %6624, ptr @g_13, align 4, !tbaa !15, !noalias !14
   br label %17
 }
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture) #1
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture) #1
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture) #1
 
 ; Function Attrs: nounwind
-declare dso_local fastcc void @transparent_crc(i64, i8*, i32 signext) unnamed_addr #0
+declare dso_local fastcc void @transparent_crc(i64, ptr, i32 signext) unnamed_addr #0
 
 ; Function Attrs: nounwind
-declare signext i32 @printf(i8* nocapture readonly, ...) local_unnamed_addr #2
+declare signext i32 @printf(ptr nocapture readonly, ...) local_unnamed_addr #2
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i32, i1) #1
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i32, i1) #1
 
 ; Function Attrs: nounwind
-declare dso_local fastcc void @func_62(%1* noalias nocapture, i64) unnamed_addr #0
+declare dso_local fastcc void @func_62(ptr noalias nocapture, i64) unnamed_addr #0
 
 attributes #0 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="z13" "target-features"="+transactional-execution,+vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
 attributes #1 = { argmemonly nounwind }

diff  --git a/llvm/test/CodeGen/SystemZ/addr-01.ll b/llvm/test/CodeGen/SystemZ/addr-01.ll
index c98b0523794a8..4a23d8fa66c2c 100644
--- a/llvm/test/CodeGen/SystemZ/addr-01.ll
+++ b/llvm/test/CodeGen/SystemZ/addr-01.ll
@@ -11,8 +11,8 @@ define void @f1(i64 %addr, i64 %index) {
 ; CHECK-NEXT:    lb %r0, 0(%r3,%r2)
 ; CHECK-NEXT:    br %r14
   %add = add i64 %addr, %index
-  %ptr = inttoptr i64 %add to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -24,8 +24,8 @@ define void @f2(i64 %addr, i64 %index) {
 ; CHECK-NEXT:    br %r14
   %add1 = add i64 %addr, %index
   %add2 = add i64 %add1, 100
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -37,8 +37,8 @@ define void @f3(i64 %addr, i64 %index) {
 ; CHECK-NEXT:    br %r14
   %add1 = add i64 %addr, 100
   %add2 = add i64 %add1, %index
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -50,8 +50,8 @@ define void @f4(i64 %addr, i64 %index) {
 ; CHECK-NEXT:    br %r14
   %add1 = add i64 %addr, %index
   %add2 = sub i64 %add1, 100
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -63,8 +63,8 @@ define void @f5(i64 %addr, i64 %index) {
 ; CHECK-NEXT:    br %r14
   %add1 = sub i64 %addr, 100
   %add2 = add i64 %add1, %index
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -78,8 +78,8 @@ define void @f6(i64 %addr, i64 %index) {
   %aligned = and i64 %addr, -8
   %or = or i64 %aligned, 6
   %add = add i64 %or, %index
-  %ptr = inttoptr i64 %add to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -92,8 +92,8 @@ define void @f7(i64 %addr, i64 %index) {
 ; CHECK-NEXT:    br %r14
   %or = or i64 %addr, 6
   %add = add i64 %or, %index
-  %ptr = inttoptr i64 %add to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -110,7 +110,7 @@ define void @f8(i64 %addr, i64 %index) {
   %aligned = and i64 %addr, -8
   %add = add i64 %aligned, %index
   %or = or i64 %add, 6
-  %ptr = inttoptr i64 %or to i8 *
-  %a = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 %or to ptr
+  %a = load volatile i8, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/addr-02.ll b/llvm/test/CodeGen/SystemZ/addr-02.ll
index d9e1907dc6da1..27d671651f569 100644
--- a/llvm/test/CodeGen/SystemZ/addr-02.ll
+++ b/llvm/test/CodeGen/SystemZ/addr-02.ll
@@ -6,7 +6,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; A simple index address.
-define void @f1(i64 %addr, i64 %index, i8 **%dst) {
+define void @f1(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lb %r0, 0(%r3,%r2)
@@ -14,14 +14,14 @@ define void @f1(i64 %addr, i64 %index, i8 **%dst) {
 ; CHECK-NEXT:    stg %r0, 0(%r4)
 ; CHECK-NEXT:    br %r14
   %add = add i64 %addr, %index
-  %ptr = inttoptr i64 %add to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; An address with an index and a displacement (order 1).
-define void @f2(i64 %addr, i64 %index, i8 **%dst) {
+define void @f2(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lb %r0, 100(%r3,%r2)
@@ -30,14 +30,14 @@ define void @f2(i64 %addr, i64 %index, i8 **%dst) {
 ; CHECK-NEXT:    br %r14
   %add1 = add i64 %addr, %index
   %add2 = add i64 %add1, 100
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; An address with an index and a displacement (order 2).
-define void @f3(i64 %addr, i64 %index, i8 **%dst) {
+define void @f3(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lb %r0, 100(%r3,%r2)
@@ -46,14 +46,14 @@ define void @f3(i64 %addr, i64 %index, i8 **%dst) {
 ; CHECK-NEXT:    br %r14
   %add1 = add i64 %addr, 100
   %add2 = add i64 %add1, %index
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; An address with an index and a subtracted displacement (order 1).
-define void @f4(i64 %addr, i64 %index, i8 **%dst) {
+define void @f4(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lb %r0, -100(%r3,%r2)
@@ -62,14 +62,14 @@ define void @f4(i64 %addr, i64 %index, i8 **%dst) {
 ; CHECK-NEXT:    br %r14
   %add1 = add i64 %addr, %index
   %add2 = sub i64 %add1, 100
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; An address with an index and a subtracted displacement (order 2).
-define void @f5(i64 %addr, i64 %index, i8 **%dst) {
+define void @f5(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f5:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lb %r0, -100(%r3,%r2)
@@ -78,14 +78,14 @@ define void @f5(i64 %addr, i64 %index, i8 **%dst) {
 ; CHECK-NEXT:    br %r14
   %add1 = sub i64 %addr, 100
   %add2 = add i64 %add1, %index
-  %ptr = inttoptr i64 %add2 to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; An address with an index and a displacement added using OR.
-define void @f6(i64 %addr, i64 %index, i8 **%dst) {
+define void @f6(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f6:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    nill %r2, 65528
@@ -96,14 +96,14 @@ define void @f6(i64 %addr, i64 %index, i8 **%dst) {
   %aligned = and i64 %addr, -8
   %or = or i64 %aligned, 6
   %add = add i64 %or, %index
-  %ptr = inttoptr i64 %add to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; Like f6, but without the masking.  This OR doesn't count as a displacement.
-define void @f7(i64 %addr, i64 %index, i8 **%dst) {
+define void @f7(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f7:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    oill %r2, 6
@@ -113,15 +113,15 @@ define void @f7(i64 %addr, i64 %index, i8 **%dst) {
 ; CHECK-NEXT:    br %r14
   %or = or i64 %addr, 6
   %add = add i64 %or, %index
-  %ptr = inttoptr i64 %add to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %add to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }
 
 ; Like f6, but with the OR applied after the index.  We don't know anything
 ; about the alignment of %add here.
-define void @f8(i64 %addr, i64 %index, i8 **%dst) {
+define void @f8(i64 %addr, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f8:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    nill %r2, 65528
@@ -133,8 +133,8 @@ define void @f8(i64 %addr, i64 %index, i8 **%dst) {
   %aligned = and i64 %addr, -8
   %add = add i64 %aligned, %index
   %or = or i64 %add, 6
-  %ptr = inttoptr i64 %or to i8 *
-  %a = load volatile i8, i8 *%ptr
-  store volatile i8 *%ptr, i8 **%dst
+  %ptr = inttoptr i64 %or to ptr
+  %a = load volatile i8, ptr %ptr
+  store volatile ptr %ptr, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/addr-03.ll b/llvm/test/CodeGen/SystemZ/addr-03.ll
index 1a5c10d050aa3..3720568a77d5f 100644
--- a/llvm/test/CodeGen/SystemZ/addr-03.ll
+++ b/llvm/test/CodeGen/SystemZ/addr-03.ll
@@ -6,8 +6,8 @@ define void @f1() {
 ; CHECK-LABEL: f1:
 ; CHECK: lb %r0, 0
 ; CHECK: br %r14
-  %ptr = inttoptr i64 0 to i8 *
-  %val = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 0 to ptr
+  %val = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -15,8 +15,8 @@ define void @f2() {
 ; CHECK-LABEL: f2:
 ; CHECK: lb %r0, -524288
 ; CHECK: br %r14
-  %ptr = inttoptr i64 -524288 to i8 *
-  %val = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 -524288 to ptr
+  %val = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -24,8 +24,8 @@ define void @f3() {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: lb %r0, -524289
 ; CHECK: br %r14
-  %ptr = inttoptr i64 -524289 to i8 *
-  %val = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 -524289 to ptr
+  %val = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -33,8 +33,8 @@ define void @f4() {
 ; CHECK-LABEL: f4:
 ; CHECK: lb %r0, 524287
 ; CHECK: br %r14
-  %ptr = inttoptr i64 524287 to i8 *
-  %val = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 524287 to ptr
+  %val = load volatile i8, ptr %ptr
   ret void
 }
 
@@ -42,7 +42,7 @@ define void @f5() {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: lb %r0, 524288
 ; CHECK: br %r14
-  %ptr = inttoptr i64 524288 to i8 *
-  %val = load volatile i8, i8 *%ptr
+  %ptr = inttoptr i64 524288 to ptr
+  %val = load volatile i8, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/alias-01.ll b/llvm/test/CodeGen/SystemZ/alias-01.ll
index 45d871e79dfec..008d659219172 100644
--- a/llvm/test/CodeGen/SystemZ/alias-01.ll
+++ b/llvm/test/CodeGen/SystemZ/alias-01.ll
@@ -3,14 +3,14 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check that there are no spills.
-define void @f1(<16 x i32> *%src1, <16 x float> *%dest) {
+define void @f1(ptr %src1, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r15
 ; CHECK: br %r14
-  %val = load <16 x i32>, <16 x i32> *%src1, !tbaa !1
+  %val = load <16 x i32>, ptr %src1, !tbaa !1
   %add = add <16 x i32> %val, %val
   %res = bitcast <16 x i32> %add to <16 x float>
-  store <16 x float> %res, <16 x float> *%dest, !tbaa !2
+  store <16 x float> %res, ptr %dest, !tbaa !2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/alloca-01.ll b/llvm/test/CodeGen/SystemZ/alloca-01.ll
index 7d02481d3626f..be89eb4501bf5 100644
--- a/llvm/test/CodeGen/SystemZ/alloca-01.ll
+++ b/llvm/test/CodeGen/SystemZ/alloca-01.ll
@@ -8,7 +8,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CHECK-D
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CHECK-FP
 
-declare i64 @bar(i8 *%a, i8 *%b, i8 *%c, i8 *%d, i8 *%e, i64 %f, i64 %g)
+declare i64 @bar(ptr %a, ptr %b, ptr %c, ptr %d, ptr %e, i64 %f, i64 %g)
 
 ; Allocate %length bytes and take addresses based on the result.
 ; There are two stack arguments, so an offset of 160 + 2 * 8 == 176
@@ -56,14 +56,14 @@ define i64 @f1(i64 %length, i64 %index) {
 ; CHECK-FP: lgr %r11, %r15
 ; CHECK-FP: lmg %r6, %r15, 224(%r11)
   %a = alloca i8, i64 %length
-  %b = getelementptr i8, i8 *%a, i64 1
+  %b = getelementptr i8, ptr %a, i64 1
   %cindex = add i64 %index, 3919
-  %c = getelementptr i8, i8 *%a, i64 %cindex
+  %c = getelementptr i8, ptr %a, i64 %cindex
   %dindex = add i64 %index, 3920
-  %d = getelementptr i8, i8 *%a, i64 %dindex
+  %d = getelementptr i8, ptr %a, i64 %dindex
   %eindex = add i64 %index, 4095
-  %e = getelementptr i8, i8 *%a, i64 %eindex
-  %count = call i64 @bar(i8 *%a, i8 *%b, i8 *%c, i8 *%d, i8 *%e, i64 0, i64 0)
+  %e = getelementptr i8, ptr %a, i64 %eindex
+  %count = call i64 @bar(ptr %a, ptr %b, ptr %c, ptr %d, ptr %e, i64 0, i64 0)
   %res = add i64 %count, 1
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/alloca-02.ll b/llvm/test/CodeGen/SystemZ/alloca-02.ll
index 1330c1b012b2f..0f2876e8ed872 100644
--- a/llvm/test/CodeGen/SystemZ/alloca-02.ll
+++ b/llvm/test/CodeGen/SystemZ/alloca-02.ll
@@ -6,7 +6,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CHECK-C
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CHECK-D
 
-declare i64 @bar(i8 *%a)
+declare i64 @bar(ptr %a)
 
 define i64 @f1(i64 %length, i64 %index) {
 ; CHECK-A-LABEL: f1:
@@ -37,16 +37,16 @@ define i64 @f1(i64 %length, i64 %index) {
 ; CHECK-E-DAG: lhi [[TMP:%r[0-5]]], 4
 ; CHECK-E: stcy [[TMP]], 4096({{%r3,%r2|%r2,%r3}})
   %a = alloca i8, i64 %length
-  store volatile i8 0, i8 *%a
-  %b = getelementptr i8, i8 *%a, i64 4095
-  store volatile i8 1, i8 *%b
-  %c = getelementptr i8, i8 *%a, i64 %index
-  store volatile i8 2, i8 *%c
-  %d = getelementptr i8, i8 *%c, i64 4095
-  store volatile i8 3, i8 *%d
-  %e = getelementptr i8, i8 *%d, i64 1
-  store volatile i8 4, i8 *%e
-  %count = call i64 @bar(i8 *%a)
+  store volatile i8 0, ptr %a
+  %b = getelementptr i8, ptr %a, i64 4095
+  store volatile i8 1, ptr %b
+  %c = getelementptr i8, ptr %a, i64 %index
+  store volatile i8 2, ptr %c
+  %d = getelementptr i8, ptr %c, i64 4095
+  store volatile i8 3, ptr %d
+  %e = getelementptr i8, ptr %d, i64 1
+  store volatile i8 4, ptr %e
+  %count = call i64 @bar(ptr %a)
   %res = add i64 %count, 1
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/alloca-03.ll b/llvm/test/CodeGen/SystemZ/alloca-03.ll
index cac569ff41fa3..e331bfbfb8ab3 100644
--- a/llvm/test/CodeGen/SystemZ/alloca-03.ll
+++ b/llvm/test/CodeGen/SystemZ/alloca-03.ll
@@ -11,11 +11,11 @@ define void @f0() {
 ; CHECK-NEXT:    aghi %r15, 168
 ; CHECK-NEXT:    br %r14
   %x = alloca i64
-  store volatile i64 10, i64* %x
+  store volatile i64 10, ptr %x
   ret void
 }
 
-; Allocate %len * 8, no need to align stack.
+; Allocate ptr 8, no need to align stack.
 define void @f1(i64 %len) {
 ; CHECK-LABEL: f1:
 ; CHECK:       # %bb.0:
@@ -35,7 +35,7 @@ define void @f1(i64 %len) {
 ; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)
 ; CHECK-NEXT:    br %r14
   %x = alloca i64, i64 %len
-  store volatile i64 10, i64* %x
+  store volatile i64 10, ptr %x
   ret void
 }
 
@@ -59,7 +59,7 @@ define void @f2() {
 ; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)
 ; CHECK-NEXT:    br %r14
   %x = alloca i64, i64 1, align 128
-  store volatile i64 10, i64* %x, align 128
+  store volatile i64 10, ptr %x, align 128
   ret void
 }
 
@@ -84,7 +84,7 @@ define void @f3(i64 %len) {
 ; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)
 ; CHECK-NEXT:    br %r14
   %x = alloca i64, i64 %len, align 128
-  store volatile i64 10, i64* %x, align 128
+  store volatile i64 10, ptr %x, align 128
   ret void
 }
 
@@ -98,7 +98,7 @@ define void @f4() {
 ; CHECK-NEXT:    aghi %r15, 168
 ; CHECK-NEXT:    br %r14
   %x = alloca i32
-  store volatile i32 10, i32* %x
+  store volatile i32 10, ptr %x
   ret void
 }
 
@@ -122,6 +122,6 @@ define void @f5() {
 ; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)
 ; CHECK-NEXT:    br %r14
   %x = alloca i32, i64 1, align 128
-  store volatile i32 10, i32* %x
+  store volatile i32 10, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/alloca-04.ll b/llvm/test/CodeGen/SystemZ/alloca-04.ll
index 86c77493d3e9b..628dfbb223f71 100644
--- a/llvm/test/CodeGen/SystemZ/alloca-04.ll
+++ b/llvm/test/CodeGen/SystemZ/alloca-04.ll
@@ -6,7 +6,7 @@
 
 define void @f6() "no-realign-stack" {
   %x = alloca i64, i64 1, align 128
-  store volatile i64 10, i64* %x, align 128
+  store volatile i64 10, ptr %x, align 128
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/and-01.ll b/llvm/test/CodeGen/SystemZ/and-01.ll
index a899c1ccd8e5c..ad759387f28c8 100644
--- a/llvm/test/CodeGen/SystemZ/and-01.ll
+++ b/llvm/test/CodeGen/SystemZ/and-01.ll
@@ -15,92 +15,92 @@ define i32 @f1(i32 %a, i32 %b) {
 }
 
 ; Check the low end of the N range.
-define i32 @f2(i32 %a, i32 *%src) {
+define i32 @f2(i32 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: n %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the high end of the aligned N range.
-define i32 @f3(i32 %a, i32 *%src) {
+define i32 @f3(i32 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: n %r2, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the next word up, which should use NY instead of N.
-define i32 @f4(i32 %a, i32 *%src) {
+define i32 @f4(i32 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ny %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the high end of the aligned NY range.
-define i32 @f5(i32 %a, i32 *%src) {
+define i32 @f5(i32 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ny %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 %a, i32 *%src) {
+define i32 @f6(i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: n %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the high end of the negative aligned NY range.
-define i32 @f7(i32 %a, i32 *%src) {
+define i32 @f7(i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ny %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the low end of the NY range.
-define i32 @f8(i32 %a, i32 *%src) {
+define i32 @f8(i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: ny %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i32 %a, i32 *%src) {
+define i32 @f9(i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: n %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
@@ -112,8 +112,8 @@ define i32 @f10(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
@@ -125,38 +125,38 @@ define i32 @f11(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %and = and i32 %a, %b
   ret i32 %and
 }
 
 ; Check that ANDs of spilled values can use N rather than NR.
-define i32 @f12(i32 *%ptr0) {
+define i32 @f12(ptr %ptr0) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: n %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/and-03.ll b/llvm/test/CodeGen/SystemZ/and-03.ll
index 2f4ffe99e705f..071fd0dbd2d77 100644
--- a/llvm/test/CodeGen/SystemZ/and-03.ll
+++ b/llvm/test/CodeGen/SystemZ/and-03.ll
@@ -15,70 +15,70 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; Check NG with no displacement.
-define i64 @f2(i64 %a, i64 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ng %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %and = and i64 %a, %b
   ret i64 %and
 }
 
 ; Check the high end of the aligned NG range.
-define i64 @f3(i64 %a, i64 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ng %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %and = and i64 %a, %b
   ret i64 %and
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ng %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %and = and i64 %a, %b
   ret i64 %and
 }
 
 ; Check the high end of the negative aligned NG range.
-define i64 @f5(i64 %a, i64 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ng %r2, -8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %and = and i64 %a, %b
   ret i64 %and
 }
 
 ; Check the low end of the NG range.
-define i64 @f6(i64 %a, i64 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ng %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %and = and i64 %a, %b
   ret i64 %and
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i64 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: ng %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %and = and i64 %a, %b
   ret i64 %and
 }
@@ -90,38 +90,38 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %and = and i64 %a, %b
   ret i64 %and
 }
 
 ; Check that ANDs of spilled values can use NG rather than NGR.
-define i64 @f9(i64 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: ng %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/and-05.ll b/llvm/test/CodeGen/SystemZ/and-05.ll
index 32719a4db5841..5f28480966e10 100644
--- a/llvm/test/CodeGen/SystemZ/and-05.ll
+++ b/llvm/test/CodeGen/SystemZ/and-05.ll
@@ -3,134 +3,134 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the lowest useful constant, expressed as a signed integer.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: ni 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %and = and i8 %val, -255
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the highest useful constant, expressed as a signed integer.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %and = and i8 %val, -2
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the lowest useful constant, expressed as an unsigned integer.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: ni 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 1
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the highest useful constant, expressed as a unsigned integer.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 254
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the high end of the NI range.
-define void @f5(i8 *%src) {
+define void @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ni 4095(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which should use NIY instead of NI.
-define void @f6(i8 *%src) {
+define void @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: niy 4096(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the high end of the NIY range.
-define void @f7(i8 *%src) {
+define void @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: niy 524287(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(i8 *%src) {
+define void @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, 524288
 ; CHECK: ni 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative NIY range.
-define void @f9(i8 *%src) {
+define void @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: niy -1(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the low end of the NIY range.
-define void @f10(i8 *%src) {
+define void @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: niy -524288(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f11(i8 *%src) {
+define void @f11(ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r2, -524289
 ; CHECK: ni 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
@@ -142,10 +142,10 @@ define void @f12(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }
 
@@ -157,9 +157,9 @@ define void @f13(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %and = and i8 %val, 127
-  store i8 %and, i8 *%ptr
+  store i8 %and, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/and-06.ll b/llvm/test/CodeGen/SystemZ/and-06.ll
index 48d696bf532b5..ce5cfdb62280d 100644
--- a/llvm/test/CodeGen/SystemZ/and-06.ll
+++ b/llvm/test/CodeGen/SystemZ/and-06.ll
@@ -4,105 +4,105 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Zero extension to 32 bits, negative constant.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %and = and i32 %ext, -2
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 64 bits, negative constant.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %and = and i64 %ext, -2
   %trunc = trunc i64 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 32 bits, positive constant.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %and = and i32 %ext, 254
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 64 bits, positive constant.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %and = and i64 %ext, 254
   %trunc = trunc i64 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 32 bits, negative constant.
-define void @f5(i8 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %and = and i32 %ext, -2
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 64 bits, negative constant.
-define void @f6(i8 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %and = and i64 %ext, -2
   %trunc = trunc i64 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 32 bits, positive constant.
-define void @f7(i8 *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %and = and i32 %ext, 254
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 64 bits, positive constant.
-define void @f8(i8 *%ptr) {
+define void @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: ni 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %and = and i64 %ext, 254
   %trunc = trunc i64 %and to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/and-08.ll b/llvm/test/CodeGen/SystemZ/and-08.ll
index 4b3d83bdb2e24..9d43667f0998f 100644
--- a/llvm/test/CodeGen/SystemZ/and-08.ll
+++ b/llvm/test/CodeGen/SystemZ/and-08.ll
@@ -8,286 +8,286 @@
 @g2dst = dso_local global i16 2
 
 ; Test the simple i8 case.
-define dso_local void @f1(i8 *%ptr1) {
+define dso_local void @f1(ptr %ptr1) {
 ; CHECK-LABEL: f1:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
-  %old = load i8, i8 *%ptr2
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
+  %old = load i8, ptr %ptr2
   %and = and i8 %val, %old
-  store i8 %and, i8 *%ptr2
+  store i8 %and, ptr %ptr2
   ret void
 }
 
 ; ...and again in reverse.
-define dso_local void @f2(i8 *%ptr1) {
+define dso_local void @f2(ptr %ptr1) {
 ; CHECK-LABEL: f2:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
-  %old = load i8, i8 *%ptr2
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
+  %old = load i8, ptr %ptr2
   %and = and i8 %old, %val
-  store i8 %and, i8 *%ptr2
+  store i8 %and, ptr %ptr2
   ret void
 }
 
 ; Test i8 cases where one value is zero-extended to 32 bits and the other
 ; sign-extended.
-define dso_local void @f3(i8 *%ptr1) {
+define dso_local void @f3(ptr %ptr1) {
 ; CHECK-LABEL: f3:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %extval = zext i8 %val to i32
-  %old = load i8, i8 *%ptr2
+  %old = load i8, ptr %ptr2
   %extold = sext i8 %old to i32
   %and = and i32 %extval, %extold
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; ...and again with the extension types reversed.
-define dso_local void @f4(i8 *%ptr1) {
+define dso_local void @f4(ptr %ptr1) {
 ; CHECK-LABEL: f4:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %extval = sext i8 %val to i32
-  %old = load i8, i8 *%ptr2
+  %old = load i8, ptr %ptr2
   %extold = zext i8 %old to i32
   %and = and i32 %extval, %extold
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; ...and again with two sign extensions.
-define dso_local void @f5(i8 *%ptr1) {
+define dso_local void @f5(ptr %ptr1) {
 ; CHECK-LABEL: f5:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %extval = sext i8 %val to i32
-  %old = load i8, i8 *%ptr2
+  %old = load i8, ptr %ptr2
   %extold = sext i8 %old to i32
   %and = and i32 %extval, %extold
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; ...and again with two zero extensions.
-define dso_local void @f6(i8 *%ptr1) {
+define dso_local void @f6(ptr %ptr1) {
 ; CHECK-LABEL: f6:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %extval = zext i8 %val to i32
-  %old = load i8, i8 *%ptr2
+  %old = load i8, ptr %ptr2
   %extold = zext i8 %old to i32
   %and = and i32 %extval, %extold
   %trunc = trunc i32 %and to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i8 cases where the value is extended to 64 bits (just one case
 ; this time).
-define dso_local void @f7(i8 *%ptr1) {
+define dso_local void @f7(ptr %ptr1) {
 ; CHECK-LABEL: f7:
 ; CHECK: nc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %extval = sext i8 %val to i64
-  %old = load i8, i8 *%ptr2
+  %old = load i8, ptr %ptr2
   %extold = zext i8 %old to i64
   %and = and i64 %extval, %extold
   %trunc = trunc i64 %and to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test the simple i16 case.
-define dso_local void @f8(i16 *%ptr1) {
+define dso_local void @f8(ptr %ptr1) {
 ; CHECK-LABEL: f8:
 ; CHECK: nc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
-  %old = load i16, i16 *%ptr2
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
+  %old = load i16, ptr %ptr2
   %and = and i16 %val, %old
-  store i16 %and, i16 *%ptr2
+  store i16 %and, ptr %ptr2
   ret void
 }
 
 ; Test i16 cases where the value is extended to 32 bits.
-define dso_local void @f9(i16 *%ptr1) {
+define dso_local void @f9(ptr %ptr1) {
 ; CHECK-LABEL: f9:
 ; CHECK: nc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
   %extval = zext i16 %val to i32
-  %old = load i16, i16 *%ptr2
+  %old = load i16, ptr %ptr2
   %extold = sext i16 %old to i32
   %and = and i32 %extval, %extold
   %trunc = trunc i32 %and to i16
-  store i16 %trunc, i16 *%ptr2
+  store i16 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i16 cases where the value is extended to 64 bits.
-define dso_local void @f10(i16 *%ptr1) {
+define dso_local void @f10(ptr %ptr1) {
 ; CHECK-LABEL: f10:
 ; CHECK: nc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
   %extval = sext i16 %val to i64
-  %old = load i16, i16 *%ptr2
+  %old = load i16, ptr %ptr2
   %extold = zext i16 %old to i64
   %and = and i64 %extval, %extold
   %trunc = trunc i64 %and to i16
-  store i16 %trunc, i16 *%ptr2
+  store i16 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test the simple i32 case.
-define dso_local void @f11(i32 *%ptr1) {
+define dso_local void @f11(ptr %ptr1) {
 ; CHECK-LABEL: f11:
 ; CHECK: nc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
-  %old = load i32, i32 *%ptr2
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
+  %old = load i32, ptr %ptr2
   %and = and i32 %old, %val
-  store i32 %and, i32 *%ptr2
+  store i32 %and, ptr %ptr2
   ret void
 }
 
 ; Test i32 cases where the value is extended to 64 bits.
-define dso_local void @f12(i32 *%ptr1) {
+define dso_local void @f12(ptr %ptr1) {
 ; CHECK-LABEL: f12:
 ; CHECK: nc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
   %extval = sext i32 %val to i64
-  %old = load i32, i32 *%ptr2
+  %old = load i32, ptr %ptr2
   %extold = zext i32 %old to i64
   %and = and i64 %extval, %extold
   %trunc = trunc i64 %and to i32
-  store i32 %trunc, i32 *%ptr2
+  store i32 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test the i64 case.
-define dso_local void @f13(i64 *%ptr1) {
+define dso_local void @f13(ptr %ptr1) {
 ; CHECK-LABEL: f13:
 ; CHECK: nc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2
+  store i64 %and, ptr %ptr2
   ret void
 }
 
 ; Make sure that we don't use NC if the first load is volatile.
-define dso_local void @f14(i64 *%ptr1) {
+define dso_local void @f14(ptr %ptr1) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load volatile i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load volatile i64, ptr %ptr1
+  %old = load i64, ptr %ptr2
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2
+  store i64 %and, ptr %ptr2
   ret void
 }
 
 ; ...likewise the second.
-define dso_local void @f15(i64 *%ptr1) {
+define dso_local void @f15(ptr %ptr1) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  %old = load volatile i64, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  %old = load volatile i64, ptr %ptr2
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2
+  store i64 %and, ptr %ptr2
   ret void
 }
 
 ; ...likewise the store.
-define dso_local void @f16(i64 *%ptr1) {
+define dso_local void @f16(ptr %ptr1) {
 ; CHECK-LABEL: f16:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2
   %and = and i64 %old, %val
-  store volatile i64 %and, i64 *%ptr2
+  store volatile i64 %and, ptr %ptr2
   ret void
 }
 
 ; Test that NC is not used for aligned loads and stores if there is
 ; no way of telling whether they alias.  We don't want to use NC in
 ; cases where the addresses could be equal.
-define dso_local void @f17(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f17(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f17:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2
+  store i64 %and, ptr %ptr2
   ret void
 }
 
 ; ...but if one of the loads isn't aligned, we can't be sure.
-define dso_local void @f18(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f18(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f18:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2
-  %old = load i64, i64 *%ptr2
+  %val = load i64, ptr %ptr1, align 2
+  %old = load i64, ptr %ptr2
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2
+  store i64 %and, ptr %ptr2
   ret void
 }
 
 ; Repeat the previous test with the operands in the opposite order.
-define dso_local void @f19(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f19(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f19:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2
-  %old = load i64, i64 *%ptr2
+  %val = load i64, ptr %ptr1, align 2
+  %old = load i64, ptr %ptr2
   %and = and i64 %val, %old
-  store i64 %and, i64 *%ptr2
+  store i64 %and, ptr %ptr2
   ret void
 }
 
 ; ...and again with the other operand being unaligned.
-define dso_local void @f20(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f20(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f20:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2, align 2
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2, align 2
   %and = and i64 %val, %old
-  store i64 %and, i64 *%ptr2, align 2
+  store i64 %and, ptr %ptr2, align 2
   ret void
 }
 
@@ -297,92 +297,92 @@ define dso_local void @f21(i64 %base) {
 ; CHECK-NOT: nc
 ; CHECK: br %r14
   %add = add i64 %base, 1
-  %ptr1 = inttoptr i64 %base to i64 *
-  %ptr2 = inttoptr i64 %add to i64 *
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2, align 1
+  %ptr1 = inttoptr i64 %base to ptr
+  %ptr2 = inttoptr i64 %add to ptr
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2, align 1
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2, align 1
+  store i64 %and, ptr %ptr2, align 1
   ret void
 }
 
 ; Test that we can use NC for global addresses for i8.
-define dso_local void @f22(i8 *%ptr) {
+define dso_local void @f22(ptr %ptr) {
 ; CHECK-LABEL: f22:
 ; CHECK-DAG: larl [[SRC:%r[0-5]]], g1src
 ; CHECK-DAG: larl [[DST:%r[0-5]]], g1dst
 ; CHECK: nc 0(1,[[DST]]), 0([[SRC]])
 ; CHECK: br %r14
-  %val = load i8, i8 *@g1src
-  %old = load i8, i8 *@g1dst
+  %val = load i8, ptr at g1src
+  %old = load i8, ptr at g1dst
   %and = and i8 %val, %old
-  store i8 %and, i8 *@g1dst
+  store i8 %and, ptr at g1dst
   ret void
 }
 
 ; Test that we use NC even where LHRL and STHRL are available.
-define dso_local void @f23(i16 *%ptr) {
+define dso_local void @f23(ptr %ptr) {
 ; CHECK-LABEL: f23:
 ; CHECK-DAG: larl [[SRC:%r[0-5]]], g2src
 ; CHECK-DAG: larl [[DST:%r[0-5]]], g2dst
 ; CHECK: nc 0(2,[[DST]]), 0([[SRC]])
 ; CHECK: br %r14
-  %val = load i16, i16 *@g2src
-  %old = load i16, i16 *@g2dst
+  %val = load i16, ptr at g2src
+  %old = load i16, ptr at g2dst
   %and = and i16 %val, %old
-  store i16 %and, i16 *@g2dst
+  store i16 %and, ptr at g2dst
   ret void
 }
 
 ; Test a case where offset disambiguation is enough.
-define dso_local void @f24(i64 *%ptr1) {
+define dso_local void @f24(ptr %ptr1) {
 ; CHECK-LABEL: f24:
 ; CHECK: nc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1, align 1
-  %old = load i64, i64 *%ptr2, align 1
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1, align 1
+  %old = load i64, ptr %ptr2, align 1
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2, align 1
+  store i64 %and, ptr %ptr2, align 1
   ret void
 }
 
 ; Test a case where TBAA tells us there is no alias.
-define dso_local void @f25(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f25(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f25:
 ; CHECK: nc 0(8,%r3), 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2, !tbaa !3
-  %old = load i64, i64 *%ptr2, align 2, !tbaa !4
+  %val = load i64, ptr %ptr1, align 2, !tbaa !3
+  %old = load i64, ptr %ptr2, align 2, !tbaa !4
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2, align 2, !tbaa !4
+  store i64 %and, ptr %ptr2, align 2, !tbaa !4
   ret void
 }
 
 ; Test a case where TBAA information is present but doesn't help.
-define dso_local void @f26(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f26(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f26:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2, !tbaa !3
-  %old = load i64, i64 *%ptr2, align 2, !tbaa !3
+  %val = load i64, ptr %ptr1, align 2, !tbaa !3
+  %old = load i64, ptr %ptr2, align 2, !tbaa !3
   %and = and i64 %old, %val
-  store i64 %and, i64 *%ptr2, align 2, !tbaa !3
+  store i64 %and, ptr %ptr2, align 2, !tbaa !3
   ret void
 }
 
 ; Test a case where one of the loads are optimized by the DAGCombiner to a
 ; zero-extending load of half the original size.
-define dso_local void @f27(i16* noalias %ptr1, i16* noalias %ptr2) {
+define dso_local void @f27(ptr noalias %ptr1, ptr noalias %ptr2) {
 ; CHECK-LABEL: f27:
 ; CHECK-NOT: nc
 ; CHECK: br %r14
 entry:
-  %0 = load i16, i16 *%ptr1, align 2
+  %0 = load i16, ptr %ptr1, align 2
   %1 = lshr i16 %0, 8
-  %2 = load i16, i16 *%ptr2, align 2
+  %2 = load i16, ptr %ptr2, align 2
   %and7 = and i16 %1, %2
-  store i16 %and7, i16 *%ptr1, align 2
+  store i16 %and7, ptr %ptr1, align 2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/args-04.ll b/llvm/test/CodeGen/SystemZ/args-04.ll
index 475cceb106e5d..eac2d468d9ed6 100644
--- a/llvm/test/CodeGen/SystemZ/args-04.ll
+++ b/llvm/test/CodeGen/SystemZ/args-04.ll
@@ -52,7 +52,7 @@ define double @f6(i8 %r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2) {
 ; fp128s are passed indirectly.  Do some arithmetic so that the value
 ; must be interpreted as a float, rather than as a block of memory to
 ; be copied.
-define void @f7(fp128 *%r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
+define void @f7(ptr %r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
                 fp128 %r6) {
 ; CHECK-LABEL: f7:
 ; CHECK: ld %f0, 0(%r6)
@@ -62,7 +62,7 @@ define void @f7(fp128 *%r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
   %y = fadd fp128 %r6, %r6
-  store fp128 %y, fp128 *%r2
+  store fp128 %y, ptr %r2
   ret void
 }
 
@@ -109,7 +109,7 @@ define float @f12(i8 %r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
 }
 
 ; Test a case where the fp128 address is passed on the stack.
-define void @f13(fp128 *%r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
+define void @f13(ptr %r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
                  fp128 %r6, i64 %s1, float %f4, double %f6, i64 %s2,
                  float %s3, fp128 %s4) {
 ; CHECK-LABEL: f13:
@@ -121,7 +121,7 @@ define void @f13(fp128 *%r2, i16 %r3, i32 %r4, i64 %r5, float %f0, double %f2,
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
   %y = fadd fp128 %s4, %s4
-  store fp128 %y, fp128 *%r2
+  store fp128 %y, ptr %r2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/args-05.ll b/llvm/test/CodeGen/SystemZ/args-05.ll
index 8a6ef4c54ffef..b8e9d85bc2d74 100644
--- a/llvm/test/CodeGen/SystemZ/args-05.ll
+++ b/llvm/test/CodeGen/SystemZ/args-05.ll
@@ -3,45 +3,45 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Zero extension of something that is already zero-extended.
-define void @f1(i32 zeroext %r2, i64 *%r3) {
+define void @f1(i32 zeroext %r2, ptr %r3) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: stg %r2, 0(%r3)
 ; CHECK: br %r14
   %conv = zext i32 %r2 to i64
-  store i64 %conv, i64* %r3
+  store i64 %conv, ptr %r3
   ret void
 }
 
 ; Sign extension of something that is already sign-extended.
-define void @f2(i32 signext %r2, i64 *%r3) {
+define void @f2(i32 signext %r2, ptr %r3) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: stg %r2, 0(%r3)
 ; CHECK: br %r14
   %conv = sext i32 %r2 to i64
-  store i64 %conv, i64* %r3
+  store i64 %conv, ptr %r3
   ret void
 }
 
 ; Sign extension of something that is already zero-extended.
-define void @f3(i32 zeroext %r2, i64 *%r3) {
+define void @f3(i32 zeroext %r2, ptr %r3) {
 ; CHECK-LABEL: f3:
 ; CHECK: lgfr [[REGISTER:%r[0-5]+]], %r2
 ; CHECK: stg [[REGISTER]], 0(%r3)
 ; CHECK: br %r14
   %conv = sext i32 %r2 to i64
-  store i64 %conv, i64* %r3
+  store i64 %conv, ptr %r3
   ret void
 }
 
 ; Zero extension of something that is already sign-extended.
-define void @f4(i32 signext %r2, i64 *%r3) {
+define void @f4(i32 signext %r2, ptr %r3) {
 ; CHECK-LABEL: f4:
 ; CHECK: llgfr [[REGISTER:%r[0-5]+]], %r2
 ; CHECK: stg [[REGISTER]], 0(%r3)
 ; CHECK: br %r14
   %conv = zext i32 %r2 to i64
-  store i64 %conv, i64* %r3
+  store i64 %conv, ptr %r3
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/args-10.ll b/llvm/test/CodeGen/SystemZ/args-10.ll
index 6083c4415b332..9f534a01e239b 100644
--- a/llvm/test/CodeGen/SystemZ/args-10.ll
+++ b/llvm/test/CodeGen/SystemZ/args-10.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Do some arithmetic so that we can see the register being used.
-define void @f1(i128 *%r2, i16 %r3, i32 %r4, i64 %r5, i128 %r6) {
+define void @f1(ptr %r2, i16 %r3, i32 %r4, i64 %r5, i128 %r6) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG:  lg [[REGL:%r[0-5]+]], 8(%r6)
 ; CHECK-DAG:  lg [[REGH:%r[0-5]+]], 0(%r6)
@@ -13,12 +13,12 @@ define void @f1(i128 *%r2, i16 %r3, i32 %r4, i64 %r5, i128 %r6) {
 ; CHECK-DAG:  stg [[REGH]], 0(%r2)
 ; CHECK:      br %r14
   %y = add i128 %r6, %r6
-  store i128 %y, i128 *%r2
+  store i128 %y, ptr %r2
   ret void
 }
 
 ; Test a case where the i128 address is passed on the stack.
-define void @f2(i128 *%r2, i16 %r3, i32 %r4, i64 %r5,
+define void @f2(ptr %r2, i16 %r3, i32 %r4, i64 %r5,
                 i128 %r6, i64 %s1, i64 %s2, i128 %s4) {
 ; CHECK-LABEL: f2:
 ; CHECK:      lg [[ADDR:%r[1-5]+]], 176(%r15)
@@ -30,7 +30,7 @@ define void @f2(i128 *%r2, i16 %r3, i32 %r4, i64 %r5,
 ; CHECK-DAG:  stg [[REGH]], 0(%r2)
 ; CHECK:      br %r14
   %y = add i128 %s4, %s4
-  store i128 %y, i128 *%r2
+  store i128 %y, ptr %r2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/args-11.ll b/llvm/test/CodeGen/SystemZ/args-11.ll
index f3bd51d23787f..ba793680cf41c 100644
--- a/llvm/test/CodeGen/SystemZ/args-11.ll
+++ b/llvm/test/CodeGen/SystemZ/args-11.ll
@@ -22,9 +22,9 @@ define i32 @fn2() {
 ; CHECK-NEXT:    lmg %r14, %r15, 296(%r15)
 ; CHECK-NEXT:    br %r14
   %1 = alloca i32
-  store i32 -1, i32* %1
+  store i32 -1, ptr %1
   call void @fn1(i96 0)
-  %2 = load i32, i32* %1
+  %2 = load i32, ptr %1
   ret i32 %2
 }
 
@@ -47,8 +47,8 @@ define i32 @fn4() {
 ; CHECK-NEXT:    lmg %r14, %r15, 304(%r15)
 ; CHECK-NEXT:    br %r14
   %1 = alloca i32
-  store i32 -1, i32* %1
+  store i32 -1, ptr %1
   call void @fn3(i136 0)
-  %2 = load i32, i32* %1
+  %2 = load i32, ptr %1
   ret i32 %2
 }

diff  --git a/llvm/test/CodeGen/SystemZ/asm-01.ll b/llvm/test/CodeGen/SystemZ/asm-01.ll
index f003eb2cca134..2c4613cacb07c 100644
--- a/llvm/test/CodeGen/SystemZ/asm-01.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-01.ll
@@ -8,8 +8,8 @@ define void @f1(i64 %base) {
 ; CHECK-LABEL: f1:
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
-  %addr = inttoptr i64 %base to i64 *
-  call void asm "blah $0", "=*Q" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %base to ptr
+  call void asm "blah $0", "=*Q" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -20,8 +20,8 @@ define void @f2(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, -1
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*Q" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*Q" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -31,8 +31,8 @@ define void @f3(i64 %base) {
 ; CHECK: blah 4095(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 4095
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*Q" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*Q" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -43,8 +43,8 @@ define void @f4(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 4096
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*Q" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*Q" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -55,7 +55,7 @@ define void @f5(i64 %base, i64 %index) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*Q" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*Q" (ptr elementtype(i64) %addr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/asm-02.ll b/llvm/test/CodeGen/SystemZ/asm-02.ll
index dd92e6b06c280..c050bd5c7b74e 100644
--- a/llvm/test/CodeGen/SystemZ/asm-02.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-02.ll
@@ -8,8 +8,8 @@ define void @f1(i64 %base) {
 ; CHECK-LABEL: f1:
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
-  %addr = inttoptr i64 %base to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %base to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -20,8 +20,8 @@ define void @f2(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, -1
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -31,8 +31,8 @@ define void @f3(i64 %base) {
 ; CHECK: blah 4095(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 4095
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -43,8 +43,8 @@ define void @f4(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 4096
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -54,8 +54,8 @@ define void @f5(i64 %base, i64 %index) {
 ; CHECK: blah 0(%r3,%r2)
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -66,8 +66,8 @@ define void @f6(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add = add i64 %base, 4095
   %addi = add i64 %add, %index
-  %addr = inttoptr i64 %addi to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %addi to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -79,7 +79,7 @@ define void @f7(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add = add i64 %base, 4096
   %addi = add i64 %add, %index
-  %addr = inttoptr i64 %addi to i64 *
-  call void asm "blah $0", "=*R" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %addi to ptr
+  call void asm "blah $0", "=*R" (ptr elementtype(i64) %addr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/asm-03.ll b/llvm/test/CodeGen/SystemZ/asm-03.ll
index eebab2643f285..f55a3b21182e4 100644
--- a/llvm/test/CodeGen/SystemZ/asm-03.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-03.ll
@@ -9,8 +9,8 @@ define void @f1(i64 %base) {
 ; CHECK: blah -524288(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, -524288
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*S" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*S" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -21,8 +21,8 @@ define void @f2(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, -524289
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*S" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*S" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -32,8 +32,8 @@ define void @f3(i64 %base) {
 ; CHECK: blah 524287(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 524287
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*S" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*S" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -44,7 +44,7 @@ define void @f4(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 524288
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*S" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*S" (ptr elementtype(i64) %addr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/asm-04.ll b/llvm/test/CodeGen/SystemZ/asm-04.ll
index 0322fe700060b..879182b540beb 100644
--- a/llvm/test/CodeGen/SystemZ/asm-04.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-04.ll
@@ -9,8 +9,8 @@ define void @f1(i64 %base) {
 ; CHECK: blah -524288(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, -524288
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*T" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*T" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -21,8 +21,8 @@ define void @f2(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, -524289
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*T" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*T" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -32,8 +32,8 @@ define void @f3(i64 %base) {
 ; CHECK: blah 524287(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 524287
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*T" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*T" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -44,8 +44,8 @@ define void @f4(i64 %base) {
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %base, 524288
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*T" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*T" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -55,8 +55,8 @@ define void @f5(i64 %base, i64 %index) {
 ; CHECK: blah 0(%r3,%r2)
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %addr = inttoptr i64 %add to i64 *
-  call void asm "blah $0", "=*T" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %add to ptr
+  call void asm "blah $0", "=*T" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -67,7 +67,7 @@ define void @f6(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add = add i64 %base, 524287
   %addi = add i64 %add, %index
-  %addr = inttoptr i64 %addi to i64 *
-  call void asm "blah $0", "=*T" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %addi to ptr
+  call void asm "blah $0", "=*T" (ptr elementtype(i64) %addr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/asm-05.ll b/llvm/test/CodeGen/SystemZ/asm-05.ll
index 6b8556832cfeb..9342eb2c3c5fb 100644
--- a/llvm/test/CodeGen/SystemZ/asm-05.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-05.ll
@@ -7,8 +7,8 @@ define void @f1(i64 %base) {
 ; CHECK-LABEL: f1:
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
-  %addr = inttoptr i64 %base to i64 *
-  call void asm "blah $0", "=*m" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %base to ptr
+  call void asm "blah $0", "=*m" (ptr elementtype(i64) %addr)
   ret void
 }
 
@@ -16,7 +16,7 @@ define void @f2(i64 %base) {
 ; CHECK-LABEL: f2:
 ; CHECK: blah 0(%r2)
 ; CHECK: br %r14
-  %addr = inttoptr i64 %base to i64 *
-  call void asm "blah $0", "=*o" (i64* elementtype(i64) %addr)
+  %addr = inttoptr i64 %base to ptr
+  call void asm "blah $0", "=*o" (ptr elementtype(i64) %addr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/asm-09.ll b/llvm/test/CodeGen/SystemZ/asm-09.ll
index b9d86cfbfebbc..66da03b795dfb 100644
--- a/llvm/test/CodeGen/SystemZ/asm-09.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-09.ll
@@ -2,47 +2,47 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s
 
-define void @f1(i32 *%dst) {
+define void @f1(ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: lhi %r0, 100
 ; CHECK: blah %r0
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
   %val = call i32 asm "blah $0", "=r,0" (i8 100)
-  store i32 %val, i32 *%dst
+  store i32 %val, ptr %dst
   ret void
 }
 
-define void @f2(i32 *%dst) {
+define void @f2(ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi %r0, 101
 ; CHECK: blah %r0
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
   %val = call i32 asm "blah $0", "=r,0" (i16 101)
-  store i32 %val, i32 *%dst
+  store i32 %val, ptr %dst
   ret void
 }
 
-define void @f3(i32 *%dst) {
+define void @f3(ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: lhi %r0, 102
 ; CHECK: blah %r0
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
   %val = call i32 asm "blah $0", "=r,0" (i32 102)
-  store i32 %val, i32 *%dst
+  store i32 %val, ptr %dst
   ret void
 }
 
 ; FIXME: this uses "lhi %r0, 103", but should use "lghi %r0, 103".
-define void @f4(i32 *%dst) {
+define void @f4(ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK: blah %r0
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
   %val = call i32 asm "blah $0", "=r,0" (i64 103)
-  store i32 %val, i32 *%dst
+  store i32 %val, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/asm-17.ll b/llvm/test/CodeGen/SystemZ/asm-17.ll
index acf2aff454292..c9c4d73c66ebb 100644
--- a/llvm/test/CodeGen/SystemZ/asm-17.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-17.ll
@@ -48,7 +48,7 @@ define double @f4() {
 }
 
 ; Test i128 FPRs.
-define void @f5(fp128 *%dest) {
+define void @f5(ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: lzxr %f4
 ; CHECK: blah %f4
@@ -56,7 +56,7 @@ define void @f5(fp128 *%dest) {
 ; CHECK-DAG: std %f6, 8(%r2)
 ; CHECK: br %r14
   %ret = call fp128 asm "blah $0", "={f4},0" (fp128 0xL00000000000000000000000000000000)
-  store fp128 %ret, fp128 *%dest
+  store fp128 %ret, ptr %dest
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/asm-18.ll b/llvm/test/CodeGen/SystemZ/asm-18.ll
index 459dfd116658a..8f6bd252520ea 100644
--- a/llvm/test/CodeGen/SystemZ/asm-18.ll
+++ b/llvm/test/CodeGen/SystemZ/asm-18.ll
@@ -5,7 +5,7 @@
 ; RUN:   -no-integrated-as | FileCheck %s
 
 ; Test loads and stores involving mixtures of high and low registers.
-define void @f1(i32 *%ptr1, i32 *%ptr2) {
+define void @f1(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lfh [[REG1:%r[0-5]]], 0(%r2)
 ; CHECK-DAG: l [[REG2:%r[0-5]]], 0(%r3)
@@ -17,22 +17,22 @@ define void @f1(i32 *%ptr1, i32 *%ptr2) {
 ; CHECK-DAG: stfh [[REG3]], 4096(%r2)
 ; CHECK-DAG: sty [[REG4]], 524284(%r3)
 ; CHECK: br %r14
-  %ptr3 = getelementptr i32, i32 *%ptr1, i64 1024
-  %ptr4 = getelementptr i32, i32 *%ptr2, i64 131071
-  %old1 = load i32, i32 *%ptr1
-  %old2 = load i32, i32 *%ptr2
-  %old3 = load i32, i32 *%ptr3
-  %old4 = load i32, i32 *%ptr4
+  %ptr3 = getelementptr i32, ptr %ptr1, i64 1024
+  %ptr4 = getelementptr i32, ptr %ptr2, i64 131071
+  %old1 = load i32, ptr %ptr1
+  %old2 = load i32, ptr %ptr2
+  %old3 = load i32, ptr %ptr3
+  %old4 = load i32, ptr %ptr4
   %res = call { i32, i32, i32, i32 } asm "blah $0, $1, $2, $3",
               "=h,=r,=h,=r,0,1,2,3"(i32 %old1, i32 %old2, i32 %old3, i32 %old4)
   %new1 = extractvalue { i32, i32, i32, i32 } %res, 0
   %new2 = extractvalue { i32, i32, i32, i32 } %res, 1
   %new3 = extractvalue { i32, i32, i32, i32 } %res, 2
   %new4 = extractvalue { i32, i32, i32, i32 } %res, 3
-  store i32 %new1, i32 *%ptr1
-  store i32 %new2, i32 *%ptr2
-  store i32 %new3, i32 *%ptr3
-  store i32 %new4, i32 *%ptr4
+  store i32 %new1, ptr %ptr1
+  store i32 %new2, ptr %ptr2
+  store i32 %new3, ptr %ptr3
+  store i32 %new4, ptr %ptr4
   ret void
 }
 
@@ -53,7 +53,7 @@ define i32 @f2(i32 %old) {
 }
 
 ; Test sign-extending 8-bit loads into mixtures of high and low registers.
-define void @f3(i8 *%ptr1, i8 *%ptr2) {
+define void @f3(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: lbh [[REG1:%r[0-5]]], 0(%r2)
 ; CHECK-DAG: lb [[REG2:%r[0-5]]], 0(%r3)
@@ -61,12 +61,12 @@ define void @f3(i8 *%ptr1, i8 *%ptr2) {
 ; CHECK-DAG: lb [[REG4:%r[0-5]]], 524287(%r3)
 ; CHECK: blah [[REG1]], [[REG2]]
 ; CHECK: br %r14
-  %ptr3 = getelementptr i8, i8 *%ptr1, i64 4096
-  %ptr4 = getelementptr i8, i8 *%ptr2, i64 524287
-  %val1 = load i8, i8 *%ptr1
-  %val2 = load i8, i8 *%ptr2
-  %val3 = load i8, i8 *%ptr3
-  %val4 = load i8, i8 *%ptr4
+  %ptr3 = getelementptr i8, ptr %ptr1, i64 4096
+  %ptr4 = getelementptr i8, ptr %ptr2, i64 524287
+  %val1 = load i8, ptr %ptr1
+  %val2 = load i8, ptr %ptr2
+  %val3 = load i8, ptr %ptr3
+  %val4 = load i8, ptr %ptr4
   %ext1 = sext i8 %val1 to i32
   %ext2 = sext i8 %val2 to i32
   %ext3 = sext i8 %val3 to i32
@@ -77,7 +77,7 @@ define void @f3(i8 *%ptr1, i8 *%ptr2) {
 }
 
 ; Test sign-extending 16-bit loads into mixtures of high and low registers.
-define void @f4(i16 *%ptr1, i16 *%ptr2) {
+define void @f4(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: lhh [[REG1:%r[0-5]]], 0(%r2)
 ; CHECK-DAG: lh [[REG2:%r[0-5]]], 0(%r3)
@@ -85,12 +85,12 @@ define void @f4(i16 *%ptr1, i16 *%ptr2) {
 ; CHECK-DAG: lhy [[REG4:%r[0-5]]], 524286(%r3)
 ; CHECK: blah [[REG1]], [[REG2]]
 ; CHECK: br %r14
-  %ptr3 = getelementptr i16, i16 *%ptr1, i64 2048
-  %ptr4 = getelementptr i16, i16 *%ptr2, i64 262143
-  %val1 = load i16, i16 *%ptr1
-  %val2 = load i16, i16 *%ptr2
-  %val3 = load i16, i16 *%ptr3
-  %val4 = load i16, i16 *%ptr4
+  %ptr3 = getelementptr i16, ptr %ptr1, i64 2048
+  %ptr4 = getelementptr i16, ptr %ptr2, i64 262143
+  %val1 = load i16, ptr %ptr1
+  %val2 = load i16, ptr %ptr2
+  %val3 = load i16, ptr %ptr3
+  %val4 = load i16, ptr %ptr4
   %ext1 = sext i16 %val1 to i32
   %ext2 = sext i16 %val2 to i32
   %ext3 = sext i16 %val3 to i32
@@ -101,7 +101,7 @@ define void @f4(i16 *%ptr1, i16 *%ptr2) {
 }
 
 ; Test zero-extending 8-bit loads into mixtures of high and low registers.
-define void @f5(i8 *%ptr1, i8 *%ptr2) {
+define void @f5(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: llch [[REG1:%r[0-5]]], 0(%r2)
 ; CHECK-DAG: llc [[REG2:%r[0-5]]], 0(%r3)
@@ -109,12 +109,12 @@ define void @f5(i8 *%ptr1, i8 *%ptr2) {
 ; CHECK-DAG: llc [[REG4:%r[0-5]]], 524287(%r3)
 ; CHECK: blah [[REG1]], [[REG2]]
 ; CHECK: br %r14
-  %ptr3 = getelementptr i8, i8 *%ptr1, i64 4096
-  %ptr4 = getelementptr i8, i8 *%ptr2, i64 524287
-  %val1 = load i8, i8 *%ptr1
-  %val2 = load i8, i8 *%ptr2
-  %val3 = load i8, i8 *%ptr3
-  %val4 = load i8, i8 *%ptr4
+  %ptr3 = getelementptr i8, ptr %ptr1, i64 4096
+  %ptr4 = getelementptr i8, ptr %ptr2, i64 524287
+  %val1 = load i8, ptr %ptr1
+  %val2 = load i8, ptr %ptr2
+  %val3 = load i8, ptr %ptr3
+  %val4 = load i8, ptr %ptr4
   %ext1 = zext i8 %val1 to i32
   %ext2 = zext i8 %val2 to i32
   %ext3 = zext i8 %val3 to i32
@@ -125,7 +125,7 @@ define void @f5(i8 *%ptr1, i8 *%ptr2) {
 }
 
 ; Test zero-extending 16-bit loads into mixtures of high and low registers.
-define void @f6(i16 *%ptr1, i16 *%ptr2) {
+define void @f6(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: llhh [[REG1:%r[0-5]]], 0(%r2)
 ; CHECK-DAG: llh [[REG2:%r[0-5]]], 0(%r3)
@@ -133,12 +133,12 @@ define void @f6(i16 *%ptr1, i16 *%ptr2) {
 ; CHECK-DAG: llh [[REG4:%r[0-5]]], 524286(%r3)
 ; CHECK: blah [[REG1]], [[REG2]]
 ; CHECK: br %r14
-  %ptr3 = getelementptr i16, i16 *%ptr1, i64 2048
-  %ptr4 = getelementptr i16, i16 *%ptr2, i64 262143
-  %val1 = load i16, i16 *%ptr1
-  %val2 = load i16, i16 *%ptr2
-  %val3 = load i16, i16 *%ptr3
-  %val4 = load i16, i16 *%ptr4
+  %ptr3 = getelementptr i16, ptr %ptr1, i64 2048
+  %ptr4 = getelementptr i16, ptr %ptr2, i64 262143
+  %val1 = load i16, ptr %ptr1
+  %val2 = load i16, ptr %ptr2
+  %val3 = load i16, ptr %ptr3
+  %val4 = load i16, ptr %ptr4
   %ext1 = zext i16 %val1 to i32
   %ext2 = zext i16 %val2 to i32
   %ext3 = zext i16 %val3 to i32
@@ -149,7 +149,7 @@ define void @f6(i16 *%ptr1, i16 *%ptr2) {
 }
 
 ; Test truncating stores of high and low registers into 8-bit memory.
-define void @f7(i8 *%ptr1, i8 *%ptr2) {
+define void @f7(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f7:
 ; CHECK: blah [[REG1:%r[0-5]]], [[REG2:%r[0-5]]]
 ; CHECK-DAG: stch [[REG1]], 0(%r2)
@@ -162,17 +162,17 @@ define void @f7(i8 *%ptr1, i8 *%ptr2) {
   %res2 = extractvalue { i32, i32 } %res, 1
   %trunc1 = trunc i32 %res1 to i8
   %trunc2 = trunc i32 %res2 to i8
-  %ptr3 = getelementptr i8, i8 *%ptr1, i64 4096
-  %ptr4 = getelementptr i8, i8 *%ptr2, i64 524287
-  store i8 %trunc1, i8 *%ptr1
-  store i8 %trunc2, i8 *%ptr2
-  store i8 %trunc1, i8 *%ptr3
-  store i8 %trunc2, i8 *%ptr4
+  %ptr3 = getelementptr i8, ptr %ptr1, i64 4096
+  %ptr4 = getelementptr i8, ptr %ptr2, i64 524287
+  store i8 %trunc1, ptr %ptr1
+  store i8 %trunc2, ptr %ptr2
+  store i8 %trunc1, ptr %ptr3
+  store i8 %trunc2, ptr %ptr4
   ret void
 }
 
 ; Test truncating stores of high and low registers into 16-bit memory.
-define void @f8(i16 *%ptr1, i16 *%ptr2) {
+define void @f8(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f8:
 ; CHECK: blah [[REG1:%r[0-5]]], [[REG2:%r[0-5]]]
 ; CHECK-DAG: sthh [[REG1]], 0(%r2)
@@ -185,12 +185,12 @@ define void @f8(i16 *%ptr1, i16 *%ptr2) {
   %res2 = extractvalue { i32, i32 } %res, 1
   %trunc1 = trunc i32 %res1 to i16
   %trunc2 = trunc i32 %res2 to i16
-  %ptr3 = getelementptr i16, i16 *%ptr1, i64 2048
-  %ptr4 = getelementptr i16, i16 *%ptr2, i64 262143
-  store i16 %trunc1, i16 *%ptr1
-  store i16 %trunc2, i16 *%ptr2
-  store i16 %trunc1, i16 *%ptr3
-  store i16 %trunc2, i16 *%ptr4
+  %ptr3 = getelementptr i16, ptr %ptr1, i64 2048
+  %ptr4 = getelementptr i16, ptr %ptr2, i64 262143
+  store i16 %trunc1, ptr %ptr1
+  store i16 %trunc2, ptr %ptr2
+  store i16 %trunc1, ptr %ptr3
+  store i16 %trunc2, ptr %ptr4
   ret void
 }
 
@@ -710,7 +710,7 @@ define i32 @f32() {
 }
 
 ; Test memory comparison involving high registers.
-define void @f33(i32 *%ptr1, i32 *%ptr2) {
+define void @f33(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f33:
 ; CHECK: stepa [[REG1:%r[0-5]]]
 ; CHECK: chf [[REG1]], 0(%r2)
@@ -718,19 +718,19 @@ define void @f33(i32 *%ptr1, i32 *%ptr2) {
 ; CHECK: clhf [[REG2]], 0(%r3)
 ; CHECK: br %r14
   %res1 = call i32 asm "stepa $0", "=h"()
-  %load1 = load i32, i32 *%ptr1
+  %load1 = load i32, ptr %ptr1
   %cmp1 = icmp sle i32 %res1, %load1
   %sel1 = select i1 %cmp1, i32 0, i32 1
   %res2 = call i32 asm "stepb $0, $1", "=h,r"(i32 %sel1)
-  %load2 = load i32, i32 *%ptr2
+  %load2 = load i32, ptr %ptr2
   %cmp2 = icmp ule i32 %res2, %load2
   %sel2 = select i1 %cmp2, i32 0, i32 1
-  store i32 %sel2, i32 *%ptr1
+  store i32 %sel2, ptr %ptr1
   ret void
 }
 
 ; Test memory comparison involving low registers.
-define void @f34(i32 *%ptr1, i32 *%ptr2) {
+define void @f34(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f34:
 ; CHECK: stepa [[REG1:%r[0-5]]]
 ; CHECK: c [[REG1]], 0(%r2)
@@ -738,14 +738,14 @@ define void @f34(i32 *%ptr1, i32 *%ptr2) {
 ; CHECK: cl [[REG2]], 0(%r3)
 ; CHECK: br %r14
   %res1 = call i32 asm "stepa $0", "=r"()
-  %load1 = load i32, i32 *%ptr1
+  %load1 = load i32, ptr %ptr1
   %cmp1 = icmp sle i32 %res1, %load1
   %sel1 = select i1 %cmp1, i32 0, i32 1
   %res2 = call i32 asm "stepb $0, $1", "=r,r"(i32 %sel1)
-  %load2 = load i32, i32 *%ptr2
+  %load2 = load i32, ptr %ptr2
   %cmp2 = icmp ule i32 %res2, %load2
   %sel2 = select i1 %cmp2, i32 0, i32 1
-  store i32 %sel2, i32 *%ptr1
+  store i32 %sel2, ptr %ptr1
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-load-01.ll b/llvm/test/CodeGen/SystemZ/atomic-load-01.ll
index becf0a3543c63..815601cdd4368 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-load-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-load-01.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define i8 @f1(i8 *%src) {
+define i8 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lb %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load atomic i8, i8 *%src seq_cst, align 1
+  %val = load atomic i8, ptr %src seq_cst, align 1
   ret i8 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-load-02.ll b/llvm/test/CodeGen/SystemZ/atomic-load-02.ll
index 7b92954bb71e7..f152cbacd4012 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-load-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-load-02.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define i16 @f1(i16 *%src) {
+define i16 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lh %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load atomic i16, i16 *%src seq_cst, align 2
+  %val = load atomic i16, ptr %src seq_cst, align 2
   ret i16 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-load-03.ll b/llvm/test/CodeGen/SystemZ/atomic-load-03.ll
index e40da6ddedf54..350f8e8e18195 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-load-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-load-03.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define i32 @f1(i32 *%src) {
+define i32 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load atomic i32, i32 *%src seq_cst, align 4
+  %val = load atomic i32, ptr %src seq_cst, align 4
   ret i32 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-load-04.ll b/llvm/test/CodeGen/SystemZ/atomic-load-04.ll
index f929c744813e8..9ed1c2b1a597c 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-load-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-load-04.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define i64 @f1(i64 *%src) {
+define i64 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load atomic i64, i64 *%src seq_cst, align 8
+  %val = load atomic i64, ptr %src seq_cst, align 8
   ret i64 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-load-05.ll b/llvm/test/CodeGen/SystemZ/atomic-load-05.ll
index c527184ff2347..ff9f8867a77c2 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-load-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-load-05.ll
@@ -2,12 +2,12 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define i128 @f1(i128 *%src) {
+define i128 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lpq %r0, 0(%r3)
 ; CHECK-DAG: stg %r1, 8(%r2)
 ; CHECK-DAG: stg %r0, 0(%r2)
 ; CHECK: br %r14
-  %val = load atomic i128, i128 *%src seq_cst, align 16
+  %val = load atomic i128, ptr %src seq_cst, align 16
   ret i128 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-store-01.ll b/llvm/test/CodeGen/SystemZ/atomic-store-01.ll
index 617557fd1c283..0344e4e9a33af 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-store-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-store-01.ll
@@ -2,20 +2,20 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i8 %val, i8 *%src) {
+define void @f1(i8 %val, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: stc %r2, 0(%r3)
 ; CHECK: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i8 %val, i8 *%src seq_cst, align 1
+  store atomic i8 %val, ptr %src seq_cst, align 1
   ret void
 }
 
-define void @f2(i8 %val, i8 *%src) {
+define void @f2(i8 %val, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: stc %r2, 0(%r3)
 ; CHECK-NOT: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i8 %val, i8 *%src monotonic, align 1
+  store atomic i8 %val, ptr %src monotonic, align 1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-store-02.ll b/llvm/test/CodeGen/SystemZ/atomic-store-02.ll
index f23bac6828931..35785b293325f 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-store-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-store-02.ll
@@ -2,20 +2,20 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i16 %val, i16 *%src) {
+define void @f1(i16 %val, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: sth %r2, 0(%r3)
 ; CHECK: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i16 %val, i16 *%src seq_cst, align 2
+  store atomic i16 %val, ptr %src seq_cst, align 2
   ret void
 }
 
-define void @f2(i16 %val, i16 *%src) {
+define void @f2(i16 %val, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: sth %r2, 0(%r3)
 ; CHECK-NOT: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i16 %val, i16 *%src monotonic, align 2
+  store atomic i16 %val, ptr %src monotonic, align 2
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-store-03.ll b/llvm/test/CodeGen/SystemZ/atomic-store-03.ll
index 2434bb27e7e4d..f75f203acea23 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-store-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-store-03.ll
@@ -2,20 +2,20 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i32 %val, i32 *%src) {
+define void @f1(i32 %val, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: st %r2, 0(%r3)
 ; CHECK: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i32 %val, i32 *%src seq_cst, align 4
+  store atomic i32 %val, ptr %src seq_cst, align 4
   ret void
 }
 
-define void @f2(i32 %val, i32 *%src) {
+define void @f2(i32 %val, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: st %r2, 0(%r3)
 ; CHECK-NOT: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i32 %val, i32 *%src monotonic, align 4
+  store atomic i32 %val, ptr %src monotonic, align 4
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-store-04.ll b/llvm/test/CodeGen/SystemZ/atomic-store-04.ll
index 8b04cdd20364f..b28153ac4a9ba 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-store-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-store-04.ll
@@ -2,20 +2,20 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i64 %val, i64 *%src) {
+define void @f1(i64 %val, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: stg %r2, 0(%r3)
 ; CHECK: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i64 %val, i64 *%src seq_cst, align 8
+  store atomic i64 %val, ptr %src seq_cst, align 8
   ret void
 }
 
-define void @f2(i64 %val, i64 *%src) {
+define void @f2(i64 %val, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: stg %r2, 0(%r3)
 ; CHECK-NOT: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i64 %val, i64 *%src monotonic, align 8
+  store atomic i64 %val, ptr %src monotonic, align 8
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomic-store-05.ll b/llvm/test/CodeGen/SystemZ/atomic-store-05.ll
index e0ea660852be8..be1fd8d5dac0d 100644
--- a/llvm/test/CodeGen/SystemZ/atomic-store-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomic-store-05.ll
@@ -2,24 +2,24 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i128 %val, i128 *%src) {
+define void @f1(i128 %val, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lg %r1, 8(%r2)
 ; CHECK-DAG: lg %r0, 0(%r2)
 ; CHECK: stpq %r0, 0(%r3)
 ; CHECK: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i128 %val, i128 *%src seq_cst, align 16
+  store atomic i128 %val, ptr %src seq_cst, align 16
   ret void
 }
 
-define void @f2(i128 %val, i128 *%src) {
+define void @f2(i128 %val, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: lg %r1, 8(%r2)
 ; CHECK-DAG: lg %r0, 0(%r2)
 ; CHECK: stpq %r0, 0(%r3)
 ; CHECK-NOT: bcr 1{{[45]}}, %r0
 ; CHECK: br %r14
-  store atomic i128 %val, i128 *%src monotonic, align 16
+  store atomic i128 %val, ptr %src monotonic, align 16
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-add-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-add-01.ll
index c3b0adacea0c0..4b71a5db06ec4 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-add-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-add-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg %r1, %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll [[SHIFT:%r[0-9]+]], 3
@@ -41,12 +41,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i8 *%src, i8 %b seq_cst
+  %res = atomicrmw add ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the minimum signed value.  We add 0x80000000 to the rotated word.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i8 *%src, i8 -128 seq_cst
+  %res = atomicrmw add ptr %src, i8 -128 seq_cst
   ret i8 %res
 }
 
 ; Check addition of -1.  We add 0xff000000 to the rotated word.
-define i8 @f3(i8 *%src) {
+define i8 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi [[ROT]], -16777216
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i8 @f3(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i8 *%src, i8 -1 seq_cst
+  %res = atomicrmw add ptr %src, i8 -1 seq_cst
   ret i8 %res
 }
 
 ; Check addition of 1.  We add 0x01000000 to the rotated word.
-define i8 @f4(i8 *%src) {
+define i8 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi [[ROT]], 16777216
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i8 @f4(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i8 *%src, i8 1 seq_cst
+  %res = atomicrmw add ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the maximum signed value.  We add 0x7f000000 to the rotated word.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi [[ROT]], 2130706432
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i8 *%src, i8 127 seq_cst
+  %res = atomicrmw add ptr %src, i8 127 seq_cst
   ret i8 %res
 }
 
 ; Check addition of a large unsigned value.  We add 0xfe000000 to the
 ; rotated word, expressed as a negative AFI operand.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi [[ROT]], -33554432
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i8 *%src, i8 254 seq_cst
+  %res = atomicrmw add ptr %src, i8 254 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-add-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-add-02.ll
index c38a9d7ebe6e7..ab5736e44c243 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-add-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-add-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i16 *%src, i16 %b seq_cst
+  %res = atomicrmw add ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the minimum signed value.  We add 0x80000000 to the rotated word.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i16 *%src, i16 -32768 seq_cst
+  %res = atomicrmw add ptr %src, i16 -32768 seq_cst
   ret i16 %res
 }
 
 ; Check addition of -1.  We add 0xffff0000 to the rotated word.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi [[ROT]], -65536
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i16 @f3(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i16 *%src, i16 -1 seq_cst
+  %res = atomicrmw add ptr %src, i16 -1 seq_cst
   ret i16 %res
 }
 
 ; Check addition of 1.  We add 0x00010000 to the rotated word.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi [[ROT]], 65536
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i16 @f4(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i16 *%src, i16 1 seq_cst
+  %res = atomicrmw add ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the maximum signed value.  We add 0x7fff0000 to the rotated word.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi [[ROT]], 2147418112
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i16 *%src, i16 32767 seq_cst
+  %res = atomicrmw add ptr %src, i16 32767 seq_cst
   ret i16 %res
 }
 
 ; Check addition of a large unsigned value.  We add 0xfffe0000 to the
 ; rotated word, expressed as a negative AFI operand.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi [[ROT]], -131072
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw add i16 *%src, i16 65534 seq_cst
+  %res = atomicrmw add ptr %src, i16 65534 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-add-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-add-03.ll
index a81af72d1ed95..363547664c22e 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-add-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-add-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check addition of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -12,12 +12,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 %b seq_cst
+  %res = atomicrmw add ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check addition of 1, which can use AHI.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -26,69 +26,69 @@ define i32 @f2(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 1 seq_cst
+  %res = atomicrmw add ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the AHI range.
-define i32 @f3(i32 %dummy, i32 *%src) {
+define i32 @f3(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ahi %r0, 32767
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 32767 seq_cst
+  %res = atomicrmw add ptr %src, i32 32767 seq_cst
   ret i32 %res
 }
 
 ; Check the next value up, which must use AFI.
-define i32 @f4(i32 %dummy, i32 *%src) {
+define i32 @f4(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi %r0, 32768
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 32768 seq_cst
+  %res = atomicrmw add ptr %src, i32 32768 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the AFI range.
-define i32 @f5(i32 %dummy, i32 *%src) {
+define i32 @f5(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi %r0, 2147483647
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 2147483647 seq_cst
+  %res = atomicrmw add ptr %src, i32 2147483647 seq_cst
   ret i32 %res
 }
 
 ; Check the next value up, which gets treated as a negative operand.
-define i32 @f6(i32 %dummy, i32 *%src) {
+define i32 @f6(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi %r0, -2147483648
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 2147483648 seq_cst
+  %res = atomicrmw add ptr %src, i32 2147483648 seq_cst
   ret i32 %res
 }
 
 ; Check addition of -1, which can use AHI.
-define i32 @f7(i32 %dummy, i32 *%src) {
+define i32 @f7(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ahi %r0, -1
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 -1 seq_cst
+  %res = atomicrmw add ptr %src, i32 -1 seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the AHI range.
-define i32 @f8(i32 %dummy, i32 *%src) {
+define i32 @f8(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: ahi %r0, -32768
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 -32768 seq_cst
+  %res = atomicrmw add ptr %src, i32 -32768 seq_cst
   ret i32 %res
 }
 
 ; Check the next value down, which must use AFI instead.
-define i32 @f9(i32 %dummy, i32 *%src) {
+define i32 @f9(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: afi %r0, -32769
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 -32769 seq_cst
+  %res = atomicrmw add ptr %src, i32 -32769 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-add-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-add-04.ll
index e7905491f2e0e..50d3eec15dbe8 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-add-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-add-04.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check addition of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -12,12 +12,12 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 %b seq_cst
+  %res = atomicrmw add ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check addition of 1, which can use AGHI.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -26,87 +26,87 @@ define i64 @f2(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 1 seq_cst
+  %res = atomicrmw add ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the AGHI range.
-define i64 @f3(i64 %dummy, i64 *%src) {
+define i64 @f3(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r0, 32767
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 32767 seq_cst
+  %res = atomicrmw add ptr %src, i64 32767 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use AGFI.
-define i64 @f4(i64 %dummy, i64 *%src) {
+define i64 @f4(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r0, 32768
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 32768 seq_cst
+  %res = atomicrmw add ptr %src, i64 32768 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the AGFI range.
-define i64 @f5(i64 %dummy, i64 *%src) {
+define i64 @f5(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r0, 2147483647
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 2147483647 seq_cst
+  %res = atomicrmw add ptr %src, i64 2147483647 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register addition.
-define i64 @f6(i64 %dummy, i64 *%src) {
+define i64 @f6(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agr
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 2147483648 seq_cst
+  %res = atomicrmw add ptr %src, i64 2147483648 seq_cst
   ret i64 %res
 }
 
 ; Check addition of -1, which can use AGHI.
-define i64 @f7(i64 %dummy, i64 *%src) {
+define i64 @f7(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r0, -1
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 -1 seq_cst
+  %res = atomicrmw add ptr %src, i64 -1 seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the AGHI range.
-define i64 @f8(i64 %dummy, i64 *%src) {
+define i64 @f8(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: aghi %r0, -32768
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 -32768 seq_cst
+  %res = atomicrmw add ptr %src, i64 -32768 seq_cst
   ret i64 %res
 }
 
 ; Check the next value down, which must use AGFI instead.
-define i64 @f9(i64 %dummy, i64 *%src) {
+define i64 @f9(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r0, -32769
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 -32769 seq_cst
+  %res = atomicrmw add ptr %src, i64 -32769 seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the AGFI range.
-define i64 @f10(i64 %dummy, i64 *%src) {
+define i64 @f10(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r0, -2147483648
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 -2147483648 seq_cst
+  %res = atomicrmw add ptr %src, i64 -2147483648 seq_cst
   ret i64 %res
 }
 
 ; Check the next value down, which must use a register addition.
-define i64 @f11(i64 %dummy, i64 *%src) {
+define i64 @f11(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agr
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 -2147483649 seq_cst
+  %res = atomicrmw add ptr %src, i64 -2147483649 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-add-05.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-add-05.ll
index f722f79bd42f1..4413d8f85ef44 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-add-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-add-05.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check addition of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: laa %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 %b seq_cst
+  %res = atomicrmw add ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check addition of 1, which needs a temporary.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[TMP:%r[0-5]]], 1
 ; CHECK: laa %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw add i32 *%src, i32 1 seq_cst
+  %res = atomicrmw add ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the LAA range.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: laa %r2, %r4, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131071
-  %res = atomicrmw add i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131071
+  %res = atomicrmw add ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: laa %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131072
-  %res = atomicrmw add i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131072
+  %res = atomicrmw add ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the LAA range.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: laa %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131072
-  %res = atomicrmw add i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131072
+  %res = atomicrmw add ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524292
 ; CHECK: laa %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131073
-  %res = atomicrmw add i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131073
+  %res = atomicrmw add ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-add-06.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-add-06.ll
index ef77dc0183405..500d4d49d96a3 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-add-06.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-add-06.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check addition of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: laag %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 %b seq_cst
+  %res = atomicrmw add ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check addition of 1, which needs a temporary.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lghi [[TMP:%r[0-5]]], 1
 ; CHECK: laag %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw add i64 *%src, i64 1 seq_cst
+  %res = atomicrmw add ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the LAAG range.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: laag %r2, %r4, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw add i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw add ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: laag %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw add i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw add ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the LAAG range.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: laag %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw add i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw add ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which needs separate address logic.
-define i64 @f6(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f6(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524296
 ; CHECK: laag %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw add i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw add ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-and-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-and-01.ll
index c02f45909f17b..0ccafebc18f6a 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-and-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-and-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used, and that the low bits are set to 1.  This sequence is
 ;   independent of the other loop prologue instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0
 ; CHECK: l [[OLD:%r[0-9]+]], 0([[RISBG]])
@@ -41,12 +41,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i8 *%src, i8 %b seq_cst
+  %res = atomicrmw and ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the minimum signed value.  We AND the rotated word with 0x80ffffff.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i8 *%src, i8 -128 seq_cst
+  %res = atomicrmw and ptr %src, i8 -128 seq_cst
   ret i8 %res
 }
 
 ; Check ANDs of -2 (-1 isn't useful).  We AND the rotated word with 0xfeffffff.
-define i8 @f3(i8 *%src) {
+define i8 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: nilh [[ROT]], 65279
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i8 @f3(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i8 *%src, i8 -2 seq_cst
+  %res = atomicrmw and ptr %src, i8 -2 seq_cst
   ret i8 %res
 }
 
 ; Check ANDs of 1.  We AND the rotated word with 0x01ffffff.
-define i8 @f4(i8 *%src) {
+define i8 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: nilh [[ROT]], 511
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i8 @f4(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i8 *%src, i8 1 seq_cst
+  %res = atomicrmw and ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the maximum signed value.  We AND the rotated word with 0x7fffffff.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: nilh [[ROT]], 32767
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i8 *%src, i8 127 seq_cst
+  %res = atomicrmw and ptr %src, i8 127 seq_cst
   ret i8 %res
 }
 
 ; Check ANDs of a large unsigned value.  We AND the rotated word with
 ; 0xfdffffff.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nilh [[ROT]], 65023
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i8 *%src, i8 253 seq_cst
+  %res = atomicrmw and ptr %src, i8 253 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-and-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-and-02.ll
index f98d86b0372a1..3e2c157527137 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-and-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-and-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used, and that the low bits are set to 1.  This sequence is
 ;   independent of the other loop prologue instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -42,12 +42,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i16 *%src, i16 %b seq_cst
+  %res = atomicrmw and ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the minimum signed value.  We AND the rotated word with 0x8000ffff.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -71,12 +71,12 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i16 *%src, i16 -32768 seq_cst
+  %res = atomicrmw and ptr %src, i16 -32768 seq_cst
   ret i16 %res
 }
 
 ; Check ANDs of -2 (-1 isn't useful).  We AND the rotated word with 0xfffeffff.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: nilh [[ROT]], 65534
 ; CHECK: br %r14
@@ -85,12 +85,12 @@ define i16 @f3(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i16 *%src, i16 -2 seq_cst
+  %res = atomicrmw and ptr %src, i16 -2 seq_cst
   ret i16 %res
 }
 
 ; Check ANDs of 1.  We AND the rotated word with 0x0001ffff.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: nilh [[ROT]], 1
 ; CHECK: br %r14
@@ -99,12 +99,12 @@ define i16 @f4(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i16 *%src, i16 1 seq_cst
+  %res = atomicrmw and ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the maximum signed value.  We AND the rotated word with 0x7fffffff.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: nilh [[ROT]], 32767
 ; CHECK: br %r14
@@ -113,13 +113,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i16 *%src, i16 32767 seq_cst
+  %res = atomicrmw and ptr %src, i16 32767 seq_cst
   ret i16 %res
 }
 
 ; Check ANDs of a large unsigned value.  We AND the rotated word with
 ; 0xfffdffff.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nilh [[ROT]], 65533
 ; CHECK: br %r14
@@ -128,6 +128,6 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw and i16 *%src, i16 65533 seq_cst
+  %res = atomicrmw and ptr %src, i16 65533 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-and-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-and-03.ll
index 8d813a1402493..03ed2404dcc17 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-and-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-and-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check ANDs of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -12,12 +12,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 %b seq_cst
+  %res = atomicrmw and ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check ANDs of 1.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -26,60 +26,60 @@ define i32 @f2(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 1 seq_cst
+  %res = atomicrmw and ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check ANDs of the low end of the NILH range.
-define i32 @f3(i32 %dummy, i32 *%src) {
+define i32 @f3(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: nilh %r0, 0
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 65535 seq_cst
+  %res = atomicrmw and ptr %src, i32 65535 seq_cst
   ret i32 %res
 }
 
 ; Check the next value up, which must use NILF.
-define i32 @f4(i32 %dummy, i32 *%src) {
+define i32 @f4(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: nilf %r0, 65536
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 65536 seq_cst
+  %res = atomicrmw and ptr %src, i32 65536 seq_cst
   ret i32 %res
 }
 
 ; Check the largest useful NILL value.
-define i32 @f5(i32 %dummy, i32 *%src) {
+define i32 @f5(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: nill %r0, 65534
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 -2 seq_cst
+  %res = atomicrmw and ptr %src, i32 -2 seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the NILL range.
-define i32 @f6(i32 %dummy, i32 *%src) {
+define i32 @f6(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nill %r0, 0
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 -65536 seq_cst
+  %res = atomicrmw and ptr %src, i32 -65536 seq_cst
   ret i32 %res
 }
 
 ; Check the largest useful NILH value, which is one less than the above.
-define i32 @f7(i32 %dummy, i32 *%src) {
+define i32 @f7(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: nilh %r0, 65534
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 -65537 seq_cst
+  %res = atomicrmw and ptr %src, i32 -65537 seq_cst
   ret i32 %res
 }
 
 ; Check the highest useful NILF value, which is one less than the above.
-define i32 @f8(i32 %dummy, i32 *%src) {
+define i32 @f8(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: nilf %r0, 4294901758
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 -65538 seq_cst
+  %res = atomicrmw and ptr %src, i32 -65538 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-and-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-and-04.ll
index 89899a6a03af4..00b6fd93ad5bb 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-and-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-and-04.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check ANDs of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -12,22 +12,22 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 %b seq_cst
+  %res = atomicrmw and ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check ANDs of 1, which are done using a register.  (We could use RISBG
 ; instead, but that isn't implemented yet.)
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ngr
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 1 seq_cst
+  %res = atomicrmw and ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the equivalent of NIHF with 1, which can use RISBG instead.
-define i64 @f3(i64 %dummy, i64 *%src) {
+define i64 @f3(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -35,12 +35,12 @@ define i64 @f3(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 8589934591 seq_cst
+  %res = atomicrmw and ptr %src, i64 8589934591 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NIHF value outside the range of RISBG.
-define i64 @f4(i64 %dummy, i64 *%src) {
+define i64 @f4(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -49,123 +49,123 @@ define i64 @f4(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 12884901887 seq_cst
+  %res = atomicrmw and ptr %src, i64 12884901887 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.
-define i64 @f5(i64 %dummy, i64 *%src) {
+define i64 @f5(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ngr
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 12884901888 seq_cst
+  %res = atomicrmw and ptr %src, i64 12884901888 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NIHH value outside the range of RISBG.
-define i64 @f6(i64 %dummy, i64 *%src) {
+define i64 @f6(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nihh {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 844424930131967 seq_cst
+  %res = atomicrmw and ptr %src, i64 844424930131967 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.
-define i64 @f7(i64 %dummy, i64 *%src) {
+define i64 @f7(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ngr
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 281474976710656 seq_cst
+  %res = atomicrmw and ptr %src, i64 281474976710656 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NILL value outside the range of RISBG.
-define i64 @f8(i64 %dummy, i64 *%src) {
+define i64 @f8(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: nill {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -6 seq_cst
+  %res = atomicrmw and ptr %src, i64 -6 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NILL value outside the range of RISBG.
-define i64 @f9(i64 %dummy, i64 *%src) {
+define i64 @f9(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: nill {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -65534 seq_cst
+  %res = atomicrmw and ptr %src, i64 -65534 seq_cst
   ret i64 %res
 }
 
 ; Check the highest useful NILF value.
-define i64 @f10(i64 %dummy, i64 *%src) {
+define i64 @f10(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: nilf {{%r[0-5]}}, 4294901758
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -65538 seq_cst
+  %res = atomicrmw and ptr %src, i64 -65538 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NILH value outside the range of RISBG.
-define i64 @f11(i64 %dummy, i64 *%src) {
+define i64 @f11(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: nilh {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -327681 seq_cst
+  %res = atomicrmw and ptr %src, i64 -327681 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NILH value outside the range of RISBG.
-define i64 @f12(i64 %dummy, i64 *%src) {
+define i64 @f12(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: nilh {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -4294770689 seq_cst
+  %res = atomicrmw and ptr %src, i64 -4294770689 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NILF value outside the range of RISBG.
-define i64 @f13(i64 %dummy, i64 *%src) {
+define i64 @f13(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: nilf {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -4294967294 seq_cst
+  %res = atomicrmw and ptr %src, i64 -4294967294 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NIHL value outside the range of RISBG.
-define i64 @f14(i64 %dummy, i64 *%src) {
+define i64 @f14(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: nihl {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -21474836481 seq_cst
+  %res = atomicrmw and ptr %src, i64 -21474836481 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NIHL value outside the range of RISBG.
-define i64 @f15(i64 %dummy, i64 *%src) {
+define i64 @f15(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: nihl {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -281462091808769 seq_cst
+  %res = atomicrmw and ptr %src, i64 -281462091808769 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NIHH value outside the range of RISBG.
-define i64 @f16(i64 %dummy, i64 *%src) {
+define i64 @f16(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f16:
 ; CHECK: nihh {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -1407374883553281 seq_cst
+  %res = atomicrmw and ptr %src, i64 -1407374883553281 seq_cst
   ret i64 %res
 }
 
 ; Check the highest useful NIHF value.
-define i64 @f17(i64 %dummy, i64 *%src) {
+define i64 @f17(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f17:
 ; CHECK: nihf {{%r[0-5]}}, 4294901758
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -281479271677953 seq_cst
+  %res = atomicrmw and ptr %src, i64 -281479271677953 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-and-05.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-and-05.ll
index b8ccbe2f4e502..5e3229168cd89 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-and-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-and-05.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check AND of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lan %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 %b seq_cst
+  %res = atomicrmw and ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check AND of 1, which needs a temporary.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[TMP:%r[0-5]]], 1
 ; CHECK: lan %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw and i32 *%src, i32 1 seq_cst
+  %res = atomicrmw and ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the LAN range.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lan %r2, %r4, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131071
-  %res = atomicrmw and i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131071
+  %res = atomicrmw and ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: lan %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131072
-  %res = atomicrmw and i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131072
+  %res = atomicrmw and ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the LAN range.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lan %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131072
-  %res = atomicrmw and i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131072
+  %res = atomicrmw and ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524292
 ; CHECK: lan %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131073
-  %res = atomicrmw and i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131073
+  %res = atomicrmw and ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-and-06.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-and-06.ll
index 9885cdec1f1ff..4c0a940fdd3df 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-and-06.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-and-06.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check AND of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lang %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 %b seq_cst
+  %res = atomicrmw and ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check AND of -2, which needs a temporary.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lghi [[TMP:%r[0-5]]], -2
 ; CHECK: lang %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw and i64 *%src, i64 -2 seq_cst
+  %res = atomicrmw and ptr %src, i64 -2 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the LANG range.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lang %r2, %r4, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw and i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw and ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: lang %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw and i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw and ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the LANG range.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lang %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw and i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw and ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which needs separate address logic.
-define i64 @f6(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f6(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524296
 ; CHECK: lang %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw and i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw and ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
index 771ca25baa90b..b24298b15578d 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used, and that the low bits are set to 1.  This sequence is
 ;   independent of the other loop prologue instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -43,12 +43,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw min i8 *%src, i8 %b seq_cst
+  %res = atomicrmw min ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check signed maximum.
-define i8 @f2(i8 *%src, i8 %b) {
+define i8 @f2(ptr %src, i8 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -79,12 +79,12 @@ define i8 @f2(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw max i8 *%src, i8 %b seq_cst
+  %res = atomicrmw max ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check unsigned minimum.
-define i8 @f3(i8 *%src, i8 %b) {
+define i8 @f3(ptr %src, i8 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -115,12 +115,12 @@ define i8 @f3(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umin i8 *%src, i8 %b seq_cst
+  %res = atomicrmw umin ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check unsigned maximum.
-define i8 @f4(i8 *%src, i8 %b) {
+define i8 @f4(ptr %src, i8 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -151,13 +151,13 @@ define i8 @f4(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umax i8 *%src, i8 %b seq_cst
+  %res = atomicrmw umax ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the lowest useful signed minimum value.  We need to load 0x81000000
 ; into the source register.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 33024
 ; CHECK: crjle [[ROT:%r[0-9]+]], [[SRC2]]
@@ -168,13 +168,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw min i8 *%src, i8 -127 seq_cst
+  %res = atomicrmw min ptr %src, i8 -127 seq_cst
   ret i8 %res
 }
 
 ; Check the highest useful signed maximum value.  We need to load 0x7e000000
 ; into the source register.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 32256
 ; CHECK: crjhe [[ROT:%r[0-9]+]], [[SRC2]]
@@ -185,13 +185,13 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw max i8 *%src, i8 126 seq_cst
+  %res = atomicrmw max ptr %src, i8 126 seq_cst
   ret i8 %res
 }
 
 ; Check the lowest useful unsigned minimum value.  We need to load 0x01000000
 ; into the source register.
-define i8 @f7(i8 *%src) {
+define i8 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 256
 ; CHECK: clrjle [[ROT:%r[0-9]+]], [[SRC2]],
@@ -202,13 +202,13 @@ define i8 @f7(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f7:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umin i8 *%src, i8 1 seq_cst
+  %res = atomicrmw umin ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the highest useful unsigned maximum value.  We need to load 0xfe000000
 ; into the source register.
-define i8 @f8(i8 *%src) {
+define i8 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 65024
 ; CHECK: clrjhe [[ROT:%r[0-9]+]], [[SRC2]],
@@ -219,6 +219,6 @@ define i8 @f8(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f8:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umax i8 *%src, i8 254 seq_cst
+  %res = atomicrmw umax ptr %src, i8 254 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
index 8e1601487c24d..453c84a6bf98b 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used, and that the low bits are set to 1.  This sequence is
 ;   independent of the other loop prologue instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -43,12 +43,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw min i16 *%src, i16 %b seq_cst
+  %res = atomicrmw min ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check signed maximum.
-define i16 @f2(i16 *%src, i16 %b) {
+define i16 @f2(ptr %src, i16 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -79,12 +79,12 @@ define i16 @f2(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw max i16 *%src, i16 %b seq_cst
+  %res = atomicrmw max ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check unsigned minimum.
-define i16 @f3(i16 *%src, i16 %b) {
+define i16 @f3(ptr %src, i16 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -115,12 +115,12 @@ define i16 @f3(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umin i16 *%src, i16 %b seq_cst
+  %res = atomicrmw umin ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check unsigned maximum.
-define i16 @f4(i16 *%src, i16 %b) {
+define i16 @f4(ptr %src, i16 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -151,13 +151,13 @@ define i16 @f4(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umax i16 *%src, i16 %b seq_cst
+  %res = atomicrmw umax ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the lowest useful signed minimum value.  We need to load 0x80010000
 ; into the source register.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 32769
 ; CHECK: crjle [[ROT:%r[0-9]+]], [[SRC2]]
@@ -168,13 +168,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw min i16 *%src, i16 -32767 seq_cst
+  %res = atomicrmw min ptr %src, i16 -32767 seq_cst
   ret i16 %res
 }
 
 ; Check the highest useful signed maximum value.  We need to load 0x7ffe0000
 ; into the source register.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 32766
 ; CHECK: crjhe [[ROT:%r[0-9]+]], [[SRC2]]
@@ -185,13 +185,13 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw max i16 *%src, i16 32766 seq_cst
+  %res = atomicrmw max ptr %src, i16 32766 seq_cst
   ret i16 %res
 }
 
 ; Check the lowest useful unsigned maximum value.  We need to load 0x00010000
 ; into the source register.
-define i16 @f7(i16 *%src) {
+define i16 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 1
 ; CHECK: clrjle [[ROT:%r[0-9]+]], [[SRC2]],
@@ -202,13 +202,13 @@ define i16 @f7(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f7:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umin i16 *%src, i16 1 seq_cst
+  %res = atomicrmw umin ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the highest useful unsigned maximum value.  We need to load 0xfffe0000
 ; into the source register.
-define i16 @f8(i16 *%src) {
+define i16 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llilh [[SRC2:%r[0-9]+]], 65534
 ; CHECK: clrjhe [[ROT:%r[0-9]+]], [[SRC2]],
@@ -219,6 +219,6 @@ define i16 @f8(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f8:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw umax i16 *%src, i16 65534 seq_cst
+  %res = atomicrmw umax ptr %src, i16 65534 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
index 362a4f4ec499a..d953f434f9ebd 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-03.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check signed minium.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -16,12 +16,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: crjle %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw min i32 *%src, i32 %b seq_cst
+  %res = atomicrmw min ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check signed maximum.
-define i32 @f2(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f2(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -33,12 +33,12 @@ define i32 @f2(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: crjhe %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw max i32 *%src, i32 %b seq_cst
+  %res = atomicrmw max ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check unsigned minimum.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -50,12 +50,12 @@ define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: clrjle %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw umin i32 *%src, i32 %b seq_cst
+  %res = atomicrmw umin ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check unsigned maximum.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -67,86 +67,86 @@ define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: clrjhe %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw umax i32 *%src, i32 %b seq_cst
+  %res = atomicrmw umax ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the aligned CS range.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: l %r2, 4092(%r3)
 ; CHECK: cs %r2, {{%r[0-9]+}}, 4092(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which requires CSY.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: ly %r2, 4096(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, 4096(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the aligned CSY range.
-define i32 @f7(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f7(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f7:
 ; CHECK: ly %r2, 524284(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, 524284(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f8(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f8(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, 524288
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: cs %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the negative aligned CSY range.
-define i32 @f9(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f9(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f9:
 ; CHECK: ly %r2, -4(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, -4(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the CSY range.
-define i32 @f10(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f10(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f10:
 ; CHECK: ly %r2, -524288(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, -524288(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f11(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f11(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r3, -524292
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: cs %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
@@ -158,13 +158,13 @@ define i32 @f12(i32 %dummy, i64 %base, i64 %index, i32 %b) {
 ; CHECK: cs %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: ber %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %res = atomicrmw min i32 *%ptr, i32 %b seq_cst
+  %ptr = inttoptr i64 %add to ptr
+  %res = atomicrmw min ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check that constants are handled.
-define i32 @f13(i32 %dummy, i32 *%ptr) {
+define i32 @f13(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: lhi [[LIMIT:%r[0-9]+]], 42
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -176,6 +176,6 @@ define i32 @f13(i32 %dummy, i32 *%ptr) {
 ; CHECK: crjle %r2, [[LIMIT]], [[KEEP:\..*]]
 ; CHECK: lhi [[NEW]], 42
 ; CHECK: j [[BB1]]
-  %res = atomicrmw min i32 *%ptr, i32 42 seq_cst
+  %res = atomicrmw min ptr %ptr, i32 42 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
index fc12f34d06e6c..3a39161b32ddd 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-minmax-04.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check signed minium.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -16,12 +16,12 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: cgrjle %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lgr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw min i64 *%src, i64 %b seq_cst
+  %res = atomicrmw min ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check signed maximum.
-define i64 @f2(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f2(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -33,12 +33,12 @@ define i64 @f2(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: cgrjhe %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lgr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw max i64 *%src, i64 %b seq_cst
+  %res = atomicrmw max ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check unsigned minimum.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -50,12 +50,12 @@ define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: clgrjle %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lgr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw umin i64 *%src, i64 %b seq_cst
+  %res = atomicrmw umin ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check unsigned maximum.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: j [[LOOP:\.[^:]*]]
@@ -67,53 +67,53 @@ define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: clgrjhe %r2, %r4, [[KEEP:\..*]]
 ; CHECK: lgr [[NEW]], %r4
 ; CHECK: j [[BB1]]
-  %res = atomicrmw umax i64 *%src, i64 %b seq_cst
+  %res = atomicrmw umax ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the aligned CSG range.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lg %r2, 524280(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, 524280(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw min i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw min ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which requires separate address logic.
-define i64 @f6(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f6(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw min i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw min ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the CSG range.
-define i64 @f7(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f7(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f7:
 ; CHECK: lg %r2, -524288(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, -524288(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw min i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw min ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which requires separate address logic.
-define i64 @f8(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f8(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -524296
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: ber %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw min i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw min ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
@@ -125,13 +125,13 @@ define i64 @f9(i64 %dummy, i64 %base, i64 %index, i64 %b) {
 ; CHECK: csg %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: ber %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i64 *
-  %res = atomicrmw min i64 *%ptr, i64 %b seq_cst
+  %ptr = inttoptr i64 %add to ptr
+  %res = atomicrmw min ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check that constants are handled.
-define i64 @f10(i64 %dummy, i64 *%ptr) {
+define i64 @f10(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-DAG: lghi [[LIMIT:%r[0-9]+]], 42
 ; CHECK-DAG: lg %r2, 0(%r3)
@@ -144,6 +144,6 @@ define i64 @f10(i64 %dummy, i64 *%ptr) {
 ; CHECK: cgrjle %r2, [[LIMIT]], [[KEEP:\..*]]
 ; CHECK: lghi [[NEW]], 42
 ; CHECK: j [[BB1]]
-  %res = atomicrmw min i64 *%ptr, i64 42 seq_cst
+  %res = atomicrmw min ptr %ptr, i64 42 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-01.ll
index deef6091eb0b3..7aefbeffc8ecb 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used, and that the low bits are set to 1.  This sequence is
 ;   independent of the other loop prologue instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -43,12 +43,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i8 *%src, i8 %b seq_cst
+  %res = atomicrmw nand ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the minimum signed value.  We AND the rotated word with 0x80ffffff.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -73,12 +73,12 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i8 *%src, i8 -128 seq_cst
+  %res = atomicrmw nand ptr %src, i8 -128 seq_cst
   ret i8 %res
 }
 
 ; Check NANDs of -2 (-1 isn't useful).  We AND the rotated word with 0xfeffffff.
-define i8 @f3(i8 *%src) {
+define i8 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: nilh [[ROT]], 65279
 ; CHECK: xilf [[ROT]], 4278190080
@@ -88,12 +88,12 @@ define i8 @f3(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i8 *%src, i8 -2 seq_cst
+  %res = atomicrmw nand ptr %src, i8 -2 seq_cst
   ret i8 %res
 }
 
 ; Check NANDs of 1.  We AND the rotated word with 0x01ffffff.
-define i8 @f4(i8 *%src) {
+define i8 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: nilh [[ROT]], 511
 ; CHECK: xilf [[ROT]], 4278190080
@@ -103,12 +103,12 @@ define i8 @f4(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i8 *%src, i8 1 seq_cst
+  %res = atomicrmw nand ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the maximum signed value.  We AND the rotated word with 0x7fffffff.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: nilh [[ROT]], 32767
 ; CHECK: xilf [[ROT]], 4278190080
@@ -118,13 +118,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i8 *%src, i8 127 seq_cst
+  %res = atomicrmw nand ptr %src, i8 127 seq_cst
   ret i8 %res
 }
 
 ; Check NANDs of a large unsigned value.  We AND the rotated word with
 ; 0xfdffffff.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nilh [[ROT]], 65023
 ; CHECK: xilf [[ROT]], 4278190080
@@ -134,6 +134,6 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i8 *%src, i8 253 seq_cst
+  %res = atomicrmw nand ptr %src, i8 253 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-02.ll
index c4679bc4e1050..2c6cedebbd4d5 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used, and that the low bits are set to 1.  This sequence is
 ;   independent of the other loop prologue instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -43,12 +43,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i16 *%src, i16 %b seq_cst
+  %res = atomicrmw nand ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the minimum signed value.  We AND the rotated word with 0x8000ffff.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -73,12 +73,12 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i16 *%src, i16 -32768 seq_cst
+  %res = atomicrmw nand ptr %src, i16 -32768 seq_cst
   ret i16 %res
 }
 
 ; Check NANDs of -2 (-1 isn't useful).  We AND the rotated word with 0xfffeffff.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: nilh [[ROT]], 65534
 ; CHECK: xilf [[ROT]], 4294901760
@@ -88,12 +88,12 @@ define i16 @f3(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i16 *%src, i16 -2 seq_cst
+  %res = atomicrmw nand ptr %src, i16 -2 seq_cst
   ret i16 %res
 }
 
 ; Check ANDs of 1.  We AND the rotated word with 0x0001ffff.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: nilh [[ROT]], 1
 ; CHECK: xilf [[ROT]], 4294901760
@@ -103,12 +103,12 @@ define i16 @f4(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i16 *%src, i16 1 seq_cst
+  %res = atomicrmw nand ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the maximum signed value.  We AND the rotated word with 0x7fffffff.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: nilh [[ROT]], 32767
 ; CHECK: xilf [[ROT]], 4294901760
@@ -118,13 +118,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i16 *%src, i16 32767 seq_cst
+  %res = atomicrmw nand ptr %src, i16 32767 seq_cst
   ret i16 %res
 }
 
 ; Check NANDs of a large unsigned value.  We AND the rotated word with
 ; 0xfffdffff.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nilh [[ROT]], 65533
 ; CHECK: xilf [[ROT]], 4294901760
@@ -134,6 +134,6 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw nand i16 *%src, i16 65533 seq_cst
+  %res = atomicrmw nand ptr %src, i16 65533 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-03.ll
index c7a6691083d3e..323eafb3e5b3a 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check NANDs of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -13,12 +13,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 %b seq_cst
+  %res = atomicrmw nand ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check NANDs of 1.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -28,66 +28,66 @@ define i32 @f2(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 1 seq_cst
+  %res = atomicrmw nand ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check NANDs of the low end of the NILH range.
-define i32 @f3(i32 %dummy, i32 *%src) {
+define i32 @f3(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: nilh %r0, 0
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 65535 seq_cst
+  %res = atomicrmw nand ptr %src, i32 65535 seq_cst
   ret i32 %res
 }
 
 ; Check the next value up, which must use NILF.
-define i32 @f4(i32 %dummy, i32 *%src) {
+define i32 @f4(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: nilf %r0, 65536
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 65536 seq_cst
+  %res = atomicrmw nand ptr %src, i32 65536 seq_cst
   ret i32 %res
 }
 
 ; Check the largest useful NILL value.
-define i32 @f5(i32 %dummy, i32 *%src) {
+define i32 @f5(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: nill %r0, 65534
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 -2 seq_cst
+  %res = atomicrmw nand ptr %src, i32 -2 seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the NILL range.
-define i32 @f6(i32 %dummy, i32 *%src) {
+define i32 @f6(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nill %r0, 0
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 -65536 seq_cst
+  %res = atomicrmw nand ptr %src, i32 -65536 seq_cst
   ret i32 %res
 }
 
 ; Check the largest useful NILH value, which is one less than the above.
-define i32 @f7(i32 %dummy, i32 *%src) {
+define i32 @f7(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: nilh %r0, 65534
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 -65537 seq_cst
+  %res = atomicrmw nand ptr %src, i32 -65537 seq_cst
   ret i32 %res
 }
 
 ; Check the highest useful NILF value, which is one less than the above.
-define i32 @f8(i32 %dummy, i32 *%src) {
+define i32 @f8(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: nilf %r0, 4294901758
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw nand i32 *%src, i32 -65538 seq_cst
+  %res = atomicrmw nand ptr %src, i32 -65538 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-04.ll
index 91fe639cd726a..b37030255d7cc 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-nand-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-nand-04.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check NANDs of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -14,22 +14,22 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 %b seq_cst
+  %res = atomicrmw nand ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check NANDs of 1, which are done using a register.  (We could use RISBG
 ; instead, but that isn't implemented yet.)
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ngr
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 1 seq_cst
+  %res = atomicrmw nand ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the equivalent of NIHF with 1, which can use RISBG instead.
-define i64 @f3(i64 %dummy, i64 *%src) {
+define i64 @f3(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -39,12 +39,12 @@ define i64 @f3(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 8589934591 seq_cst
+  %res = atomicrmw nand ptr %src, i64 8589934591 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NIHF value outside the range of RISBG.
-define i64 @f4(i64 %dummy, i64 *%src) {
+define i64 @f4(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -55,123 +55,123 @@ define i64 @f4(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 12884901887 seq_cst
+  %res = atomicrmw nand ptr %src, i64 12884901887 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.
-define i64 @f5(i64 %dummy, i64 *%src) {
+define i64 @f5(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ngr
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 12884901888 seq_cst
+  %res = atomicrmw nand ptr %src, i64 12884901888 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NIHH value outside the range of RISBG.
-define i64 @f6(i64 %dummy, i64 *%src) {
+define i64 @f6(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: nihh {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 844424930131967 seq_cst
+  %res = atomicrmw nand ptr %src, i64 844424930131967 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.
-define i64 @f7(i64 %dummy, i64 *%src) {
+define i64 @f7(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ngr
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 281474976710656 seq_cst
+  %res = atomicrmw nand ptr %src, i64 281474976710656 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NILL value outside the range of RISBG.
-define i64 @f8(i64 %dummy, i64 *%src) {
+define i64 @f8(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: nill {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -6 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -6 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NILL value outside the range of RISBG.
-define i64 @f9(i64 %dummy, i64 *%src) {
+define i64 @f9(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: nill {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -65534 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -65534 seq_cst
   ret i64 %res
 }
 
 ; Check the highest useful NILF value.
-define i64 @f10(i64 %dummy, i64 *%src) {
+define i64 @f10(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: nilf {{%r[0-5]}}, 4294901758
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -65538 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -65538 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NILH value outside the range of RISBG.
-define i64 @f11(i64 %dummy, i64 *%src) {
+define i64 @f11(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: nilh {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -327681 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -327681 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NILH value outside the range of RISBG.
-define i64 @f12(i64 %dummy, i64 *%src) {
+define i64 @f12(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: nilh {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -4294770689 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -4294770689 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NILF value outside the range of RISBG.
-define i64 @f13(i64 %dummy, i64 *%src) {
+define i64 @f13(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: nilf {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -4294967294 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -4294967294 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NIHL value outside the range of RISBG.
-define i64 @f14(i64 %dummy, i64 *%src) {
+define i64 @f14(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: nihl {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -21474836481 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -21474836481 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest NIHL value outside the range of RISBG.
-define i64 @f15(i64 %dummy, i64 *%src) {
+define i64 @f15(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: nihl {{%r[0-5]}}, 2
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -281462091808769 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -281462091808769 seq_cst
   ret i64 %res
 }
 
 ; Check the highest NIHH value outside the range of RISBG.
-define i64 @f16(i64 %dummy, i64 *%src) {
+define i64 @f16(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f16:
 ; CHECK: nihh {{%r[0-5]}}, 65530
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -1407374883553281 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -1407374883553281 seq_cst
   ret i64 %res
 }
 
 ; Check the highest useful NIHF value.
-define i64 @f17(i64 %dummy, i64 *%src) {
+define i64 @f17(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f17:
 ; CHECK: nihf {{%r[0-5]}}, 4294901758
 ; CHECK: br %r14
-  %res = atomicrmw nand i64 *%src, i64 -281479271677953 seq_cst
+  %res = atomicrmw nand ptr %src, i64 -281479271677953 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-or-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-or-01.ll
index de6b143066ad0..8fd4d1be667ff 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-or-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-or-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i8 *%src, i8 %b seq_cst
+  %res = atomicrmw or ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the minimum signed value.  We OR the rotated word with 0x80000000.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i8 *%src, i8 -128 seq_cst
+  %res = atomicrmw or ptr %src, i8 -128 seq_cst
   ret i8 %res
 }
 
 ; Check ORs of -2 (-1 isn't useful).  We OR the rotated word with 0xfe000000.
-define i8 @f3(i8 *%src) {
+define i8 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: oilh [[ROT]], 65024
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i8 @f3(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i8 *%src, i8 -2 seq_cst
+  %res = atomicrmw or ptr %src, i8 -2 seq_cst
   ret i8 %res
 }
 
 ; Check ORs of 1.  We OR the rotated word with 0x01000000.
-define i8 @f4(i8 *%src) {
+define i8 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: oilh [[ROT]], 256
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i8 @f4(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i8 *%src, i8 1 seq_cst
+  %res = atomicrmw or ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the maximum signed value.  We OR the rotated word with 0x7f000000.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: oilh [[ROT]], 32512
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i8 *%src, i8 127 seq_cst
+  %res = atomicrmw or ptr %src, i8 127 seq_cst
   ret i8 %res
 }
 
 ; Check ORs of a large unsigned value.  We OR the rotated word with
 ; 0xfd000000.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: oilh [[ROT]], 64768
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i8 *%src, i8 253 seq_cst
+  %res = atomicrmw or ptr %src, i8 253 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-or-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-or-02.ll
index 21fe7b24726f1..5f3f80e3c2a1e 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-or-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-or-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i16 *%src, i16 %b seq_cst
+  %res = atomicrmw or ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the minimum signed value.  We OR the rotated word with 0x80000000.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i16 *%src, i16 -32768 seq_cst
+  %res = atomicrmw or ptr %src, i16 -32768 seq_cst
   ret i16 %res
 }
 
 ; Check ORs of -2 (-1 isn't useful).  We OR the rotated word with 0xfffe0000.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: oilh [[ROT]], 65534
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i16 @f3(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i16 *%src, i16 -2 seq_cst
+  %res = atomicrmw or ptr %src, i16 -2 seq_cst
   ret i16 %res
 }
 
 ; Check ORs of 1.  We OR the rotated word with 0x00010000.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: oilh [[ROT]], 1
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i16 @f4(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i16 *%src, i16 1 seq_cst
+  %res = atomicrmw or ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the maximum signed value.  We OR the rotated word with 0x7fff0000.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: oilh [[ROT]], 32767
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i16 *%src, i16 32767 seq_cst
+  %res = atomicrmw or ptr %src, i16 32767 seq_cst
   ret i16 %res
 }
 
 ; Check ORs of a large unsigned value.  We OR the rotated word with
 ; 0xfffd0000.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: oilh [[ROT]], 65533
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw or i16 *%src, i16 65533 seq_cst
+  %res = atomicrmw or ptr %src, i16 65533 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-or-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-or-03.ll
index 9a0aa86feb5df..c5efdeeb670ea 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-or-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-or-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check ORs of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -12,12 +12,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 %b seq_cst
+  %res = atomicrmw or ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the lowest useful OILL value.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -26,60 +26,60 @@ define i32 @f2(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 1 seq_cst
+  %res = atomicrmw or ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the OILL range.
-define i32 @f3(i32 %dummy, i32 *%src) {
+define i32 @f3(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: oill %r0, 65535
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 65535 seq_cst
+  %res = atomicrmw or ptr %src, i32 65535 seq_cst
   ret i32 %res
 }
 
 ; Check the lowest useful OILH value, which is the next value up.
-define i32 @f4(i32 %dummy, i32 *%src) {
+define i32 @f4(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: oilh %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 65536 seq_cst
+  %res = atomicrmw or ptr %src, i32 65536 seq_cst
   ret i32 %res
 }
 
 ; Check the lowest useful OILF value, which is the next value up.
-define i32 @f5(i32 %dummy, i32 *%src) {
+define i32 @f5(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: oilf %r0, 65537
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 65537 seq_cst
+  %res = atomicrmw or ptr %src, i32 65537 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the OILH range.
-define i32 @f6(i32 %dummy, i32 *%src) {
+define i32 @f6(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: oilh %r0, 65535
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 -65536 seq_cst
+  %res = atomicrmw or ptr %src, i32 -65536 seq_cst
   ret i32 %res
 }
 
 ; Check the next value up, which must use OILF.
-define i32 @f7(i32 %dummy, i32 *%src) {
+define i32 @f7(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: oilf %r0, 4294901761
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 -65535 seq_cst
+  %res = atomicrmw or ptr %src, i32 -65535 seq_cst
   ret i32 %res
 }
 
 ; Check the largest useful OILF value.
-define i32 @f8(i32 %dummy, i32 *%src) {
+define i32 @f8(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: oilf %r0, 4294967294
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 -2 seq_cst
+  %res = atomicrmw or ptr %src, i32 -2 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-or-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-or-04.ll
index dbc0f11cc74c6..a1322df49dbf8 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-or-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-or-04.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check ORs of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -12,12 +12,12 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 %b seq_cst
+  %res = atomicrmw or ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful OILL value.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -26,133 +26,133 @@ define i64 @f2(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 1 seq_cst
+  %res = atomicrmw or ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the OILL range.
-define i64 @f3(i64 %dummy, i64 *%src) {
+define i64 @f3(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: oill %r0, 65535
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 65535 seq_cst
+  %res = atomicrmw or ptr %src, i64 65535 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful OILH value, which is the next value up.
-define i64 @f4(i64 %dummy, i64 *%src) {
+define i64 @f4(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: oilh %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 65536 seq_cst
+  %res = atomicrmw or ptr %src, i64 65536 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful OILF value, which is the next value up again.
-define i64 @f5(i64 %dummy, i64 *%src) {
+define i64 @f5(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: oilf %r0, 65537
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 65537 seq_cst
+  %res = atomicrmw or ptr %src, i64 65537 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the OILH range.
-define i64 @f6(i64 %dummy, i64 *%src) {
+define i64 @f6(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: oilh %r0, 65535
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 4294901760 seq_cst
+  %res = atomicrmw or ptr %src, i64 4294901760 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use OILF.
-define i64 @f7(i64 %dummy, i64 *%src) {
+define i64 @f7(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: oilf %r0, 4294901761
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 4294901761 seq_cst
+  %res = atomicrmw or ptr %src, i64 4294901761 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the OILF range.
-define i64 @f8(i64 %dummy, i64 *%src) {
+define i64 @f8(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: oilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 4294967295 seq_cst
+  %res = atomicrmw or ptr %src, i64 4294967295 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful OIHL value, which is one greater than above.
-define i64 @f9(i64 %dummy, i64 *%src) {
+define i64 @f9(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: oihl %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 4294967296 seq_cst
+  %res = atomicrmw or ptr %src, i64 4294967296 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.  (We could use
 ; combinations of OIH* and OIL* instead, but that isn't implemented.)
-define i64 @f10(i64 %dummy, i64 *%src) {
+define i64 @f10(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: ogr
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 4294967297 seq_cst
+  %res = atomicrmw or ptr %src, i64 4294967297 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the OIHL range.
-define i64 @f11(i64 %dummy, i64 *%src) {
+define i64 @f11(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: oihl %r0, 65535
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 281470681743360 seq_cst
+  %res = atomicrmw or ptr %src, i64 281470681743360 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful OIHH value, which is 1<<32 greater than above.
-define i64 @f12(i64 %dummy, i64 *%src) {
+define i64 @f12(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: oihh %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 281474976710656 seq_cst
+  %res = atomicrmw or ptr %src, i64 281474976710656 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful OIHF value, which is 1<<32 greater again.
-define i64 @f13(i64 %dummy, i64 *%src) {
+define i64 @f13(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: oihf %r0, 65537
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 281479271677952 seq_cst
+  %res = atomicrmw or ptr %src, i64 281479271677952 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the OIHH range.
-define i64 @f14(i64 %dummy, i64 *%src) {
+define i64 @f14(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: oihh %r0, 65535
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 18446462598732840960 seq_cst
+  %res = atomicrmw or ptr %src, i64 18446462598732840960 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.
-define i64 @f15(i64 %dummy, i64 *%src) {
+define i64 @f15(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: ogr
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 18446462598732840961 seq_cst
+  %res = atomicrmw or ptr %src, i64 18446462598732840961 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the OIHF range.
-define i64 @f16(i64 %dummy, i64 *%src) {
+define i64 @f16(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f16:
 ; CHECK: oihf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 -4294967296 seq_cst
+  %res = atomicrmw or ptr %src, i64 -4294967296 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-or-05.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-or-05.ll
index 54b5be4314734..d22ce58d33197 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-or-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-or-05.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check OR of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lao %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 %b seq_cst
+  %res = atomicrmw or ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check OR of 1, which needs a temporary.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[TMP:%r[0-5]]], 1
 ; CHECK: lao %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw or i32 *%src, i32 1 seq_cst
+  %res = atomicrmw or ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the LAO range.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lao %r2, %r4, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131071
-  %res = atomicrmw or i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131071
+  %res = atomicrmw or ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: lao %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131072
-  %res = atomicrmw or i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131072
+  %res = atomicrmw or ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the LAO range.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lao %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131072
-  %res = atomicrmw or i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131072
+  %res = atomicrmw or ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524292
 ; CHECK: lao %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131073
-  %res = atomicrmw or i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131073
+  %res = atomicrmw or ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-or-06.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-or-06.ll
index 3f7a05c7324d2..dd9cda13cf7a3 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-or-06.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-or-06.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check OR of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: laog %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 %b seq_cst
+  %res = atomicrmw or ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check OR of 1, which needs a temporary.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lghi [[TMP:%r[0-5]]], 1
 ; CHECK: laog %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw or i64 *%src, i64 1 seq_cst
+  %res = atomicrmw or ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the LAOG range.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: laog %r2, %r4, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw or i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw or ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: laog %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw or i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw or ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the LAOG range.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: laog %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw or i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw or ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which needs separate address logic.
-define i64 @f6(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f6(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524296
 ; CHECK: laog %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw or i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw or ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-01.ll
index b064ea6801fd7..4202a45bd3639 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i8 *%src, i8 %b seq_cst
+  %res = atomicrmw sub ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the minimum signed value.  We add 0x80000000 to the rotated word.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i8 *%src, i8 -128 seq_cst
+  %res = atomicrmw sub ptr %src, i8 -128 seq_cst
   ret i8 %res
 }
 
 ; Check subtraction of -1.  We add 0x01000000 to the rotated word.
-define i8 @f3(i8 *%src) {
+define i8 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi [[ROT]], 16777216
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i8 @f3(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i8 *%src, i8 -1 seq_cst
+  %res = atomicrmw sub ptr %src, i8 -1 seq_cst
   ret i8 %res
 }
 
 ; Check subtraction of -1.  We add 0xff000000 to the rotated word.
-define i8 @f4(i8 *%src) {
+define i8 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi [[ROT]], -16777216
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i8 @f4(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i8 *%src, i8 1 seq_cst
+  %res = atomicrmw sub ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the maximum signed value.  We add 0x81000000 to the rotated word.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi [[ROT]], -2130706432
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i8 *%src, i8 127 seq_cst
+  %res = atomicrmw sub ptr %src, i8 127 seq_cst
   ret i8 %res
 }
 
 ; Check subtraction of a large unsigned value.  We add 0x02000000 to the
 ; rotated word.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi [[ROT]], 33554432
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i8 *%src, i8 254 seq_cst
+  %res = atomicrmw sub ptr %src, i8 254 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-02.ll
index 9b62491ac24b4..cd907a7025277 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i16 *%src, i16 %b seq_cst
+  %res = atomicrmw sub ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the minimum signed value.  We add 0x80000000 to the rotated word.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i16 *%src, i16 -32768 seq_cst
+  %res = atomicrmw sub ptr %src, i16 -32768 seq_cst
   ret i16 %res
 }
 
 ; Check subtraction of -1.  We add 0x00010000 to the rotated word.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi [[ROT]], 65536
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i16 @f3(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i16 *%src, i16 -1 seq_cst
+  %res = atomicrmw sub ptr %src, i16 -1 seq_cst
   ret i16 %res
 }
 
 ; Check subtraction of 1.  We add 0xffff0000 to the rotated word.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi [[ROT]], -65536
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i16 @f4(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i16 *%src, i16 1 seq_cst
+  %res = atomicrmw sub ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the maximum signed value.  We add 0x80010000 to the rotated word.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi [[ROT]], -2147418112
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i16 *%src, i16 32767 seq_cst
+  %res = atomicrmw sub ptr %src, i16 32767 seq_cst
   ret i16 %res
 }
 
 ; Check subtraction of a large unsigned value.  We add 0x00020000 to the
 ; rotated word.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi [[ROT]], 131072
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw sub i16 *%src, i16 65534 seq_cst
+  %res = atomicrmw sub ptr %src, i16 65534 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-03.ll
index a3031c6806b5f..ae9d0451dd8ef 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check subtraction of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -12,12 +12,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 %b seq_cst
+  %res = atomicrmw sub ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check subtraction of 1, which can use AHI.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -26,69 +26,69 @@ define i32 @f2(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 1 seq_cst
+  %res = atomicrmw sub ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the AHI range.
-define i32 @f3(i32 %dummy, i32 *%src) {
+define i32 @f3(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ahi %r0, -32768
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 32768 seq_cst
+  %res = atomicrmw sub ptr %src, i32 32768 seq_cst
   ret i32 %res
 }
 
 ; Check the next value down, which must use AFI.
-define i32 @f4(i32 %dummy, i32 *%src) {
+define i32 @f4(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi %r0, -32769
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 32769 seq_cst
+  %res = atomicrmw sub ptr %src, i32 32769 seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the AFI range.
-define i32 @f5(i32 %dummy, i32 *%src) {
+define i32 @f5(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi %r0, -2147483648
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 2147483648 seq_cst
+  %res = atomicrmw sub ptr %src, i32 2147483648 seq_cst
   ret i32 %res
 }
 
 ; Check the next value up, which gets treated as a positive operand.
-define i32 @f6(i32 %dummy, i32 *%src) {
+define i32 @f6(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi %r0, 2147483647
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 2147483649 seq_cst
+  %res = atomicrmw sub ptr %src, i32 2147483649 seq_cst
   ret i32 %res
 }
 
 ; Check subtraction of -1, which can use AHI.
-define i32 @f7(i32 %dummy, i32 *%src) {
+define i32 @f7(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ahi %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 -1 seq_cst
+  %res = atomicrmw sub ptr %src, i32 -1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the AHI range.
-define i32 @f8(i32 %dummy, i32 *%src) {
+define i32 @f8(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: ahi %r0, 32767
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 -32767 seq_cst
+  %res = atomicrmw sub ptr %src, i32 -32767 seq_cst
   ret i32 %res
 }
 
 ; Check the next value down, which must use AFI instead.
-define i32 @f9(i32 %dummy, i32 *%src) {
+define i32 @f9(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: afi %r0, 32768
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 -32768 seq_cst
+  %res = atomicrmw sub ptr %src, i32 -32768 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-04.ll
index 911648b6137ea..5d23d4e9ca155 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-04.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check subtraction of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -12,12 +12,12 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 %b seq_cst
+  %res = atomicrmw sub ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check subtraction of 1, which can use AGHI.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -26,87 +26,87 @@ define i64 @f2(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 1 seq_cst
+  %res = atomicrmw sub ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the AGHI range.
-define i64 @f3(i64 %dummy, i64 *%src) {
+define i64 @f3(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r0, -32768
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 32768 seq_cst
+  %res = atomicrmw sub ptr %src, i64 32768 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use AGFI.
-define i64 @f4(i64 %dummy, i64 *%src) {
+define i64 @f4(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r0, -32769
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 32769 seq_cst
+  %res = atomicrmw sub ptr %src, i64 32769 seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the AGFI range.
-define i64 @f5(i64 %dummy, i64 *%src) {
+define i64 @f5(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r0, -2147483648
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 2147483648 seq_cst
+  %res = atomicrmw sub ptr %src, i64 2147483648 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register operation.
-define i64 @f6(i64 %dummy, i64 *%src) {
+define i64 @f6(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: sgr
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 2147483649 seq_cst
+  %res = atomicrmw sub ptr %src, i64 2147483649 seq_cst
   ret i64 %res
 }
 
 ; Check subtraction of -1, which can use AGHI.
-define i64 @f7(i64 %dummy, i64 *%src) {
+define i64 @f7(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 -1 seq_cst
+  %res = atomicrmw sub ptr %src, i64 -1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the AGHI range.
-define i64 @f8(i64 %dummy, i64 *%src) {
+define i64 @f8(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: aghi %r0, 32767
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 -32767 seq_cst
+  %res = atomicrmw sub ptr %src, i64 -32767 seq_cst
   ret i64 %res
 }
 
 ; Check the next value down, which must use AGFI instead.
-define i64 @f9(i64 %dummy, i64 *%src) {
+define i64 @f9(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r0, 32768
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 -32768 seq_cst
+  %res = atomicrmw sub ptr %src, i64 -32768 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the AGFI range.
-define i64 @f10(i64 %dummy, i64 *%src) {
+define i64 @f10(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r0, 2147483647
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 -2147483647 seq_cst
+  %res = atomicrmw sub ptr %src, i64 -2147483647 seq_cst
   ret i64 %res
 }
 
 ; Check the next value down, which must use a register operation.
-define i64 @f11(i64 %dummy, i64 *%src) {
+define i64 @f11(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: sgr
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 -2147483648 seq_cst
+  %res = atomicrmw sub ptr %src, i64 -2147483648 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-05.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-05.ll
index e505f373ac73e..80dad73738869 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-05.ll
@@ -3,67 +3,67 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check addition of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lcr [[NEG:%r[0-5]]], %r4
 ; CHECK: laa %r2, [[NEG]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 %b seq_cst
+  %res = atomicrmw sub ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check addition of 1, which needs a temporary.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[TMP:%r[0-5]]], -1
 ; CHECK: laa %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw sub i32 *%src, i32 1 seq_cst
+  %res = atomicrmw sub ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the LAA range.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lcr [[NEG:%r[0-5]]], %r4
 ; CHECK: laa %r2, [[NEG]], 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131071
-  %res = atomicrmw sub i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131071
+  %res = atomicrmw sub ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: lcr [[NEG:%r[0-5]]], %r4
 ; CHECK-DAG: agfi %r3, 524288
 ; CHECK: laa %r2, [[NEG]], 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131072
-  %res = atomicrmw sub i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131072
+  %res = atomicrmw sub ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the LAA range.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lcr [[NEG:%r[0-5]]], %r4
 ; CHECK: laa %r2, [[NEG]], -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131072
-  %res = atomicrmw sub i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131072
+  %res = atomicrmw sub ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: lcr [[NEG:%r[0-5]]], %r4
 ; CHECK-DAG: agfi %r3, -524292
 ; CHECK: laa %r2, [[NEG]], 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131073
-  %res = atomicrmw sub i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131073
+  %res = atomicrmw sub ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-06.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-06.ll
index 7330cfa5aef3b..ee177b715d5c4 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-sub-06.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-sub-06.ll
@@ -3,67 +3,67 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check addition of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lcgr [[NEG:%r[0-5]]], %r4
 ; CHECK: laag %r2, [[NEG]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 %b seq_cst
+  %res = atomicrmw sub ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check addition of 1, which needs a temporary.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lghi [[TMP:%r[0-5]]], -1
 ; CHECK: laag %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw sub i64 *%src, i64 1 seq_cst
+  %res = atomicrmw sub ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the LAAG range.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lcgr [[NEG:%r[0-5]]], %r4
 ; CHECK: laag %r2, [[NEG]], 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw sub i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw sub ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: lcgr [[NEG:%r[0-5]]], %r4
 ; CHECK-DAG: agfi %r3, 524288
 ; CHECK: laag %r2, [[NEG]], 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw sub i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw sub ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the LAAG range.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lcgr [[NEG:%r[0-5]]], %r4
 ; CHECK: laag %r2, [[NEG]], -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw sub i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw sub ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which needs separate address logic.
-define i64 @f6(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f6(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: lcgr [[NEG:%r[0-5]]], %r4
 ; CHECK-DAG: agfi %r3, -524296
 ; CHECK: laag %r2, [[NEG]], 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw sub i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw sub ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll
index 03d0aa66241cc..b8c7925951a1e 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-01.ll
@@ -10,7 +10,7 @@
 ;   tested in CHECK.  CHECK-SHIFT also checks that %r3 is not modified before
 ;   being used in the RISBG (in contrast to things like atomic addition,
 ;   which shift %r3 left so that %b is at the high end of the word).
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -36,13 +36,13 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, {{%r[0-9]+}}, 0([[NEGSHIFT]])
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: br %r14
-  %res = atomicrmw xchg i8 *%src, i8 %b seq_cst
+  %res = atomicrmw xchg ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check exchange with a constant.  We should force the constant into
 ; a register and use the sequence above.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[VALUE:%r[0-9]+]], 88
 ; CHECK: risbg {{%r[0-9]+}}, [[VALUE]], 32, 39, 24
@@ -50,6 +50,6 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT-LABEL: f2:
 ; CHECK-SHIFT: br %r14
-  %res = atomicrmw xchg i8 *%src, i8 88 seq_cst
+  %res = atomicrmw xchg ptr %src, i8 88 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
index f50c466ab7ea9..2cc6b2b9aea8b 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-02.ll
@@ -10,7 +10,7 @@
 ;   tested in CHECK.  CHECK-SHIFT also checks that %r3 is not modified before
 ;   being used in the RISBG (in contrast to things like atomic addition,
 ;   which shift %r3 left so that %b is at the high end of the word).
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -36,13 +36,13 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, {{%r[0-9]+}}, 0([[NEGSHIFT]])
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: br %r14
-  %res = atomicrmw xchg i16 *%src, i16 %b seq_cst
+  %res = atomicrmw xchg ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check exchange with a constant.  We should force the constant into
 ; a register and use the sequence above.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[VALUE:%r[0-9]+]], -25536
 ; CHECK: risbg {{%r[0-9]+}}, [[VALUE]], 32, 47, 16
@@ -50,6 +50,6 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT-LABEL: f2:
 ; CHECK-SHIFT: br %r14
-  %res = atomicrmw xchg i16 *%src, i16 40000 seq_cst
+  %res = atomicrmw xchg ptr %src, i16 40000 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-03.ll
index 78165bde156b1..cf366b9f2e29a 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-03.ll
@@ -3,93 +3,93 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check register exchange.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
 ; CHECK: cs %r2, %r4, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xchg i32 *%src, i32 %b seq_cst
+  %res = atomicrmw xchg ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the aligned CS range.
-define i32 @f2(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f2(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 4092(%r3)
 ; CHECK: cs %r2, {{%r[0-9]+}}, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which requires CSY.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: ly %r2, 4096(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the aligned CSY range.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: ly %r2, 524284(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r3, 524288
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: cs %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the negative aligned CSY range.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: ly %r2, -4(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the CSY range.
-define i32 @f7(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f7(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f7:
 ; CHECK: ly %r2, -524288(%r3)
 ; CHECK: csy %r2, {{%r[0-9]+}}, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f8(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f8(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -524292
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: cs %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
@@ -101,14 +101,14 @@ define i32 @f9(i32 %dummy, i64 %base, i64 %index, i32 %b) {
 ; CHECK: cs %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %res = atomicrmw xchg i32 *%ptr, i32 %b seq_cst
+  %ptr = inttoptr i64 %add to ptr
+  %res = atomicrmw xchg ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check exchange of a constant.  We should force it into a register and
 ; use the sequence above.
-define i32 @f10(i32 %dummy, i32 *%src) {
+define i32 @f10(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK-DAG: llill [[VALUE:%r[0-9+]]], 40000
 ; CHECK-DAG: l %r2, 0(%r3)
@@ -116,7 +116,7 @@ define i32 @f10(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, [[VALUE]], 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xchg i32 *%src, i32 40000 seq_cst
+  %res = atomicrmw xchg ptr %src, i32 40000 seq_cst
   ret i32 %res
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-04.ll
index 20759bb19e9f9..9a493cb7fd8c7 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xchg-04.ll
@@ -3,60 +3,60 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check register exchange.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^:]*]]:
 ; CHECK: csg %r2, %r4, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xchg i64 *%src, i64 %b seq_cst
+  %res = atomicrmw xchg ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the aligned CSG range.
-define i64 @f2(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f2(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 524280(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw xchg i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw xchg ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which requires separate address logic.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, 524288
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw xchg i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw xchg ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the CSG range.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: lg %r2, -524288(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw xchg i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw xchg ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which requires separate address logic.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r3, -524296
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: csg %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw xchg i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw xchg ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
@@ -68,14 +68,14 @@ define i64 @f6(i64 %dummy, i64 %base, i64 %index, i64 %b) {
 ; CHECK: csg %r2, {{%r[0-9]+}}, 0(%r3)
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i64 *
-  %res = atomicrmw xchg i64 *%ptr, i64 %b seq_cst
+  %ptr = inttoptr i64 %add to ptr
+  %res = atomicrmw xchg ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check exchange of a constant.  We should force it into a register and
 ; use the sequence above.
-define i64 @f7(i64 %dummy, i64 *%ptr) {
+define i64 @f7(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-DAG: llilf [[VALUE:%r[0-9+]]], 3000000000
 ; CHECK-DAG: lg %r2, 0(%r3)
@@ -83,6 +83,6 @@ define i64 @f7(i64 %dummy, i64 *%ptr) {
 ; CHECK: csg %r2, [[VALUE]], 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xchg i64 *%ptr, i64 3000000000 seq_cst
+  %res = atomicrmw xchg ptr %ptr, i64 3000000000 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-01.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-01.ll
index 365266cecee13..103415c8dd5d7 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-01.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-01.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i8 @f1(i8 *%src, i8 %b) {
+define i8 @f1(ptr %src, i8 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i8 @f1(i8 *%src, i8 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i8 *%src, i8 %b seq_cst
+  %res = atomicrmw xor ptr %src, i8 %b seq_cst
   ret i8 %res
 }
 
 ; Check the minimum signed value.  We XOR the rotated word with 0x80000000.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i8 @f2(i8 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i8 *%src, i8 -128 seq_cst
+  %res = atomicrmw xor ptr %src, i8 -128 seq_cst
   ret i8 %res
 }
 
 ; Check XORs of -1.  We XOR the rotated word with 0xff000000.
-define i8 @f3(i8 *%src) {
+define i8 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: xilf [[ROT]], 4278190080
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i8 @f3(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i8 *%src, i8 -1 seq_cst
+  %res = atomicrmw xor ptr %src, i8 -1 seq_cst
   ret i8 %res
 }
 
 ; Check XORs of 1.  We XOR the rotated word with 0x01000000.
-define i8 @f4(i8 *%src) {
+define i8 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: xilf [[ROT]], 16777216
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i8 @f4(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i8 *%src, i8 1 seq_cst
+  %res = atomicrmw xor ptr %src, i8 1 seq_cst
   ret i8 %res
 }
 
 ; Check the maximum signed value.  We XOR the rotated word with 0x7f000000.
-define i8 @f5(i8 *%src) {
+define i8 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: xilf [[ROT]], 2130706432
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i8 @f5(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i8 *%src, i8 127 seq_cst
+  %res = atomicrmw xor ptr %src, i8 127 seq_cst
   ret i8 %res
 }
 
 ; Check XORs of a large unsigned value.  We XOR the rotated word with
 ; 0xfd000000.
-define i8 @f6(i8 *%src) {
+define i8 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: xilf [[ROT]], 4244635648
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i8 @f6(i8 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i8 *%src, i8 253 seq_cst
+  %res = atomicrmw xor ptr %src, i8 253 seq_cst
   ret i8 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-02.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-02.ll
index 70bc02b64558d..e3368f65c0aa6 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-02.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-02.ll
@@ -12,7 +12,7 @@
 ; - CHECK-SHIFT2 makes sure that %b is shifted into the high part of the word
 ;   before being used.  This shift is independent of the other loop prologue
 ;   instructions.
-define i16 @f1(i16 *%src, i16 %b) {
+define i16 @f1(ptr %src, i16 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -41,12 +41,12 @@ define i16 @f1(i16 *%src, i16 %b) {
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: rll
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i16 *%src, i16 %b seq_cst
+  %res = atomicrmw xor ptr %src, i16 %b seq_cst
   ret i16 %res
 }
 
 ; Check the minimum signed value.  We XOR the rotated word with 0x80000000.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: risbg [[RISBG:%r[1-9]+]], %r2, 0, 189, 0{{$}}
 ; CHECK-DAG: sll %r2, 3
@@ -70,12 +70,12 @@ define i16 @f2(i16 *%src) {
 ;
 ; CHECK-SHIFT2-LABEL: f2:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i16 *%src, i16 -32768 seq_cst
+  %res = atomicrmw xor ptr %src, i16 -32768 seq_cst
   ret i16 %res
 }
 
 ; Check XORs of -1.  We XOR the rotated word with 0xffff0000.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: xilf [[ROT]], 4294901760
 ; CHECK: br %r14
@@ -84,12 +84,12 @@ define i16 @f3(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f3:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i16 *%src, i16 -1 seq_cst
+  %res = atomicrmw xor ptr %src, i16 -1 seq_cst
   ret i16 %res
 }
 
 ; Check XORs of 1.  We XOR the rotated word with 0x00010000.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: xilf [[ROT]], 65536
 ; CHECK: br %r14
@@ -98,12 +98,12 @@ define i16 @f4(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f4:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i16 *%src, i16 1 seq_cst
+  %res = atomicrmw xor ptr %src, i16 1 seq_cst
   ret i16 %res
 }
 
 ; Check the maximum signed value.  We XOR the rotated word with 0x7fff0000.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: xilf [[ROT]], 2147418112
 ; CHECK: br %r14
@@ -112,13 +112,13 @@ define i16 @f5(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f5:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i16 *%src, i16 32767 seq_cst
+  %res = atomicrmw xor ptr %src, i16 32767 seq_cst
   ret i16 %res
 }
 
 ; Check XORs of a large unsigned value.  We XOR the rotated word with
 ; 0xfffd0000.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: xilf [[ROT]], 4294770688
 ; CHECK: br %r14
@@ -127,6 +127,6 @@ define i16 @f6(i16 *%src) {
 ; CHECK-SHIFT1: br %r14
 ; CHECK-SHIFT2-LABEL: f6:
 ; CHECK-SHIFT2: br %r14
-  %res = atomicrmw xor i16 *%src, i16 65533 seq_cst
+  %res = atomicrmw xor ptr %src, i16 65533 seq_cst
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-03.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-03.ll
index d719d0bd7140e..6f21fbd80f78b 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-03.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check XORs of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -12,12 +12,12 @@ define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xor i32 *%src, i32 %b seq_cst
+  %res = atomicrmw xor ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the lowest useful constant.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -26,24 +26,24 @@ define i32 @f2(i32 %dummy, i32 *%src) {
 ; CHECK: cs %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xor i32 *%src, i32 1 seq_cst
+  %res = atomicrmw xor ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check an arbitrary constant.
-define i32 @f3(i32 %dummy, i32 *%src) {
+define i32 @f3(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: xilf %r0, 3000000000
 ; CHECK: br %r14
-  %res = atomicrmw xor i32 *%src, i32 3000000000 seq_cst
+  %res = atomicrmw xor ptr %src, i32 3000000000 seq_cst
   ret i32 %res
 }
 
 ; Check bitwise negation.
-define i32 @f4(i32 %dummy, i32 *%src) {
+define i32 @f4(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw xor i32 *%src, i32 -1 seq_cst
+  %res = atomicrmw xor ptr %src, i32 -1 seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-04.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-04.ll
index c17a879f37cd2..6cf1b80b8d0cd 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-04.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-04.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check XORs of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -12,12 +12,12 @@ define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 %b seq_cst
+  %res = atomicrmw xor ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful XILF value.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 0(%r3)
 ; CHECK: [[LABEL:\.[^ ]*]]:
@@ -26,52 +26,52 @@ define i64 @f2(i64 %dummy, i64 *%src) {
 ; CHECK: csg %r2, %r0, 0(%r3)
 ; CHECK: jl [[LABEL]]
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 1 seq_cst
+  %res = atomicrmw xor ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the XILF range.
-define i64 @f3(i64 %dummy, i64 *%src) {
+define i64 @f3(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: xilf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 4294967295 seq_cst
+  %res = atomicrmw xor ptr %src, i64 4294967295 seq_cst
   ret i64 %res
 }
 
 ; Check the lowest useful XIHF value, which is one greater than above.
-define i64 @f4(i64 %dummy, i64 *%src) {
+define i64 @f4(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: xihf %r0, 1
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 4294967296 seq_cst
+  %res = atomicrmw xor ptr %src, i64 4294967296 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.  (We could use
 ; combinations of XIH* and XIL* instead, but that isn't implemented.)
-define i64 @f5(i64 %dummy, i64 *%src) {
+define i64 @f5(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: xgr
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 4294967297 seq_cst
+  %res = atomicrmw xor ptr %src, i64 4294967297 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the XIHF range.
-define i64 @f6(i64 %dummy, i64 *%src) {
+define i64 @f6(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: xihf %r0, 4294967295
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 -4294967296 seq_cst
+  %res = atomicrmw xor ptr %src, i64 -4294967296 seq_cst
   ret i64 %res
 }
 
 ; Check the next value up, which must use a register.
-define i64 @f7(i64 %dummy, i64 *%src) {
+define i64 @f7(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: xgr
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 -4294967295 seq_cst
+  %res = atomicrmw xor ptr %src, i64 -4294967295 seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-05.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-05.ll
index e821f7ee8ae4a..5444cbdd248b2 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-05.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-05.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check OR of a variable.
-define i32 @f1(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f1(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lax %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw xor i32 *%src, i32 %b seq_cst
+  %res = atomicrmw xor ptr %src, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check OR of 1, which needs a temporary.
-define i32 @f2(i32 %dummy, i32 *%src) {
+define i32 @f2(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[TMP:%r[0-5]]], 1
 ; CHECK: lax %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw xor i32 *%src, i32 1 seq_cst
+  %res = atomicrmw xor ptr %src, i32 1 seq_cst
   ret i32 %res
 }
 
 ; Check the high end of the LAX range.
-define i32 @f3(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f3(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: lax %r2, %r4, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131071
-  %res = atomicrmw xor i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131071
+  %res = atomicrmw xor ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word up, which needs separate address logic.
-define i32 @f4(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f4(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: lax %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 131072
-  %res = atomicrmw xor i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 131072
+  %res = atomicrmw xor ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the low end of the LAX range.
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: lax %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131072
-  %res = atomicrmw xor i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131072
+  %res = atomicrmw xor ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }
 
 ; Check the next word down, which needs separate address logic.
-define i32 @f6(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f6(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524292
 ; CHECK: lax %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i32 -131073
-  %res = atomicrmw xor i32 *%ptr, i32 %b seq_cst
+  %ptr = getelementptr i32, ptr %src, i32 -131073
+  %res = atomicrmw xor ptr %ptr, i32 %b seq_cst
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-06.ll b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-06.ll
index 630ff6a60977a..094bbe6e4b87e 100644
--- a/llvm/test/CodeGen/SystemZ/atomicrmw-xor-06.ll
+++ b/llvm/test/CodeGen/SystemZ/atomicrmw-xor-06.ll
@@ -3,62 +3,62 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check XOR of a variable.
-define i64 @f1(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f1(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: laxg %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 %b seq_cst
+  %res = atomicrmw xor ptr %src, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check XOR of 1, which needs a temporary.
-define i64 @f2(i64 %dummy, i64 *%src) {
+define i64 @f2(i64 %dummy, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lghi [[TMP:%r[0-5]]], 1
 ; CHECK: laxg %r2, [[TMP]], 0(%r3)
 ; CHECK: br %r14
-  %res = atomicrmw xor i64 *%src, i64 1 seq_cst
+  %res = atomicrmw xor ptr %src, i64 1 seq_cst
   ret i64 %res
 }
 
 ; Check the high end of the LAXG range.
-define i64 @f3(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f3(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: laxg %r2, %r4, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %res = atomicrmw xor i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %res = atomicrmw xor ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
-define i64 @f4(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f4(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: laxg %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %res = atomicrmw xor i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %res = atomicrmw xor ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the low end of the LAXG range.
-define i64 @f5(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f5(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: laxg %r2, %r4, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %res = atomicrmw xor i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %res = atomicrmw xor ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }
 
 ; Check the next doubleword down, which needs separate address logic.
-define i64 @f6(i64 %dummy, i64 *%src, i64 %b) {
+define i64 @f6(i64 %dummy, ptr %src, i64 %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524296
 ; CHECK: laxg %r2, %r4, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %res = atomicrmw xor i64 *%ptr, i64 %b seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %res = atomicrmw xor ptr %ptr, i64 %b seq_cst
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/backchain.ll b/llvm/test/CodeGen/SystemZ/backchain.ll
index b295c75c1072b..deb337790627a 100644
--- a/llvm/test/CodeGen/SystemZ/backchain.ll
+++ b/llvm/test/CodeGen/SystemZ/backchain.ll
@@ -2,8 +2,8 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck -allow-deprecated-dag-overlap %s
 
-declare i8 *@llvm.stacksave()
-declare void @llvm.stackrestore(i8 *)
+declare ptr at llvm.stacksave()
+declare void @llvm.stackrestore(ptr)
 declare void @g()
 
 ; nothing should happen if no stack frame is needed.
@@ -74,12 +74,12 @@ define void @f5(i32 %count1, i32 %count2) "backchain" {
 ; CHECK-DAG: stg [[BC3]], 0([[NEWSP2]])
 ; CHECK: lmg %r11, %r15, 248(%r11)
 ; CHECK: br %r14
-  %src = call i8 *@llvm.stacksave()
+  %src = call ptr at llvm.stacksave()
   %array1 = alloca i8, i32 %count1
-  store volatile i8 0, i8 *%array1
-  call void @llvm.stackrestore(i8 *%src)
+  store volatile i8 0, ptr %array1
+  call void @llvm.stackrestore(ptr %src)
   %array2 = alloca i8, i32 %count2
-  store volatile i8 0, i8 *%array2
+  store volatile i8 0, ptr %array2
   ret void
 }
 
@@ -105,12 +105,12 @@ define void @f6(i32 %count1, i32 %count2) #0 {
 ; CHECK-DAG: stg [[BC3]], 152([[NEWSP2]])
 ; CHECK: lmg %r11, %r15, 160(%r11)
 ; CHECK: br %r14
-  %src = call i8 *@llvm.stacksave()
+  %src = call ptr at llvm.stacksave()
   %array1 = alloca i8, i32 %count1
-  store volatile i8 0, i8 *%array1
-  call void @llvm.stackrestore(i8 *%src)
+  store volatile i8 0, ptr %array1
+  call void @llvm.stackrestore(ptr %src)
   %array2 = alloca i8, i32 %count2
-  store volatile i8 0, i8 *%array2
+  store volatile i8 0, ptr %array2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/bcmp.ll b/llvm/test/CodeGen/SystemZ/bcmp.ll
index fc922abe44a15..0cdeb6c2c0b20 100644
--- a/llvm/test/CodeGen/SystemZ/bcmp.ll
+++ b/llvm/test/CodeGen/SystemZ/bcmp.ll
@@ -1,9 +1,9 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare signext i32 @bcmp(i8* nocapture, i8* nocapture, i64)
+declare signext i32 @bcmp(ptr nocapture, ptr nocapture, i64)
 
-define zeroext i1 @test_bcmp_eq_0(i8* nocapture readonly %A, i8* nocapture readonly %B) {
+define zeroext i1 @test_bcmp_eq_0(ptr nocapture readonly %A, ptr nocapture readonly %B) {
 ; CHECK-LABEL: test_bcmp_eq_0:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    clc 0(2,%r3), 0(%r2)
@@ -11,12 +11,12 @@ define zeroext i1 @test_bcmp_eq_0(i8* nocapture readonly %A, i8* nocapture reado
 ; CHECK-NEXT:    afi %r0, -268435456
 ; CHECK-NEXT:    risbg %r2, %r0, 63, 191, 33
 ; CHECK-NEXT:    br %r14
-  %c = tail call signext i32 @bcmp(i8* %A, i8* %B, i64 2)
+  %c = tail call signext i32 @bcmp(ptr %A, ptr %B, i64 2)
   %res  = icmp eq i32 %c, 0
   ret i1 %res
 }
 
-define signext i32 @test_bcmp(i8* nocapture readonly %A, i8* nocapture readonly %B) {
+define signext i32 @test_bcmp(ptr nocapture readonly %A, ptr nocapture readonly %B) {
 ; CHECK-LABEL: test_bcmp:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    clc 0(2,%r3), 0(%r2)
@@ -24,6 +24,6 @@ define signext i32 @test_bcmp(i8* nocapture readonly %A, i8* nocapture readonly
 ; CHECK-NEXT:    sllg %r0, %r0, 34
 ; CHECK-NEXT:    srag %r2, %r0, 62
 ; CHECK-NEXT:    br %r14
-  %res = tail call signext i32 @bcmp(i8* %A, i8* %B, i64 2)
+  %res = tail call signext i32 @bcmp(ptr %A, ptr %B, i64 2)
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/branch-01.ll b/llvm/test/CodeGen/SystemZ/branch-01.ll
index 12ed2d32a801a..5f74eef05c57c 100644
--- a/llvm/test/CodeGen/SystemZ/branch-01.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-01.ll
@@ -2,13 +2,13 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i8 *%dest) {
+define void @f1(ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: .L[[LABEL:.*]]:
 ; CHECK: mvi 0(%r2), 1
 ; CHECK: j .L[[LABEL]]
   br label %loop
 loop:
-  store volatile i8 1, i8 *%dest
+  store volatile i8 1, ptr %dest
   br label %loop
 }

diff  --git a/llvm/test/CodeGen/SystemZ/branch-02.ll b/llvm/test/CodeGen/SystemZ/branch-02.ll
index 5392749f1e994..2458da1936a8b 100644
--- a/llvm/test/CodeGen/SystemZ/branch-02.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-02.ll
@@ -4,7 +4,7 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(i32 *%src, i32 %target) {
+define void @f1(ptr %src, i32 %target) {
 ; CHECK-LABEL: f1:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -12,14 +12,14 @@ define void @f1(i32 *%src, i32 %target) {
 ; CHECK-NEXT: je .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp eq i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f2(i32 *%src, i32 %target) {
+define void @f2(ptr %src, i32 %target) {
 ; CHECK-LABEL: f2:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -27,14 +27,14 @@ define void @f2(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jlh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp ne i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f3(i32 *%src, i32 %target) {
+define void @f3(ptr %src, i32 %target) {
 ; CHECK-LABEL: f3:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -42,14 +42,14 @@ define void @f3(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jle .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp sle i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f4(i32 *%src, i32 %target) {
+define void @f4(ptr %src, i32 %target) {
 ; CHECK-LABEL: f4:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -57,14 +57,14 @@ define void @f4(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jl .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp slt i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f5(i32 *%src, i32 %target) {
+define void @f5(ptr %src, i32 %target) {
 ; CHECK-LABEL: f5:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -72,14 +72,14 @@ define void @f5(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp sgt i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f6(i32 *%src, i32 %target) {
+define void @f6(ptr %src, i32 %target) {
 ; CHECK-LABEL: f6:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -87,7 +87,7 @@ define void @f6(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jhe .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp sge i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/branch-03.ll b/llvm/test/CodeGen/SystemZ/branch-03.ll
index fe45346f0e270..e72f6a77eabe6 100644
--- a/llvm/test/CodeGen/SystemZ/branch-03.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-03.ll
@@ -2,7 +2,7 @@
 ; comparisons.
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
-define void @f1(i32 *%src, i32 %target) {
+define void @f1(ptr %src, i32 %target) {
 ; CHECK-LABEL: f1:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -10,14 +10,14 @@ define void @f1(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jle .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp ule i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f2(i32 *%src, i32 %target) {
+define void @f2(ptr %src, i32 %target) {
 ; CHECK-LABEL: f2:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -25,14 +25,14 @@ define void @f2(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jl .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp ult i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f3(i32 *%src, i32 %target) {
+define void @f3(ptr %src, i32 %target) {
 ; CHECK-LABEL: f3:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -40,14 +40,14 @@ define void @f3(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp ugt i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f4(i32 *%src, i32 %target) {
+define void @f4(ptr %src, i32 %target) {
 ; CHECK-LABEL: f4:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -55,7 +55,7 @@ define void @f4(i32 *%src, i32 %target) {
 ; CHECK-NEXT: jhe .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cond = icmp uge i32 %target, %val
   br i1 %cond, label %loop, label %exit
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/branch-04.ll b/llvm/test/CodeGen/SystemZ/branch-04.ll
index 13da63044cc41..3f0ec442c98b0 100644
--- a/llvm/test/CodeGen/SystemZ/branch-04.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-04.ll
@@ -3,7 +3,7 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @f1(float *%src, float %target) {
+define void @f1(ptr %src, float %target) {
 ; CHECK-LABEL: f1:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -11,14 +11,14 @@ define void @f1(float *%src, float %target) {
 ; CHECK-NEXT: je .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp oeq float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f2(float *%src, float %target) {
+define void @f2(ptr %src, float %target) {
 ; CHECK-LABEL: f2:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -26,14 +26,14 @@ define void @f2(float *%src, float %target) {
 ; CHECK-NEXT: jlh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp one float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f3(float *%src, float %target) {
+define void @f3(ptr %src, float %target) {
 ; CHECK-LABEL: f3:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -41,14 +41,14 @@ define void @f3(float *%src, float %target) {
 ; CHECK-NEXT: jle .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ole float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f4(float *%src, float %target) {
+define void @f4(ptr %src, float %target) {
 ; CHECK-LABEL: f4:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -56,14 +56,14 @@ define void @f4(float *%src, float %target) {
 ; CHECK-NEXT: jl .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp olt float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f5(float *%src, float %target) {
+define void @f5(ptr %src, float %target) {
 ; CHECK-LABEL: f5:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -71,14 +71,14 @@ define void @f5(float *%src, float %target) {
 ; CHECK-NEXT: jh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ogt float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f6(float *%src, float %target) {
+define void @f6(ptr %src, float %target) {
 ; CHECK-LABEL: f6:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -86,14 +86,14 @@ define void @f6(float *%src, float %target) {
 ; CHECK-NEXT: jhe .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp oge float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f7(float *%src, float %target) {
+define void @f7(ptr %src, float %target) {
 ; CHECK-LABEL: f7:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -101,14 +101,14 @@ define void @f7(float *%src, float %target) {
 ; CHECK-NEXT: jnlh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ueq float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f8(float *%src, float %target) {
+define void @f8(ptr %src, float %target) {
 ; CHECK-LABEL: f8:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -116,14 +116,14 @@ define void @f8(float *%src, float %target) {
 ; CHECK-NEXT: jne .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp une float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f9(float *%src, float %target) {
+define void @f9(ptr %src, float %target) {
 ; CHECK-LABEL: f9:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -131,14 +131,14 @@ define void @f9(float *%src, float %target) {
 ; CHECK-NEXT: jnh .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ule float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f10(float *%src, float %target) {
+define void @f10(ptr %src, float %target) {
 ; CHECK-LABEL: f10:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -146,14 +146,14 @@ define void @f10(float *%src, float %target) {
 ; CHECK-NEXT: jnhe .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ult float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f11(float *%src, float %target) {
+define void @f11(ptr %src, float %target) {
 ; CHECK-LABEL: f11:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -161,14 +161,14 @@ define void @f11(float *%src, float %target) {
 ; CHECK-NEXT: jnle .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ugt float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
   ret void
 }
 
-define void @f12(float *%src, float %target) {
+define void @f12(ptr %src, float %target) {
 ; CHECK-LABEL: f12:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -176,7 +176,7 @@ define void @f12(float *%src, float %target) {
 ; CHECK-NEXT: jnl .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp uge float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
@@ -185,7 +185,7 @@ exit:
 
 ; "jno" == "jump if no overflow", which corresponds to "jump if ordered"
 ; rather than "jump if not ordered" after a floating-point comparison.
-define void @f13(float *%src, float %target) {
+define void @f13(ptr %src, float %target) {
 ; CHECK-LABEL: f13:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -193,7 +193,7 @@ define void @f13(float *%src, float %target) {
 ; CHECK-NEXT: jno .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp ord float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:
@@ -202,7 +202,7 @@ exit:
 
 ; "jo" == "jump if overflow", which corresponds to "jump if not ordered"
 ; rather than "jump if ordered" after a floating-point comparison.
-define void @f14(float *%src, float %target) {
+define void @f14(ptr %src, float %target) {
 ; CHECK-LABEL: f14:
 ; CHECK: .cfi_startproc
 ; CHECK: .L[[LABEL:.*]]:
@@ -210,7 +210,7 @@ define void @f14(float *%src, float %target) {
 ; CHECK-NEXT: jo .L[[LABEL]]
   br label %loop
 loop:
-  %val = load volatile float, float *%src
+  %val = load volatile float, ptr %src
   %cond = fcmp uno float %target, %val
   br i1 %cond, label %loop, label %exit
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/branch-06.ll b/llvm/test/CodeGen/SystemZ/branch-06.ll
index bb83d319e3a24..324ba0ea95a3e 100644
--- a/llvm/test/CodeGen/SystemZ/branch-06.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-06.ll
@@ -91,7 +91,7 @@ exit:
 
 ; Check that CRJ is used for checking equality with a zero-extending
 ; character load.
-define dso_local void @f7(i8 *%targetptr) {
+define dso_local void @f7(ptr %targetptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: .cfi_def_cfa_offset
 ; CHECK: .L[[LABEL:.*]]:
@@ -100,7 +100,7 @@ define dso_local void @f7(i8 *%targetptr) {
   br label %loop
 loop:
   %val = call i32 @foo()
-  %byte = load i8, i8 *%targetptr
+  %byte = load i8, ptr %targetptr
   %target = zext i8 %byte to i32
   %cond = icmp eq i32 %val, %target
   br i1 %cond, label %loop, label %exit
@@ -109,7 +109,7 @@ exit:
 }
 
 ; ...and zero-extending i16 loads.
-define dso_local void @f8(i16 *%targetptr) {
+define dso_local void @f8(ptr %targetptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: .cfi_def_cfa_offset
 ; CHECK: .L[[LABEL:.*]]:
@@ -118,7 +118,7 @@ define dso_local void @f8(i16 *%targetptr) {
   br label %loop
 loop:
   %val = call i32 @foo()
-  %half = load i16, i16 *%targetptr
+  %half = load i16, ptr %targetptr
   %target = zext i16 %half to i32
   %cond = icmp eq i32 %val, %target
   br i1 %cond, label %loop, label %exit
@@ -127,7 +127,7 @@ exit:
 }
 
 ; ...unless the address is a global.
-define dso_local void @f9(i16 *%targetptr) {
+define dso_local void @f9(ptr %targetptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: .cfi_def_cfa_offset
 ; CHECK: .L[[LABEL:.*]]:
@@ -136,7 +136,7 @@ define dso_local void @f9(i16 *%targetptr) {
   br label %loop
 loop:
   %val = call i32 @foo()
-  %half = load i16, i16 *@g1
+  %half = load i16, ptr at g1
   %target = zext i16 %half to i32
   %cond = icmp eq i32 %val, %target
   br i1 %cond, label %loop, label %exit
@@ -146,7 +146,7 @@ exit:
 
 ; Check that CRJ is used for checking order between two zero-extending
 ; byte loads, even if the original comparison was unsigned.
-define dso_local void @f10(i8 *%targetptr1) {
+define dso_local void @f10(ptr %targetptr1) {
 ; CHECK-LABEL: f10:
 ; CHECK: .cfi_def_cfa_offset
 ; CHECK: .L[[LABEL:.*]]:
@@ -156,9 +156,9 @@ define dso_local void @f10(i8 *%targetptr1) {
   br label %loop
 loop:
   %val = call i32 @foo()
-  %targetptr2 = getelementptr i8, i8 *%targetptr1, i64 1
-  %byte1 = load i8, i8 *%targetptr1
-  %byte2 = load i8, i8 *%targetptr2
+  %targetptr2 = getelementptr i8, ptr %targetptr1, i64 1
+  %byte1 = load i8, ptr %targetptr1
+  %byte2 = load i8, ptr %targetptr2
   %ext1 = zext i8 %byte1 to i32
   %ext2 = zext i8 %byte2 to i32
   %cond = icmp ult i32 %ext1, %ext2
@@ -168,7 +168,7 @@ exit:
 }
 
 ; ...likewise halfword loads.
-define dso_local void @f11(i16 *%targetptr1) {
+define dso_local void @f11(ptr %targetptr1) {
 ; CHECK-LABEL: f11:
 ; CHECK: .cfi_def_cfa_offset
 ; CHECK: .L[[LABEL:.*]]:
@@ -178,9 +178,9 @@ define dso_local void @f11(i16 *%targetptr1) {
   br label %loop
 loop:
   %val = call i32 @foo()
-  %targetptr2 = getelementptr i16, i16 *%targetptr1, i64 1
-  %half1 = load i16, i16 *%targetptr1
-  %half2 = load i16, i16 *%targetptr2
+  %targetptr2 = getelementptr i16, ptr %targetptr1, i64 1
+  %half1 = load i16, ptr %targetptr1
+  %half2 = load i16, ptr %targetptr2
   %ext1 = zext i16 %half1 to i32
   %ext2 = zext i16 %half2 to i32
   %cond = icmp ult i32 %ext1, %ext2

diff  --git a/llvm/test/CodeGen/SystemZ/branch-07.ll b/llvm/test/CodeGen/SystemZ/branch-07.ll
index bac607133a89d..0fcd631745d18 100644
--- a/llvm/test/CodeGen/SystemZ/branch-07.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-07.ll
@@ -125,7 +125,7 @@ define i64 @f8(i64 %a, i64 %b) {
 }
 
 ; Test a vector of 0/-1 results for i64 EQ.
-define void @f9(i64 %a, i64 %b, <2 x i64> *%dest) {
+define void @f9(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -268435456
@@ -136,12 +136,12 @@ define void @f9(i64 %a, i64 %b, <2 x i64> *%dest) {
   %bvec = bitcast i64 %b to <2 x i32>
   %cmp = icmp eq <2 x i32> %avec, %bvec
   %ext = sext <2 x i1> %cmp to <2 x i64>
-  store <2 x i64> %ext, <2 x i64> *%dest
+  store <2 x i64> %ext, ptr %dest
   ret void
 }
 
 ; Test a vector of 0/-1 results for i64 NE.
-define void @f10(i64 %a, i64 %b, <2 x i64> *%dest) {
+define void @f10(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1879048192
@@ -152,6 +152,6 @@ define void @f10(i64 %a, i64 %b, <2 x i64> *%dest) {
   %bvec = bitcast i64 %b to <2 x i32>
   %cmp = icmp ne <2 x i32> %avec, %bvec
   %ext = sext <2 x i1> %cmp to <2 x i64>
-  store <2 x i64> %ext, <2 x i64> *%dest
+  store <2 x i64> %ext, ptr %dest
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/branch-08.ll b/llvm/test/CodeGen/SystemZ/branch-08.ll
index 237676937cab7..96b190cea2000 100644
--- a/llvm/test/CodeGen/SystemZ/branch-08.ll
+++ b/llvm/test/CodeGen/SystemZ/branch-08.ll
@@ -6,7 +6,7 @@ declare void @foo() noreturn
 
 ; Check a case where a separate branch is needed and where the original
 ; order should be reversed.
-define i32 @f1(i32 %a, i32 *%bptr) {
+define i32 @f1(i32 %a, ptr %bptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cl %r2, 0(%r3)
 ; CHECK: jl .L[[LABEL:.*]]
@@ -14,7 +14,7 @@ define i32 @f1(i32 %a, i32 *%bptr) {
 ; CHECK: .L[[LABEL]]:
 ; CHECK: brasl %r14, foo at PLT
 entry:
-  %b = load i32, i32 *%bptr
+  %b = load i32, ptr %bptr
   %cmp = icmp ult i32 %a, %b
   br i1 %cmp, label %callit, label %return
 

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-02.ll b/llvm/test/CodeGen/SystemZ/bswap-02.ll
index 832d1bb8faae4..4e47fdcb4ec55 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-02.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-02.ll
@@ -5,70 +5,70 @@
 declare i32 @llvm.bswap.i32(i32 %a)
 
 ; Check LRV with no displacement.
-define i32 @f1(i32 *%src) {
+define i32 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lrv %r2, 0(%r2)
 ; CHECK: br %r14
-  %a = load i32, i32 *%src
+  %a = load i32, ptr %src
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
 
 ; Check the high end of the aligned LRV range.
-define i32 @f2(i32 *%src) {
+define i32 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lrv %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %a = load i32, ptr %ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f3(i32 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lrv %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %a = load i32, ptr %ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
 
 ; Check the high end of the negative aligned LRV range.
-define i32 @f4(i32 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lrv %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %a = load i32, ptr %ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
 
 ; Check the low end of the LRV range.
-define i32 @f5(i32 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: lrv %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %a = load i32, ptr %ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524292
 ; CHECK: lrv %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %a = load i32, ptr %ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
@@ -80,15 +80,15 @@ define i32 @f7(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %a = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i32, ptr %ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
   ret i32 %swapped
 }
 
 ; Test a case where we spill the source of at least one LRVR.  We want
 ; to use LRV if possible.
-define i32 @f8(i32 *%ptr0) {
+define i32 @f8(ptr %ptr0) {
 ; CHECK-LABEL: f8:
 ; CHECK: lrv {{%r[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-03.ll b/llvm/test/CodeGen/SystemZ/bswap-03.ll
index 3877d0ad481c6..baa664a3b88a7 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-03.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-03.ll
@@ -5,70 +5,70 @@
 declare i64 @llvm.bswap.i64(i64 %a)
 
 ; Check LRVG with no displacement.
-define i64 @f1(i64 *%src) {
+define i64 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lrvg %r2, 0(%r2)
 ; CHECK: br %r14
-  %a = load i64, i64 *%src
+  %a = load i64, ptr %src
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
 
 ; Check the high end of the aligned LRVG range.
-define i64 @f2(i64 *%src) {
+define i64 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lrvg %r2, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %a = load i64, ptr %ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i64 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lrvg %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %a = load i64, ptr %ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
 
 ; Check the high end of the negative aligned LRVG range.
-define i64 @f4(i64 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lrvg %r2, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %a = load i64, ptr %ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
 
 ; Check the low end of the LRVG range.
-define i64 @f5(i64 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: lrvg %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %a = load i64, ptr %ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524296
 ; CHECK: lrvg %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %a = load i64, ptr %ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
@@ -80,15 +80,15 @@ define i64 @f7(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %a = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i64, ptr %ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
   ret i64 %swapped
 }
 
 ; Test a case where we spill the source of at least one LRVGR.  We want
 ; to use LRVG if possible.
-define i64 @f8(i64 *%ptr) {
+define i64 @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: lrvg {{%r[0-9]+}}, 160(%r15)
 ; CHECK: br %r14

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-04.ll b/llvm/test/CodeGen/SystemZ/bswap-04.ll
index f976ce65b61b1..1873419e785d4 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-04.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-04.ll
@@ -5,71 +5,71 @@
 declare i32 @llvm.bswap.i32(i32 %a)
 
 ; Check STRV with no displacement.
-define void @f1(i32 *%dst, i32 %a) {
+define void @f1(ptr %dst, i32 %a) {
 ; CHECK-LABEL: f1:
 ; CHECK: strv %r3, 0(%r2)
 ; CHECK: br %r14
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%dst
+  store i32 %swapped, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned STRV range.
-define void @f2(i32 *%dst, i32 %a) {
+define void @f2(ptr %dst, i32 %a) {
 ; CHECK-LABEL: f2:
 ; CHECK: strv %r3, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 131071
+  %ptr = getelementptr i32, ptr %dst, i64 131071
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%ptr
+  store i32 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f3(i32 *%dst, i32 %a) {
+define void @f3(ptr %dst, i32 %a) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: strv %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 131072
+  %ptr = getelementptr i32, ptr %dst, i64 131072
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%ptr
+  store i32 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STRV range.
-define void @f4(i32 *%dst, i32 %a) {
+define void @f4(ptr %dst, i32 %a) {
 ; CHECK-LABEL: f4:
 ; CHECK: strv %r3, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 -1
+  %ptr = getelementptr i32, ptr %dst, i64 -1
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%ptr
+  store i32 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STRV range.
-define void @f5(i32 *%dst, i32 %a) {
+define void @f5(ptr %dst, i32 %a) {
 ; CHECK-LABEL: f5:
 ; CHECK: strv %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 -131072
+  %ptr = getelementptr i32, ptr %dst, i64 -131072
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%ptr
+  store i32 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i32 *%dst, i32 %a) {
+define void @f6(ptr %dst, i32 %a) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524292
 ; CHECK: strv %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 -131073
+  %ptr = getelementptr i32, ptr %dst, i64 -131073
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%ptr
+  store i32 %swapped, ptr %ptr
   ret void
 }
 
@@ -80,9 +80,9 @@ define void @f7(i64 %src, i64 %index, i32 %a) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
+  %ptr = inttoptr i64 %add2 to ptr
   %swapped = call i32 @llvm.bswap.i32(i32 %a)
-  store i32 %swapped, i32 *%ptr
+  store i32 %swapped, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-05.ll b/llvm/test/CodeGen/SystemZ/bswap-05.ll
index ece3f3181d75c..eea29b83b63e1 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-05.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-05.ll
@@ -5,71 +5,71 @@
 declare i64 @llvm.bswap.i64(i64 %a)
 
 ; Check STRVG with no displacement.
-define void @f1(i64 *%dst, i64 %a) {
+define void @f1(ptr %dst, i64 %a) {
 ; CHECK-LABEL: f1:
 ; CHECK: strvg %r3, 0(%r2)
 ; CHECK: br %r14
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%dst
+  store i64 %swapped, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned STRVG range.
-define void @f2(i64 *%dst, i64 %a) {
+define void @f2(ptr %dst, i64 %a) {
 ; CHECK-LABEL: f2:
 ; CHECK: strvg %r3, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 65535
+  %ptr = getelementptr i64, ptr %dst, i64 65535
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%ptr
+  store i64 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f3(i64 *%dst, i64 %a) {
+define void @f3(ptr %dst, i64 %a) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: strvg %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 65536
+  %ptr = getelementptr i64, ptr %dst, i64 65536
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%ptr
+  store i64 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STRVG range.
-define void @f4(i64 *%dst, i64 %a) {
+define void @f4(ptr %dst, i64 %a) {
 ; CHECK-LABEL: f4:
 ; CHECK: strvg %r3, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 -1
+  %ptr = getelementptr i64, ptr %dst, i64 -1
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%ptr
+  store i64 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STRVG range.
-define void @f5(i64 *%dst, i64 %a) {
+define void @f5(ptr %dst, i64 %a) {
 ; CHECK-LABEL: f5:
 ; CHECK: strvg %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 -65536
+  %ptr = getelementptr i64, ptr %dst, i64 -65536
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%ptr
+  store i64 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i64 *%dst, i64 %a) {
+define void @f6(ptr %dst, i64 %a) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524296
 ; CHECK: strvg %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 -65537
+  %ptr = getelementptr i64, ptr %dst, i64 -65537
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%ptr
+  store i64 %swapped, ptr %ptr
   ret void
 }
 
@@ -80,9 +80,9 @@ define void @f7(i64 %src, i64 %index, i64 %a) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
+  %ptr = inttoptr i64 %add2 to ptr
   %swapped = call i64 @llvm.bswap.i64(i64 %a)
-  store i64 %swapped, i64 *%ptr
+  store i64 %swapped, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-06.ll b/llvm/test/CodeGen/SystemZ/bswap-06.ll
index 04ed99686ead7..c15aebfdbe69f 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-06.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-06.ll
@@ -5,70 +5,70 @@
 declare i16 @llvm.bswap.i16(i16 %a)
 
 ; Check LRVH with no displacement.
-define i16 @f1(i16 *%src) {
+define i16 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lrvh %r2, 0(%r2)
 ; CHECK: br %r14
-  %a = load i16, i16 *%src
+  %a = load i16, ptr %src
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }
 
 ; Check the high end of the aligned LRVH range.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lrvh %r2, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %a = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %a = load i16, ptr %ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i16 @f3(i16 *%src) {
+define i16 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lrvh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %a = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %a = load i16, ptr %ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }
 
 ; Check the high end of the negative aligned LRVH range.
-define i16 @f4(i16 *%src) {
+define i16 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lrvh %r2, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %a = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %a = load i16, ptr %ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }
 
 ; Check the low end of the LRVH range.
-define i16 @f5(i16 *%src) {
+define i16 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: lrvh %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %a = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %a = load i16, ptr %ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i16 @f6(i16 *%src) {
+define i16 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524290
 ; CHECK: lrvh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %a = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %a = load i16, ptr %ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }
@@ -80,8 +80,8 @@ define i16 @f7(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i16 *
-  %a = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i16, ptr %ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
   ret i16 %swapped
 }

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-07.ll b/llvm/test/CodeGen/SystemZ/bswap-07.ll
index 9882006ba5824..fd1b8ef03375a 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-07.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-07.ll
@@ -5,71 +5,71 @@
 declare i16 @llvm.bswap.i16(i16 %a)
 
 ; Check STRVH with no displacement.
-define void @f1(i16 *%dst, i16 %a) {
+define void @f1(ptr %dst, i16 %a) {
 ; CHECK-LABEL: f1:
 ; CHECK: strvh %r3, 0(%r2)
 ; CHECK: br %r14
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%dst
+  store i16 %swapped, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned STRVH range.
-define void @f2(i16 *%dst, i16 %a) {
+define void @f2(ptr %dst, i16 %a) {
 ; CHECK-LABEL: f2:
 ; CHECK: strvh %r3, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 262143
+  %ptr = getelementptr i16, ptr %dst, i64 262143
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%ptr
+  store i16 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f3(i16 *%dst, i16 %a) {
+define void @f3(ptr %dst, i16 %a) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: strvh %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 262144
+  %ptr = getelementptr i16, ptr %dst, i64 262144
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%ptr
+  store i16 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STRVH range.
-define void @f4(i16 *%dst, i16 %a) {
+define void @f4(ptr %dst, i16 %a) {
 ; CHECK-LABEL: f4:
 ; CHECK: strvh %r3, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 -1
+  %ptr = getelementptr i16, ptr %dst, i64 -1
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%ptr
+  store i16 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STRVH range.
-define void @f5(i16 *%dst, i16 %a) {
+define void @f5(ptr %dst, i16 %a) {
 ; CHECK-LABEL: f5:
 ; CHECK: strvh %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 -262144
+  %ptr = getelementptr i16, ptr %dst, i64 -262144
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%ptr
+  store i16 %swapped, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i16 *%dst, i16 %a) {
+define void @f6(ptr %dst, i16 %a) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524290
 ; CHECK: strvh %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 -262145
+  %ptr = getelementptr i16, ptr %dst, i64 -262145
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%ptr
+  store i16 %swapped, ptr %ptr
   ret void
 }
 
@@ -80,9 +80,9 @@ define void @f7(i64 %src, i64 %index, i16 %a) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i16 *
+  %ptr = inttoptr i64 %add2 to ptr
   %swapped = call i16 @llvm.bswap.i16(i16 %a)
-  store i16 %swapped, i16 *%ptr
+  store i16 %swapped, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/bswap-08.ll b/llvm/test/CodeGen/SystemZ/bswap-08.ll
index f82b09b37b7a0..6594af7229e67 100644
--- a/llvm/test/CodeGen/SystemZ/bswap-08.ll
+++ b/llvm/test/CodeGen/SystemZ/bswap-08.ll
@@ -4,14 +4,14 @@
 
 declare i64 @llvm.bswap.i64(i64)
 
-define void @f1(i32* %x, i64* %y) {
+define void @f1(ptr %x, ptr %y) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: strv
 ; CHECK: br %r14
-  %a = load i64, i64* %y, align 8
+  %a = load i64, ptr %y, align 8
   %b = tail call i64 @llvm.bswap.i64(i64 %a)
   %conv = trunc i64 %b to i32
-  store i32 %conv, i32* %x, align 4
+  store i32 %conv, ptr %x, align 4
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/buildvector-00.ll b/llvm/test/CodeGen/SystemZ/buildvector-00.ll
index f0d046c8874a0..00c9f02070cf5 100644
--- a/llvm/test/CodeGen/SystemZ/buildvector-00.ll
+++ b/llvm/test/CodeGen/SystemZ/buildvector-00.ll
@@ -24,7 +24,7 @@ bb:
   br label %bb1
 
 bb1:                                              ; preds = %bb
-  %tmp2 = load i64, i64* undef, align 8
+  %tmp2 = load i64, ptr undef, align 8
   %tmp3 = insertelement <2 x i64> undef, i64 %tmp2, i32 1
   %tmp4 = icmp ne <2 x i64> %a0, zeroinitializer
   %tmp5 = xor <2 x i1> %tmp4, zeroinitializer
@@ -39,7 +39,7 @@ bb1:                                              ; preds = %bb
   br i1 %tmp13, label %bb14, label %bb15
 
 bb14:                                             ; preds = %bb1
-  store i64 undef, i64* undef, align 8
+  store i64 undef, ptr undef, align 8
   br label %bb15
 
 bb15:                                             ; preds = %bb14, %bb1

diff  --git a/llvm/test/CodeGen/SystemZ/builtins.ll b/llvm/test/CodeGen/SystemZ/builtins.ll
index 86546c08488aa..660763022b833 100644
--- a/llvm/test/CodeGen/SystemZ/builtins.ll
+++ b/llvm/test/CodeGen/SystemZ/builtins.ll
@@ -1,14 +1,14 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Function Attrs: nounwind readnone
-declare i8* @llvm.thread.pointer() #1
+declare ptr @llvm.thread.pointer() #1
 
-define i8* @thread_pointer() {
+define ptr @thread_pointer() {
 ; CHECK: thread_pointer:
 ; CHECK: ear [[REG1:%r[0-5]]], %a0
 ; CHECK: sllg %r2, [[REG1]], 32
 ; CHECK: ear %r2, %a1
 ; CHECK: br %r14
-  %1 = tail call i8* @llvm.thread.pointer()
-  ret i8* %1
+  %1 = tail call ptr @llvm.thread.pointer()
+  ret ptr %1
 }

diff  --git a/llvm/test/CodeGen/SystemZ/call-02.ll b/llvm/test/CodeGen/SystemZ/call-02.ll
index 5f14d12249f53..56b611af240d3 100644
--- a/llvm/test/CodeGen/SystemZ/call-02.ll
+++ b/llvm/test/CodeGen/SystemZ/call-02.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; We must allocate 160 bytes for the callee and save and restore %r14.
-define i64 @f1(i64() *%bar) {
+define i64 @f1(ptr %bar) {
 ; CHECK-LABEL: f1:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK: aghi %r15, -160

diff  --git a/llvm/test/CodeGen/SystemZ/call-03.ll b/llvm/test/CodeGen/SystemZ/call-03.ll
index 1f314eae58c80..8cb0a5605809a 100644
--- a/llvm/test/CodeGen/SystemZ/call-03.ll
+++ b/llvm/test/CodeGen/SystemZ/call-03.ll
@@ -62,7 +62,7 @@ define void @f4() {
 
 ; Check an indirect call.  In this case the only acceptable choice for
 ; the target register is %r1.
-define void @f5(void(i32, i32, i32, i32) *%foo) {
+define void @f5(ptr %foo) {
 ; CHECK-LABEL: f5:
 ; CHECK: lgr %r1, %r2
 ; CHECK-DAG: lhi %r2, 1
@@ -76,7 +76,7 @@ define void @f5(void(i32, i32, i32, i32) *%foo) {
 
 ; Check an indirect call that will be forced into a call-saved GPR
 ; (which should be %r13, the highest GPR not used for anything else).
-define void @f6(void(i32) *%foo) {
+define void @f6(ptr %foo) {
 ; CHECK-LABEL: f6:
 ; CHECK: stmg %r13, %r15, 104(%r15)
 ; CHECK: lgr %r13, %r2

diff  --git a/llvm/test/CodeGen/SystemZ/call-04.ll b/llvm/test/CodeGen/SystemZ/call-04.ll
index 12e0d59667654..f600bd63a3ad6 100644
--- a/llvm/test/CodeGen/SystemZ/call-04.ll
+++ b/llvm/test/CodeGen/SystemZ/call-04.ll
@@ -22,7 +22,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -58,7 +58,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -76,7 +76,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -94,7 +94,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -112,7 +112,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -130,7 +130,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -148,7 +148,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -166,7 +166,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -184,7 +184,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -202,7 +202,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -220,7 +220,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -238,7 +238,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -256,7 +256,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -274,7 +274,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -292,7 +292,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -310,7 +310,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -328,7 +328,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -346,7 +346,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -364,6 +364,6 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/call-05.ll b/llvm/test/CodeGen/SystemZ/call-05.ll
index b958c0b6d0de9..d7f0f4e80556d 100644
--- a/llvm/test/CodeGen/SystemZ/call-05.ll
+++ b/llvm/test/CodeGen/SystemZ/call-05.ll
@@ -4,16 +4,16 @@
 
 
 @var = global i32 1;
- at fun_a = global void()* null;
- at fun_b = global void()* null;
- at fun_c = global void(i32)* null;
+ at fun_a = global ptr null;
+ at fun_b = global ptr null;
+ at fun_c = global ptr null;
 
 ; Check a conditional sibling call.
 define void @f1(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f1:
 ; CHECK: crbl %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp slt i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -22,7 +22,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -31,8 +31,8 @@ define void @f2(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f2:
 ; CHECK: crbl %r2, %r3, 0(%r1)
 ; CHECK: br %r1
-  %fun_a = load volatile void() *, void()** @fun_a;
-  %fun_b = load volatile void() *, void()** @fun_b;
+  %fun_a = load volatile ptr, ptr @fun_a;
+  %fun_b = load volatile ptr, ptr @fun_b;
   %cond = icmp slt i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -51,7 +51,7 @@ define void @f3(i32 %val1, i32 %val2) {
 ; CHECK: crjhe %r2, %r3
 ; CHECK: br %r1
 ; CHECK: br %r14
-  %fun_c = load volatile void(i32) *, void(i32)** @fun_c;
+  %fun_c = load volatile ptr, ptr @fun_c;
   %cond = icmp slt i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -60,7 +60,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -69,7 +69,7 @@ define void @f4(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f4:
 ; CHECK: clrbl %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp ult i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -78,7 +78,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -87,7 +87,7 @@ define void @f5(i64 %val1, i64 %val2) {
 ; CHECK-LABEL: f5:
 ; CHECK: cgrbl %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp slt i64 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -96,7 +96,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -105,7 +105,7 @@ define void @f6(i64 %val1, i64 %val2) {
 ; CHECK-LABEL: f6:
 ; CHECK: clgrbl %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp ult i64 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -114,7 +114,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -123,7 +123,7 @@ define void @f7(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f7:
 ; CHECK: crble %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp sle i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -132,7 +132,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -141,7 +141,7 @@ define void @f8(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f8:
 ; CHECK: crbh %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp sgt i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -150,7 +150,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -159,7 +159,7 @@ define void @f9(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f9:
 ; CHECK: crbhe %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp sge i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -168,7 +168,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -177,7 +177,7 @@ define void @f10(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f10:
 ; CHECK: crbe %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp eq i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -186,7 +186,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -195,7 +195,7 @@ define void @f11(i32 %val1, i32 %val2) {
 ; CHECK-LABEL: f11:
 ; CHECK: crblh %r2, %r3, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp ne i32 %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -204,7 +204,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -213,7 +213,7 @@ define void @f12(i32 %val1) {
 ; CHECK-LABEL: f12:
 ; CHECK: cible %r2, 4, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp slt i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -222,7 +222,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -231,7 +231,7 @@ define void @f13(i32 %val1) {
 ; CHECK-LABEL: f13:
 ; CHECK: cible %r2, 5, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp sle i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -240,7 +240,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -249,7 +249,7 @@ define void @f14(i32 %val1) {
 ; CHECK-LABEL: f14:
 ; CHECK: cibhe %r2, 6, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp sgt i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -258,7 +258,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -267,7 +267,7 @@ define void @f15(i32 %val1) {
 ; CHECK-LABEL: f15:
 ; CHECK: cibhe %r2, 5, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp sge i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -276,7 +276,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -285,7 +285,7 @@ define void @f16(i32 %val1) {
 ; CHECK-LABEL: f16:
 ; CHECK: cibe %r2, 5, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp eq i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -294,7 +294,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -303,7 +303,7 @@ define void @f17(i32 %val1) {
 ; CHECK-LABEL: f17:
 ; CHECK: ciblh %r2, 5, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp ne i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -312,7 +312,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -321,7 +321,7 @@ define void @f18(i32 %val1) {
 ; CHECK-LABEL: f18:
 ; CHECK: clible %r2, 4, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp ult i32 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -330,7 +330,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -339,7 +339,7 @@ define void @f19(i64 %val1) {
 ; CHECK-LABEL: f19:
 ; CHECK: cgible %r2, 4, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp slt i64 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -348,7 +348,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -357,7 +357,7 @@ define void @f20(i64 %val1) {
 ; CHECK-LABEL: f20:
 ; CHECK: clgible %r2, 4, 0(%r1)
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = icmp ult i64 %val1, 5;
   br i1 %cond, label %a, label %b;
 
@@ -366,13 +366,13 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
 ; Check a conditional sibling call to an argument - will fail due to
 ; intervening lgr.
-define void @f21(i32 %val1, i32 %val2, void()* %fun) {
+define void @f21(i32 %val1, i32 %val2, ptr %fun) {
 ; CHECK-LABEL: f21:
 ; CHECK: crjhe %r2, %r3
 ; CHECK: lgr %r1, %r4
@@ -386,7 +386,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -396,7 +396,7 @@ define void @f22(float %val1, float %val2) {
 ; CHECK: cebr %f0, %f2
 ; CHECK: blr %r1
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = fcmp olt float %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -405,7 +405,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -415,7 +415,7 @@ define void @f23(float %val1, float %val2) {
 ; CHECK: cebr %f0, %f2
 ; CHECK: bnher %r1
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = fcmp ult float %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -424,7 +424,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -434,7 +434,7 @@ define void @f24(float %val1, float %val2) {
 ; CHECK: cebr %f0, %f2
 ; CHECK: bnor %r1
 ; CHECK: br %r14
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = fcmp ord float %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -443,7 +443,7 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }
 
@@ -454,7 +454,7 @@ define void @f25(float %val1, float %val2) {
 ; CHECK: jo
 ; CHECK: br %r14
 ; CHECK: br %r1
-  %fun_a = load volatile void() *, void()** @fun_a;
+  %fun_a = load volatile ptr, ptr @fun_a;
   %cond = fcmp uno float %val1, %val2;
   br i1 %cond, label %a, label %b;
 
@@ -463,6 +463,6 @@ a:
   ret void
 
 b:
-  store i32 1, i32 *@var;
+  store i32 1, ptr at var;
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/call-zos-01.ll b/llvm/test/CodeGen/SystemZ/call-zos-01.ll
index 3fd91fa2fcc29..77776861186ba 100644
--- a/llvm/test/CodeGen/SystemZ/call-zos-01.ll
+++ b/llvm/test/CodeGen/SystemZ/call-zos-01.ll
@@ -38,9 +38,9 @@ entry:
 
 ; CHECK-LABEL: call_ptr:
 ; CHECK: lgr 1, 2
-define i32 @call_ptr(i32* %p1, i32* %p2) {
+define i32 @call_ptr(ptr %p1, ptr %p2) {
 entry:
-  %retval = call i32 (i32*) @pass_ptr(i32* %p2)
+  %retval = call i32 (ptr) @pass_ptr(ptr %p2)
   ret i32 %retval
 }
 
@@ -188,4 +188,4 @@ define i64 @pass_floats0(fp128 %arg0, fp128 %arg1, double %arg2) {
 }
 
 declare i64 @pass_floats1(double %arg0, fp128 %arg1)
-declare i32 @pass_ptr(i32* %arg)
+declare i32 @pass_ptr(ptr %arg)

diff  --git a/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll b/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
index a26bca9d84353..ff52e50373e1e 100644
--- a/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
+++ b/llvm/test/CodeGen/SystemZ/call-zos-vararg.ll
@@ -229,21 +229,18 @@ entry:
 ; CHECK: stg     0, 2200(4)
 define hidden i64 @pass_vararg(i64 %x, ...) {
 entry:
-  %va = alloca i8*, align 8
-  %va1 = bitcast i8** %va to i8*
-  call void @llvm.va_start(i8* %va1)
-  %argp.cur = load i8*, i8** %va, align 8
-  %argp.next = getelementptr inbounds i8, i8* %argp.cur, i64 8
-  store i8* %argp.next, i8** %va, align 8
-  %0 = bitcast i8* %argp.cur to i64*
-  %ret = load i64, i64* %0, align 8
-  %va2 = bitcast i8** %va to i8*
-  call void @llvm.va_end(i8* %va2)
+  %va = alloca ptr, align 8
+  call void @llvm.va_start(ptr %va)
+  %argp.cur = load ptr, ptr %va, align 8
+  %argp.next = getelementptr inbounds i8, ptr %argp.cur, i64 8
+  store ptr %argp.next, ptr %va, align 8
+  %ret = load i64, ptr %argp.cur, align 8
+  call void @llvm.va_end(ptr %va)
   ret i64 %ret
 }
 
-declare void @llvm.va_start(i8*)
-declare void @llvm.va_end(i8*)
+declare void @llvm.va_start(ptr)
+declare void @llvm.va_end(ptr)
 
 declare i64 @pass_vararg0(i64 %arg0, i64 %arg1, ...)
 declare i64 @pass_vararg1(fp128 %arg0, ...)

diff  --git a/llvm/test/CodeGen/SystemZ/cc-liveness.ll b/llvm/test/CodeGen/SystemZ/cc-liveness.ll
index f1bb582ede400..7d98b72eb83c3 100644
--- a/llvm/test/CodeGen/SystemZ/cc-liveness.ll
+++ b/llvm/test/CodeGen/SystemZ/cc-liveness.ll
@@ -11,24 +11,24 @@
 ; CHECK: MVC
 
 @.str.35 = external dso_local unnamed_addr constant [9 x i8], align 2
- at func_38.l_1854 = external dso_local unnamed_addr constant [7 x [10 x [3 x i64**]]], align 8
+ at func_38.l_1854 = external dso_local unnamed_addr constant [7 x [10 x [3 x ptr]]], align 8
 
 ; Function Attrs: nounwind
-define dso_local signext i32 @main(i32 signext %arg, i8** nocapture readonly %arg1) local_unnamed_addr #0 {
+define dso_local signext i32 @main(i32 signext %arg, ptr nocapture readonly %arg1) local_unnamed_addr #0 {
 bb:
-  %tmp = load i8, i8* undef, align 1
+  %tmp = load i8, ptr undef, align 1
   %tmp2 = zext i8 %tmp to i32
   %tmp3 = sub nsw i32 0, %tmp2
   %tmp4 = icmp eq i32 %tmp3, 0
   %tmp5 = zext i1 %tmp4 to i32
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* nonnull align 8 undef, i8* align 8 bitcast ([7 x [10 x [3 x i64**]]]* @func_38.l_1854 to i8*), i64 1680, i1 false) #2
-  call fastcc void @transparent_crc(i64 undef, i8* getelementptr inbounds ([9 x i8], [9 x i8]* @.str.35, i64 0, i64 0), i32 signext %tmp5)
+  call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 undef, ptr align 8 @func_38.l_1854, i64 1680, i1 false) #2
+  call fastcc void @transparent_crc(i64 undef, ptr @.str.35, i32 signext %tmp5)
   unreachable
 }
 
 ; Function Attrs: nounwind
-declare dso_local fastcc void @transparent_crc(i64, i8*, i32 signext) unnamed_addr #0
+declare dso_local fastcc void @transparent_crc(i64, ptr, i32 signext) unnamed_addr #0
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #1
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #1
 

diff  --git a/llvm/test/CodeGen/SystemZ/cmpxchg-01.ll b/llvm/test/CodeGen/SystemZ/cmpxchg-01.ll
index 29dbfb2b051e2..79db0157b502f 100644
--- a/llvm/test/CodeGen/SystemZ/cmpxchg-01.ll
+++ b/llvm/test/CodeGen/SystemZ/cmpxchg-01.ll
@@ -10,7 +10,7 @@
 ;   tested in CHECK.  CHECK-SHIFT also checks that %r3 is not modified before
 ;   being used in the RISBG (in contrast to things like atomic addition,
 ;   which shift %r3 left so that %b is at the high end of the word).
-define i8 @f1(i8 %dummy, i8 *%src, i8 %cmp, i8 %swap) {
+define i8 @f1(i8 %dummy, ptr %src, i8 %cmp, i8 %swap) {
 ; CHECK-MAIN-LABEL: f1:
 ; CHECK-MAIN: risbg [[RISBG:%r[1-9]+]], %r3, 0, 189, 0{{$}}
 ; CHECK-MAIN-DAG: sll %r3, 3
@@ -33,14 +33,14 @@ define i8 @f1(i8 %dummy, i8 *%src, i8 %cmp, i8 %swap) {
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], [[SHIFT]]
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r5, -8([[NEGSHIFT]])
-  %pair = cmpxchg i8 *%src, i8 %cmp, i8 %swap seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i8 %cmp, i8 %swap seq_cst seq_cst
   %res = extractvalue { i8, i1 } %pair, 0
   ret i8 %res
 }
 
 ; Check compare and swap with constants.  We should force the constants into
 ; registers and use the sequence above.
-define i8 @f2(i8 *%src) {
+define i8 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[CMP:%r[0-9]+]], 42
 ; CHECK: risbg [[CMP]], {{%r[0-9]+}}, 32, 55, 0
@@ -51,13 +51,13 @@ define i8 @f2(i8 *%src) {
 ; CHECK-SHIFT: lhi [[SWAP:%r[0-9]+]], 88
 ; CHECK-SHIFT: risbg [[SWAP]], {{%r[0-9]+}}, 32, 55, 0
 ; CHECK-SHIFT: br %r14
-  %pair = cmpxchg i8 *%src, i8 42, i8 88 seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i8 42, i8 88 seq_cst seq_cst
   %res = extractvalue { i8, i1 } %pair, 0
   ret i8 %res
 }
 
 ; Check generating the comparison result.
-define i32 @f3(i8 %dummy, i8 *%src, i8 %cmp, i8 %swap) {
+define i32 @f3(i8 %dummy, ptr %src, i8 %cmp, i8 %swap) {
 ; CHECK-MAIN-LABEL: f3:
 ; CHECK-MAIN: risbg [[RISBG:%r[1-9]+]], %r3, 0, 189, 0{{$}}
 ; CHECK-MAIN-DAG: sll %r3, 3
@@ -84,7 +84,7 @@ define i32 @f3(i8 %dummy, i8 *%src, i8 %cmp, i8 %swap) {
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], [[SHIFT]]
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r5, -8([[NEGSHIFT]])
-  %pair = cmpxchg i8 *%src, i8 %cmp, i8 %swap seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i8 %cmp, i8 %swap seq_cst seq_cst
   %val = extractvalue { i8, i1 } %pair, 1
   %res = zext i1 %val to i32
   ret i32 %res
@@ -120,8 +120,8 @@ declare void @g()
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], %r2
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r4, -8([[NEGSHIFT]])
-define void @f4(i8 *%src, i8 %cmp, i8 %swap) {
-  %pair = cmpxchg i8 *%src, i8 %cmp, i8 %swap seq_cst seq_cst
+define void @f4(ptr %src, i8 %cmp, i8 %swap) {
+  %pair = cmpxchg ptr %src, i8 %cmp, i8 %swap seq_cst seq_cst
   %cond = extractvalue { i8, i1 } %pair, 1
   br i1 %cond, label %call, label %exit
 
@@ -159,8 +159,8 @@ exit:
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], %r2
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r4, -8([[NEGSHIFT]])
-define void @f5(i8 *%src, i8 %cmp, i8 %swap) {
-  %pair = cmpxchg i8 *%src, i8 %cmp, i8 %swap seq_cst seq_cst
+define void @f5(ptr %src, i8 %cmp, i8 %swap) {
+  %pair = cmpxchg ptr %src, i8 %cmp, i8 %swap seq_cst seq_cst
   %cond = extractvalue { i8, i1 } %pair, 1
   br i1 %cond, label %exit, label %call
 

diff  --git a/llvm/test/CodeGen/SystemZ/cmpxchg-02.ll b/llvm/test/CodeGen/SystemZ/cmpxchg-02.ll
index f1522a235d7b0..706386854dd13 100644
--- a/llvm/test/CodeGen/SystemZ/cmpxchg-02.ll
+++ b/llvm/test/CodeGen/SystemZ/cmpxchg-02.ll
@@ -10,7 +10,7 @@
 ;   tested in CHECK.  CHECK-SHIFT also checks that %r3 is not modified before
 ;   being used in the RISBG (in contrast to things like atomic addition,
 ;   which shift %r3 left so that %b is at the high end of the word).
-define i16 @f1(i16 %dummy, i16 *%src, i16 %cmp, i16 %swap) {
+define i16 @f1(i16 %dummy, ptr %src, i16 %cmp, i16 %swap) {
 ; CHECK-MAIN-LABEL: f1:
 ; CHECK-MAIN: risbg [[RISBG:%r[1-9]+]], %r3, 0, 189, 0{{$}}
 ; CHECK-MAIN-DAG: sll %r3, 3
@@ -33,14 +33,14 @@ define i16 @f1(i16 %dummy, i16 *%src, i16 %cmp, i16 %swap) {
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], %r3
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r5, -16([[NEGSHIFT]])
-  %pair = cmpxchg i16 *%src, i16 %cmp, i16 %swap seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i16 %cmp, i16 %swap seq_cst seq_cst
   %res = extractvalue { i16, i1 } %pair, 0
   ret i16 %res
 }
 
 ; Check compare and swap with constants.  We should force the constants into
 ; registers and use the sequence above.
-define i16 @f2(i16 *%src) {
+define i16 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[CMP:%r[0-9]+]], 42
 ; CHECK: risbg [[CMP]], {{%r[0-9]+}}, 32, 47, 0
@@ -51,13 +51,13 @@ define i16 @f2(i16 *%src) {
 ; CHECK-SHIFT: lhi [[SWAP:%r[0-9]+]], 88
 ; CHECK-SHIFT: risbg [[SWAP]], {{%r[0-9]+}}, 32, 47, 0
 ; CHECK-SHIFT: br %r14
-  %pair = cmpxchg i16 *%src, i16 42, i16 88 seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i16 42, i16 88 seq_cst seq_cst
   %res = extractvalue { i16, i1 } %pair, 0
   ret i16 %res
 }
 
 ; Check generating the comparison result.
-define i32 @f3(i16 %dummy, i16 *%src, i16 %cmp, i16 %swap) {
+define i32 @f3(i16 %dummy, ptr %src, i16 %cmp, i16 %swap) {
 ; CHECK-MAIN-LABEL: f3:
 ; CHECK-MAIN: risbg [[RISBG:%r[1-9]+]], %r3, 0, 189, 0{{$}}
 ; CHECK-MAIN-DAG: sll %r3, 3
@@ -84,7 +84,7 @@ define i32 @f3(i16 %dummy, i16 *%src, i16 %cmp, i16 %swap) {
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], %r3
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r5, -16([[NEGSHIFT]])
-  %pair = cmpxchg i16 *%src, i16 %cmp, i16 %swap seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i16 %cmp, i16 %swap seq_cst seq_cst
   %val = extractvalue { i16, i1 } %pair, 1
   %res = zext i1 %val to i32
   ret i32 %res
@@ -119,8 +119,8 @@ declare void @g()
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], %r2
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r4, -16([[NEGSHIFT]])
-define void @f4(i16 *%src, i16 %cmp, i16 %swap) {
-  %pair = cmpxchg i16 *%src, i16 %cmp, i16 %swap seq_cst seq_cst
+define void @f4(ptr %src, i16 %cmp, i16 %swap) {
+  %pair = cmpxchg ptr %src, i16 %cmp, i16 %swap seq_cst seq_cst
   %cond = extractvalue { i16, i1 } %pair, 1
   br i1 %cond, label %call, label %exit
 
@@ -158,8 +158,8 @@ exit:
 ; CHECK-SHIFT: lcr [[NEGSHIFT:%r[1-9]+]], %r2
 ; CHECK-SHIFT: rll
 ; CHECK-SHIFT: rll {{%r[0-9]+}}, %r4, -16([[NEGSHIFT]])
-define void @f5(i16 *%src, i16 %cmp, i16 %swap) {
-  %pair = cmpxchg i16 *%src, i16 %cmp, i16 %swap seq_cst seq_cst
+define void @f5(ptr %src, i16 %cmp, i16 %swap) {
+  %pair = cmpxchg ptr %src, i16 %cmp, i16 %swap seq_cst seq_cst
   %cond = extractvalue { i16, i1 } %pair, 1
   br i1 %cond, label %exit, label %call
 

diff  --git a/llvm/test/CodeGen/SystemZ/cmpxchg-03.ll b/llvm/test/CodeGen/SystemZ/cmpxchg-03.ll
index 153e4400acccc..305c6df9ee9e0 100644
--- a/llvm/test/CodeGen/SystemZ/cmpxchg-03.ll
+++ b/llvm/test/CodeGen/SystemZ/cmpxchg-03.ll
@@ -3,92 +3,92 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the CS range.
-define i32 @f1(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f1(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %pair = cmpxchg i32 *%src, i32 %cmp, i32 %swap seq_cst seq_cst
+  %pair = cmpxchg ptr %src, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the high end of the aligned CS range.
-define i32 @f2(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f2(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: cs %r2, %r3, 4092(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the next word up, which should use CSY instead of CS.
-define i32 @f3(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f3(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: csy %r2, %r3, 4096(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the high end of the aligned CSY range.
-define i32 @f4(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f4(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: csy %r2, %r3, 524284(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f5(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f5(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r4, 524288
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the high end of the negative aligned CSY range.
-define i32 @f6(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f6(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: csy %r2, %r3, -4(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the low end of the CSY range.
-define i32 @f7(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f7(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: csy %r2, %r3, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i32 %cmp, i32 %swap, i32 *%src) {
+define i32 @f8(i32 %cmp, i32 %swap, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, -524292
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
@@ -100,8 +100,8 @@ define i32 @f9(i32 %cmp, i32 %swap, i64 %src, i64 %index) {
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
-  %ptr = inttoptr i64 %add1 to i32 *
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = inttoptr i64 %add1 to ptr
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
@@ -114,30 +114,30 @@ define i32 @f10(i32 %cmp, i32 %swap, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 %swap seq_cst seq_cst
+  %ptr = inttoptr i64 %add2 to ptr
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check that a constant %cmp value is loaded into a register first.
-define i32 @f11(i32 %dummy, i32 %swap, i32 *%ptr) {
+define i32 @f11(i32 %dummy, i32 %swap, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: lhi %r2, 1001
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %pair = cmpxchg i32 *%ptr, i32 1001, i32 %swap seq_cst seq_cst
+  %pair = cmpxchg ptr %ptr, i32 1001, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
 
 ; Check that a constant %swap value is loaded into a register first.
-define i32 @f12(i32 %cmp, i32 *%ptr) {
+define i32 @f12(i32 %cmp, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: lhi [[SWAP:%r[0-9]+]], 1002
 ; CHECK: cs %r2, [[SWAP]], 0(%r3)
 ; CHECK: br %r14
-  %pair = cmpxchg i32 *%ptr, i32 %cmp, i32 1002 seq_cst seq_cst
+  %pair = cmpxchg ptr %ptr, i32 %cmp, i32 1002 seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pair, 0
   ret i32 %val
 }
@@ -149,8 +149,8 @@ define i32 @f12(i32 %cmp, i32 *%ptr) {
 ; CHECK-NEXT: afi %r2, -268435456
 ; CHECK-NEXT: srl %r2, 31
 ; CHECK: br %r14
-define i32 @f13(i32 %cmp, i32 %swap, i32 *%src) {
-  %pairval = cmpxchg i32 *%src, i32 %cmp, i32 %swap seq_cst seq_cst
+define i32 @f13(i32 %cmp, i32 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i32 %cmp, i32 %swap seq_cst seq_cst
   %val = extractvalue { i32, i1 } %pairval, 1
   %res = zext i1 %val to i32
   ret i32 %res
@@ -163,8 +163,8 @@ declare void @g()
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK-NEXT: jge g
 ; CHECK: br %r14
-define void @f14(i32 %cmp, i32 %swap, i32 *%src) {
-  %pairval = cmpxchg i32 *%src, i32 %cmp, i32 %swap seq_cst seq_cst
+define void @f14(i32 %cmp, i32 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i32 %cmp, i32 %swap seq_cst seq_cst
   %cond = extractvalue { i32, i1 } %pairval, 1
   br i1 %cond, label %call, label %exit
 
@@ -181,8 +181,8 @@ exit:
 ; CHECK: cs %r2, %r3, 0(%r4)
 ; CHECK-NEXT: jgl g
 ; CHECK: br %r14
-define void @f15(i32 %cmp, i32 %swap, i32 *%src) {
-  %pairval = cmpxchg i32 *%src, i32 %cmp, i32 %swap seq_cst seq_cst
+define void @f15(i32 %cmp, i32 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i32 %cmp, i32 %swap seq_cst seq_cst
   %cond = extractvalue { i32, i1 } %pairval, 1
   br i1 %cond, label %exit, label %call
 

diff  --git a/llvm/test/CodeGen/SystemZ/cmpxchg-04.ll b/llvm/test/CodeGen/SystemZ/cmpxchg-04.ll
index 442a7ed0ae60c..9515a386c07a2 100644
--- a/llvm/test/CodeGen/SystemZ/cmpxchg-04.ll
+++ b/llvm/test/CodeGen/SystemZ/cmpxchg-04.ll
@@ -3,70 +3,70 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check CSG without a displacement.
-define i64 @f1(i64 %cmp, i64 %swap, i64 *%src) {
+define i64 @f1(i64 %cmp, i64 %swap, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %pairval = cmpxchg i64 *%src, i64 %cmp, i64 %swap seq_cst seq_cst
+  %pairval = cmpxchg ptr %src, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check the high end of the aligned CSG range.
-define i64 @f2(i64 %cmp, i64 %swap, i64 *%src) {
+define i64 @f2(i64 %cmp, i64 %swap, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: csg %r2, %r3, 524280(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 %swap seq_cst seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i64 %cmp, i64 %swap, i64 *%src) {
+define i64 @f3(i64 %cmp, i64 %swap, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r4, 524288
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 %swap seq_cst seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check the high end of the negative aligned CSG range.
-define i64 @f4(i64 %cmp, i64 %swap, i64 *%src) {
+define i64 @f4(i64 %cmp, i64 %swap, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: csg %r2, %r3, -8(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 %swap seq_cst seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check the low end of the CSG range.
-define i64 @f5(i64 %cmp, i64 %swap, i64 *%src) {
+define i64 @f5(i64 %cmp, i64 %swap, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: csg %r2, %r3, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 %swap seq_cst seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 %cmp, i64 %swap, i64 *%src) {
+define i64 @f6(i64 %cmp, i64 %swap, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, -524296
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 %swap seq_cst seq_cst
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
@@ -78,30 +78,30 @@ define i64 @f7(i64 %cmp, i64 %swap, i64 %src, i64 %index) {
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
-  %ptr = inttoptr i64 %add1 to i64 *
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 %swap seq_cst seq_cst
+  %ptr = inttoptr i64 %add1 to ptr
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check that a constant %cmp value is loaded into a register first.
-define i64 @f8(i64 %dummy, i64 %swap, i64 *%ptr) {
+define i64 @f8(i64 %dummy, i64 %swap, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: lghi %r2, 1001
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK: br %r14
-  %pairval = cmpxchg i64 *%ptr, i64 1001, i64 %swap seq_cst seq_cst
+  %pairval = cmpxchg ptr %ptr, i64 1001, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
 
 ; Check that a constant %swap value is loaded into a register first.
-define i64 @f9(i64 %cmp, i64 *%ptr) {
+define i64 @f9(i64 %cmp, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: lghi [[SWAP:%r[0-9]+]], 1002
 ; CHECK: csg %r2, [[SWAP]], 0(%r3)
 ; CHECK: br %r14
-  %pairval = cmpxchg i64 *%ptr, i64 %cmp, i64 1002 seq_cst seq_cst
+  %pairval = cmpxchg ptr %ptr, i64 %cmp, i64 1002 seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 0
   ret i64 %val
 }
@@ -113,8 +113,8 @@ define i64 @f9(i64 %cmp, i64 *%ptr) {
 ; CHECK-NEXT: afi %r2, -268435456
 ; CHECK-NEXT: srl %r2, 31
 ; CHECK: br %r14
-define i32 @f10(i64 %cmp, i64 %swap, i64 *%src) {
-  %pairval = cmpxchg i64 *%src, i64 %cmp, i64 %swap seq_cst seq_cst
+define i32 @f10(i64 %cmp, i64 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i64 %cmp, i64 %swap seq_cst seq_cst
   %val = extractvalue { i64, i1 } %pairval, 1
   %res = zext i1 %val to i32
   ret i32 %res
@@ -127,8 +127,8 @@ declare void @g()
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK-NEXT: jge g
 ; CHECK: br %r14
-define void @f11(i64 %cmp, i64 %swap, i64 *%src) {
-  %pairval = cmpxchg i64 *%src, i64 %cmp, i64 %swap seq_cst seq_cst
+define void @f11(i64 %cmp, i64 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i64 %cmp, i64 %swap seq_cst seq_cst
   %cond = extractvalue { i64, i1 } %pairval, 1
   br i1 %cond, label %call, label %exit
 
@@ -145,8 +145,8 @@ exit:
 ; CHECK: csg %r2, %r3, 0(%r4)
 ; CHECK-NEXT: jgl g
 ; CHECK: br %r14
-define void @f12(i64 %cmp, i64 %swap, i64 *%src) {
-  %pairval = cmpxchg i64 *%src, i64 %cmp, i64 %swap seq_cst seq_cst
+define void @f12(i64 %cmp, i64 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i64 %cmp, i64 %swap seq_cst seq_cst
   %cond = extractvalue { i64, i1 } %pairval, 1
   br i1 %cond, label %exit, label %call
 

diff  --git a/llvm/test/CodeGen/SystemZ/cmpxchg-05.ll b/llvm/test/CodeGen/SystemZ/cmpxchg-05.ll
index 9a6d6c9d84854..e9bf119d61590 100644
--- a/llvm/test/CodeGen/SystemZ/cmpxchg-05.ll
+++ b/llvm/test/CodeGen/SystemZ/cmpxchg-05.ll
@@ -9,8 +9,8 @@
 ; CHECK: llgfr %r2, [[RES:%r[0-9]+]]
 ; CHECK-NOT: llcr
 ; CHECK-NOT: cr
-define zeroext i8 @f1(i8* nocapture, i8 zeroext, i8 zeroext) {
-  %cx = cmpxchg i8* %0, i8 %1, i8 %2 seq_cst seq_cst
+define zeroext i8 @f1(ptr nocapture, i8 zeroext, i8 zeroext) {
+  %cx = cmpxchg ptr %0, i8 %1, i8 %2 seq_cst seq_cst
   %res = extractvalue { i8, i1 } %cx, 0
   ret i8 %res
 }
@@ -22,8 +22,8 @@ define zeroext i8 @f1(i8* nocapture, i8 zeroext, i8 zeroext) {
 ; CHECK: llgfr %r2, [[RES:%r[0-9]+]]
 ; CHECK-NOT: llhr
 ; CHECK-NOT: cr
-define zeroext i16 @f2(i16* nocapture, i16 zeroext, i16 zeroext) {
-  %cx = cmpxchg i16* %0, i16 %1, i16 %2 seq_cst seq_cst
+define zeroext i16 @f2(ptr nocapture, i16 zeroext, i16 zeroext) {
+  %cx = cmpxchg ptr %0, i16 %1, i16 %2 seq_cst seq_cst
   %res = extractvalue { i16, i1 } %cx, 0
   ret i16 %res
 }
@@ -35,8 +35,8 @@ define zeroext i16 @f2(i16* nocapture, i16 zeroext, i16 zeroext) {
 ; CHECK: lgbr %r2, [[RES:%r[0-9]+]]
 ; CHECK-NOT: llcr
 ; CHECK-NOT: cr
-define signext i8 @f3(i8* nocapture, i8 signext, i8 signext) {
-  %cx = cmpxchg i8* %0, i8 %1, i8 %2 seq_cst seq_cst
+define signext i8 @f3(ptr nocapture, i8 signext, i8 signext) {
+  %cx = cmpxchg ptr %0, i8 %1, i8 %2 seq_cst seq_cst
   %res = extractvalue { i8, i1 } %cx, 0
   ret i8 %res
 }
@@ -48,8 +48,8 @@ define signext i8 @f3(i8* nocapture, i8 signext, i8 signext) {
 ; CHECK: lghr %r2, [[RES:%r[0-9]+]]
 ; CHECK-NOT: llhr
 ; CHECK-NOT: cr
-define signext i16 @f4(i16* nocapture, i16 signext, i16 signext) {
-  %cx = cmpxchg i16* %0, i16 %1, i16 %2 seq_cst seq_cst
+define signext i16 @f4(ptr nocapture, i16 signext, i16 signext) {
+  %cx = cmpxchg ptr %0, i16 %1, i16 %2 seq_cst seq_cst
   %res = extractvalue { i16, i1 } %cx, 0
   ret i16 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cmpxchg-06.ll b/llvm/test/CodeGen/SystemZ/cmpxchg-06.ll
index b3168e2a6b08e..8f8ed0a40085f 100644
--- a/llvm/test/CodeGen/SystemZ/cmpxchg-06.ll
+++ b/llvm/test/CodeGen/SystemZ/cmpxchg-06.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check CDSG without a displacement.
-define i128 @f1(i128 %cmp, i128 %swap, i128 *%src) {
+define i128 @f1(i128 %cmp, i128 %swap, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lg %r1, 8(%r4)
 ; CHECK-DAG: lg %r0, 0(%r4)
@@ -13,66 +13,66 @@ define i128 @f1(i128 %cmp, i128 %swap, i128 *%src) {
 ; CHECK-DAG: stg %r13, 8(%r2)
 ; CHECK-DAG: stg %r12, 0(%r2)
 ; CHECK:     br %r14
-  %pairval = cmpxchg i128 *%src, i128 %cmp, i128 %swap seq_cst seq_cst
+  %pairval = cmpxchg ptr %src, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check the high end of the aligned CDSG range.
-define i128 @f2(i128 %cmp, i128 %swap, i128 *%src) {
+define i128 @f2(i128 %cmp, i128 %swap, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, 524272(%r5)
 ; CHECK: br %r14
-  %ptr = getelementptr i128, i128 *%src, i128 32767
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 %swap seq_cst seq_cst
+  %ptr = getelementptr i128, ptr %src, i128 32767
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i128 @f3(i128 %cmp, i128 %swap, i128 *%src) {
+define i128 @f3(i128 %cmp, i128 %swap, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r5, 524288
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, 0(%r5)
 ; CHECK: br %r14
-  %ptr = getelementptr i128, i128 *%src, i128 32768
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 %swap seq_cst seq_cst
+  %ptr = getelementptr i128, ptr %src, i128 32768
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check the high end of the negative aligned CDSG range.
-define i128 @f4(i128 %cmp, i128 %swap, i128 *%src) {
+define i128 @f4(i128 %cmp, i128 %swap, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, -16(%r5)
 ; CHECK: br %r14
-  %ptr = getelementptr i128, i128 *%src, i128 -1
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 %swap seq_cst seq_cst
+  %ptr = getelementptr i128, ptr %src, i128 -1
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check the low end of the CDSG range.
-define i128 @f5(i128 %cmp, i128 %swap, i128 *%src) {
+define i128 @f5(i128 %cmp, i128 %swap, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, -524288(%r5)
 ; CHECK: br %r14
-  %ptr = getelementptr i128, i128 *%src, i128 -32768
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 %swap seq_cst seq_cst
+  %ptr = getelementptr i128, ptr %src, i128 -32768
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i128 @f6(i128 %cmp, i128 %swap, i128 *%src) {
+define i128 @f6(i128 %cmp, i128 %swap, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r5, -524304
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, 0(%r5)
 ; CHECK: br %r14
-  %ptr = getelementptr i128, i128 *%src, i128 -32769
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 %swap seq_cst seq_cst
+  %ptr = getelementptr i128, ptr %src, i128 -32769
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
@@ -84,30 +84,30 @@ define i128 @f7(i128 %cmp, i128 %swap, i64 %src, i64 %index) {
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, 0(%r5)
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
-  %ptr = inttoptr i64 %add1 to i128 *
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 %swap seq_cst seq_cst
+  %ptr = inttoptr i64 %add1 to ptr
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check that a constant %cmp value is loaded into a register first.
-define i128 @f8(i128 %swap, i128 *%ptr) {
+define i128 @f8(i128 %swap, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: lghi {{%r[0-9]+}}, 1001
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, 0(%r4)
 ; CHECK: br %r14
-  %pairval = cmpxchg i128 *%ptr, i128 1001, i128 %swap seq_cst seq_cst
+  %pairval = cmpxchg ptr %ptr, i128 1001, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
 
 ; Check that a constant %swap value is loaded into a register first.
-define i128 @f9(i128 %cmp, i128 *%ptr) {
+define i128 @f9(i128 %cmp, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: lghi {{%r[0-9]+}}, 1002
 ; CHECK: cdsg {{%r[0-9]+}}, {{%r[0-9]+}}, 0(%r4)
 ; CHECK: br %r14
-  %pairval = cmpxchg i128 *%ptr, i128 %cmp, i128 1002 seq_cst seq_cst
+  %pairval = cmpxchg ptr %ptr, i128 %cmp, i128 1002 seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 0
   ret i128 %val
 }
@@ -123,8 +123,8 @@ define i128 @f9(i128 %cmp, i128 *%ptr) {
 ; CHECK-NEXT: afi %r2, -268435456
 ; CHECK-NEXT: srl %r2, 31
 ; CHECK: br %r14
-define i32 @f10(i128 %cmp, i128 %swap, i128 *%src) {
-  %pairval = cmpxchg i128 *%src, i128 %cmp, i128 %swap seq_cst seq_cst
+define i32 @f10(i128 %cmp, i128 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i128 %cmp, i128 %swap seq_cst seq_cst
   %val = extractvalue { i128, i1 } %pairval, 1
   %res = zext i1 %val to i32
   ret i32 %res
@@ -143,8 +143,8 @@ declare void @g()
 ; CHECK: jg g
 ; CHECK: [[LABEL]]:
 ; CHECK: br %r14
-define void @f11(i128 %cmp, i128 %swap, i128 *%src) {
-  %pairval = cmpxchg i128 *%src, i128 %cmp, i128 %swap seq_cst seq_cst
+define void @f11(i128 %cmp, i128 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i128 %cmp, i128 %swap seq_cst seq_cst
   %cond = extractvalue { i128, i1 } %pairval, 1
   br i1 %cond, label %call, label %exit
 
@@ -167,8 +167,8 @@ exit:
 ; CHECK: br %r14
 ; CHECK: [[LABEL]]:
 ; CHECK: jg g
-define void @f12(i128 %cmp, i128 %swap, i128 *%src) {
-  %pairval = cmpxchg i128 *%src, i128 %cmp, i128 %swap seq_cst seq_cst
+define void @f12(i128 %cmp, i128 %swap, ptr %src) {
+  %pairval = cmpxchg ptr %src, i128 %cmp, i128 %swap seq_cst seq_cst
   %cond = extractvalue { i128, i1 } %pairval, 1
   br i1 %cond, label %exit, label %call
 

diff  --git a/llvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll b/llvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll
index 54108e06df4c3..7549a5fb0dba5 100644
--- a/llvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll
+++ b/llvm/test/CodeGen/SystemZ/codegenprepare-gepoffs-split.ll
@@ -3,7 +3,7 @@
 ;
 ; Test that the big offsets are handled by only one AGFI.
 
-define void @fun(i64* %Src, i64* %Dst) {
+define void @fun(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    agfi %r2, 1048576
@@ -12,13 +12,13 @@ define void @fun(i64* %Src, i64* %Dst) {
 ; CHECK-NEXT:    lg %r0, 8(%r2)
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
-  %S0 = getelementptr i64, i64* %Src, i64 131072
-  %V0 = load i64, i64* %S0
-  store volatile i64 %V0, i64* %Dst
+  %S0 = getelementptr i64, ptr %Src, i64 131072
+  %V0 = load i64, ptr %S0
+  store volatile i64 %V0, ptr %Dst
 
-  %S1 = getelementptr i64, i64* %Src, i64 131073
-  %V1 = load i64, i64* %S1
-  store volatile i64 %V1, i64* %Dst
+  %S1 = getelementptr i64, ptr %Src, i64 131073
+  %V1 = load i64, ptr %S1
+  store volatile i64 %V1, ptr %Dst
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll b/llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
index 8c5128aee9f6c..5f4b1dbf1bc10 100644
--- a/llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
+++ b/llvm/test/CodeGen/SystemZ/codegenprepare-sink-and-for-tm.ll
@@ -29,12 +29,12 @@ entry:
 
 bb1:
   %i9 = zext i1 %i4 to i32
-  store i32 %i9, i32* undef
+  store i32 %i9, ptr undef
   br label %bb3
 
 bb2:
   %i13 = select i1 %i4, i32 4, i32 16
-  store i32 %i13, i32* undef
+  store i32 %i13, ptr undef
   br label %bb3
 
 bb3:

diff  --git a/llvm/test/CodeGen/SystemZ/codegenprepare-splitstore.ll b/llvm/test/CodeGen/SystemZ/codegenprepare-splitstore.ll
index 73b273254bfde..0b7cf9888f562 100644
--- a/llvm/test/CodeGen/SystemZ/codegenprepare-splitstore.ll
+++ b/llvm/test/CodeGen/SystemZ/codegenprepare-splitstore.ll
@@ -2,9 +2,9 @@
 ;
 ; RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 -stop-after codegenprepare -force-split-store < %s  | FileCheck %s
 
-define void @fun(i16* %Src, i16* %Dst) {
+define void @fun(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: @fun(
-; CHECK:      %1 = load i16, i16* %Src
+; CHECK:      %1 = load i16, ptr %Src
 ; CHECK-NEXT: %2 = trunc i16 %1 to i8
 ; CHECK-NEXT: %3 = lshr i16 %1, 8
 ; CHECK-NEXT: %4 = trunc i16 %3 to i8
@@ -12,12 +12,10 @@ define void @fun(i16* %Src, i16* %Dst) {
 ; CHECK-NEXT: %6 = zext i8 %4 to i16
 ; CHECK-NEXT: %7 = shl nuw i16 %6, 8
 ; CHECK-NEXT: %8 = or i16 %7, %5
-; CHECK-NEXT: %9 = bitcast i16* %Dst to i8*
-; CHECK-NEXT: %10 = getelementptr i8, i8* %9, i32 1
-; CHECK-NEXT: store i8 %2, i8* %10
-; CHECK-NEXT: %11 = bitcast i16* %Dst to i8*
-; CHECK-NEXT: store i8 %4, i8* %11
-  %1 = load i16, i16* %Src
+; CHECK-NEXT: %9 = getelementptr i8, ptr %Dst, i32 1
+; CHECK-NEXT: store i8 %2, ptr %9
+; CHECK-NEXT: store i8 %4, ptr %Dst
+  %1 = load i16, ptr %Src
   %2 = trunc i16 %1 to i8
   %3 = lshr i16 %1, 8
   %4 = trunc i16 %3 to i8
@@ -25,6 +23,6 @@ define void @fun(i16* %Src, i16* %Dst) {
   %6 = zext i8 %4 to i16
   %7 = shl nuw i16 %6, 8
   %8 = or i16 %7, %5
-  store i16 %8, i16* %Dst
+  store i16 %8, ptr %Dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/combine_loads_from_build_pair.ll b/llvm/test/CodeGen/SystemZ/combine_loads_from_build_pair.ll
index 4258848ac4270..240c008d43cfe 100644
--- a/llvm/test/CodeGen/SystemZ/combine_loads_from_build_pair.ll
+++ b/llvm/test/CodeGen/SystemZ/combine_loads_from_build_pair.ll
@@ -1,7 +1,7 @@
 ; RUN: llc -verify-machineinstrs  -mtriple=s390x-linux-gnu < %s -debug -stop-after=machineverifier 2>&1 | FileCheck %s
 
 ; REQUIRES: asserts
-define i128 @func1({ i128, i8* } %struct) {
+define i128 @func1({ i128, ptr } %struct) {
 ; Verify that we get a combine on the build_pair, creating a LD8 load somewhere
 ; between "Initial selection DAG" and "Optimized lowered selection DAG".
 ; The target is big-endian, and stack grows towards higher addresses,
@@ -16,7 +16,7 @@ define i128 @func1({ i128, i8* } %struct) {
 ; CHECK-NEXT: into
 ; CHECK-SAME: load<(load (s128), align 8)>
 ; CHECK-LABEL: Optimized lowered selection DAG:
-  %result = extractvalue {i128, i8* } %struct, 0
+  %result = extractvalue {i128, ptr } %struct, 0
   ret i128 %result
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/cond-load-01.ll b/llvm/test/CodeGen/SystemZ/cond-load-01.ll
index 9fb5894034e91..fa1e5e2275b2a 100644
--- a/llvm/test/CodeGen/SystemZ/cond-load-01.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-load-01.ll
@@ -6,82 +6,82 @@
 ; in the presence of the load-store-on-condition-2 facility.
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
-declare i32 @foo(i32 *)
+declare i32 @foo(ptr)
 
 ; Test the simple case.
-define i32 @f1(i32 %easy, i32 *%ptr, i32 %limit) {
+define i32 @f1(i32 %easy, ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK: clfi %r4, 42
 ; CHECK: loche %r2, 0(%r3)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
 
 ; ...and again with the operands swapped.
-define i32 @f2(i32 %easy, i32 *%ptr, i32 %limit) {
+define i32 @f2(i32 %easy, ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK: clfi %r4, 42
 ; CHECK: locl %r2, 0(%r3)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %other, i32 %easy
   ret i32 %res
 }
 
 ; Check the high end of the aligned LOC range.
-define i32 @f3(i32 %easy, i32 *%base, i32 %limit) {
+define i32 @f3(i32 %easy, ptr %base, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK: clfi %r4, 42
 ; CHECK: loche %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
+  %ptr = getelementptr i32, ptr %base, i64 131071
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
 
 ; Check the next word up.  Other sequences besides this one would be OK.
-define i32 @f4(i32 %easy, i32 *%base, i32 %limit) {
+define i32 @f4(i32 %easy, ptr %base, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: clfi %r4, 42
 ; CHECK: loche %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
+  %ptr = getelementptr i32, ptr %base, i64 131072
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
 
 ; Check the low end of the LOC range.
-define i32 @f5(i32 %easy, i32 *%base, i32 %limit) {
+define i32 @f5(i32 %easy, ptr %base, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK: clfi %r4, 42
 ; CHECK: loche %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
+  %ptr = getelementptr i32, ptr %base, i64 -131072
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
 
 ; Check the next word down, with the same comments as f4.
-define i32 @f6(i32 %easy, i32 *%base, i32 %limit) {
+define i32 @f6(i32 %easy, ptr %base, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524292
 ; CHECK: clfi %r4, 42
 ; CHECK: loche %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
+  %ptr = getelementptr i32, ptr %base, i64 -131073
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
@@ -93,9 +93,9 @@ define i32 @f7(i32 %alt, i32 %limit) {
 ; CHECK: loche %r2, {{[0-9]+}}(%r15)
 ; CHECK: br %r14
   %ptr = alloca i32
-  %easy = call i32 @foo(i32 *%ptr)
+  %easy = call i32 @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
@@ -107,16 +107,16 @@ define i32 @f8(i32 %easy, i32 %limit, i64 %base, i64 %index) {
 ; CHECK: loche %r2, 0({{%r[1-5]}})
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
+  %ptr = inttoptr i64 %add to ptr
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }
 
 ; Test that conditionally-executed loads do not use LOC, since it is allowed
 ; to trap even when the condition is false.
-define i32 @f9(i32 %easy, i32 %limit, i32 *%ptr) {
+define i32 @f9(i32 %easy, i32 %limit, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: loc
 ; CHECK: br %r14
@@ -125,7 +125,7 @@ entry:
   br i1 %cmp, label %load, label %exit
 
 load:
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   br label %exit
 
 exit:
@@ -135,13 +135,13 @@ exit:
 
 ; Test that volatile loads do not use LOC, since if the condition is false,
 ; it is unspecified whether or not the load happens.  LOCR is fine though.
-define i32 @f10(i32 %easy, i32 *%ptr, i32 %limit) {
+define i32 @f10(i32 %easy, ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK: l {{%r[0-9]*}}, 0(%r3)
 ; CHECK: locr
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %other = load volatile i32, i32 *%ptr
+  %other = load volatile i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-load-02.ll b/llvm/test/CodeGen/SystemZ/cond-load-02.ll
index ac1c44ccaeb9d..e4162ca767bb0 100644
--- a/llvm/test/CodeGen/SystemZ/cond-load-02.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-load-02.ll
@@ -2,82 +2,82 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
-declare i64 @foo(i64 *)
+declare i64 @foo(ptr)
 
 ; Test the simple case.
-define i64 @f1(i64 %easy, i64 *%ptr, i64 %limit) {
+define i64 @f1(i64 %easy, ptr %ptr, i64 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK: clgfi %r4, 42
 ; CHECK: locghe %r2, 0(%r3)
 ; CHECK: br %r14
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
 
 ; ...and again with the operands swapped.
-define i64 @f2(i64 %easy, i64 *%ptr, i64 %limit) {
+define i64 @f2(i64 %easy, ptr %ptr, i64 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK: clgfi %r4, 42
 ; CHECK: locgl %r2, 0(%r3)
 ; CHECK: br %r14
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %other, i64 %easy
   ret i64 %res
 }
 
 ; Check the high end of the aligned LOCG range.
-define i64 @f3(i64 %easy, i64 *%base, i64 %limit) {
+define i64 @f3(i64 %easy, ptr %base, i64 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK: clgfi %r4, 42
 ; CHECK: locghe %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
+  %ptr = getelementptr i64, ptr %base, i64 65535
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
 
 ; Check the next doubleword up.  Other sequences besides this one would be OK.
-define i64 @f4(i64 %easy, i64 *%base, i64 %limit) {
+define i64 @f4(i64 %easy, ptr %base, i64 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: clgfi %r4, 42
 ; CHECK: locghe %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
+  %ptr = getelementptr i64, ptr %base, i64 65536
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
 
 ; Check the low end of the LOCG range.
-define i64 @f5(i64 %easy, i64 *%base, i64 %limit) {
+define i64 @f5(i64 %easy, ptr %base, i64 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK: clgfi %r4, 42
 ; CHECK: locghe %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
+  %ptr = getelementptr i64, ptr %base, i64 -65536
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
 
 ; Check the next doubleword down, with the same comments as f4.
-define i64 @f6(i64 %easy, i64 *%base, i64 %limit) {
+define i64 @f6(i64 %easy, ptr %base, i64 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524296
 ; CHECK: clgfi %r4, 42
 ; CHECK: locghe %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
+  %ptr = getelementptr i64, ptr %base, i64 -65537
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
@@ -89,9 +89,9 @@ define i64 @f7(i64 %alt, i64 %limit) {
 ; CHECK: locghe %r2, {{[0-9]+}}(%r15)
 ; CHECK: br %r14
   %ptr = alloca i64
-  %easy = call i64 @foo(i64 *%ptr)
+  %easy = call i64 @foo(ptr %ptr)
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
@@ -103,16 +103,16 @@ define i64 @f8(i64 %easy, i64 %limit, i64 %base, i64 %index) {
 ; CHECK: locghe %r2, 0({{%r[1-5]}})
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i64 *
+  %ptr = inttoptr i64 %add to ptr
   %cond = icmp ult i64 %limit, 42
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }
 
 ; Test that conditionally-executed loads do not use LOCG, since it is allowed
 ; to trap even when the condition is false.
-define i64 @f9(i64 %easy, i64 %limit, i64 *%ptr) {
+define i64 @f9(i64 %easy, i64 %limit, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: locg
 ; CHECK: br %r14
@@ -121,7 +121,7 @@ entry:
   br i1 %cmp, label %load, label %exit
 
 load:
-  %other = load i64, i64 *%ptr
+  %other = load i64, ptr %ptr
   br label %exit
 
 exit:
@@ -131,13 +131,13 @@ exit:
 
 ; Test that volatile loads do not use LOCG, since if the condition is false,
 ; it is unspecified whether or not the load happens.  LOCGR is fine though.
-define i64 @f10(i64 %easy, i64 *%ptr, i64 %limit) {
+define i64 @f10(i64 %easy, ptr %ptr, i64 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK: lg {{%r[0-9]*}}, 0(%r3)
 ; CHECK: locgr
 ; CHECK: br %r14
   %cond = icmp ult i64 %limit, 42
-  %other = load volatile i64, i64 *%ptr
+  %other = load volatile i64, ptr %ptr
   %res = select i1 %cond, i64 %easy, i64 %other
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-load-03.ll b/llvm/test/CodeGen/SystemZ/cond-load-03.ll
index f4406508d4002..f86b77cf9101c 100644
--- a/llvm/test/CodeGen/SystemZ/cond-load-03.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-load-03.ll
@@ -3,10 +3,10 @@
 ; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu -mcpu=z13 \
 ; RUN:   -no-integrated-as | FileCheck -allow-deprecated-dag-overlap %s
 
-declare void @foo(i32 *)
+declare void @foo(ptr)
 
 ; Test the simple case.
-define void @f1(i32 *%ptr, i32 %limit) {
+define void @f1(ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
@@ -14,14 +14,14 @@ define void @f1(i32 *%ptr, i32 %limit) {
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
 }
 
 ; ...and again with the operands swapped.
-define void @f2(i32 *%ptr, i32 %limit) {
+define void @f2(ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
@@ -29,30 +29,30 @@ define void @f2(i32 *%ptr, i32 %limit) {
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %other, i32 %easy
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
 }
 
 ; Check the high end of the aligned LOC range.
-define void @f3(i32 *%base, i32 %limit) {
+define void @f3(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
 ; CHECK: locfhhe [[REG]], 524284(%r2)
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 131071
+  %ptr = getelementptr i32, ptr %base, i64 131071
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
 }
 
 ; Check the next word up.  Other sequences besides this one would be OK.
-define void @f4(i32 *%base, i32 %limit) {
+define void @f4(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: agfi %r2, 524288
@@ -60,32 +60,32 @@ define void @f4(i32 *%base, i32 %limit) {
 ; CHECK: locfhhe [[REG]], 0(%r2)
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 131072
+  %ptr = getelementptr i32, ptr %base, i64 131072
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
 }
 
 ; Check the low end of the LOC range.
-define void @f5(i32 *%base, i32 %limit) {
+define void @f5(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
 ; CHECK: locfhhe [[REG]], -524288(%r2)
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
+  %ptr = getelementptr i32, ptr %base, i64 -131072
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
 }
 
 ; Check the next word down, with the same comments as f4.
-define void @f6(i32 *%base, i32 %limit) {
+define void @f6(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
@@ -94,9 +94,9 @@ define void @f6(i32 *%base, i32 %limit) {
 ; CHECK: locfhhe [[REG]], 0(%r2)
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
+  %ptr = getelementptr i32, ptr %base, i64 -131073
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
@@ -110,10 +110,10 @@ define void @f7(i32 %alt, i32 %limit) {
 ; CHECK: locfhhe [[REG]], {{[0-9]+}}(%r15)
 ; CHECK: br %r14
   %ptr = alloca i32
-  call void @foo(i32 *%ptr)
+  call void @foo(ptr %ptr)
   %easy = call i32 asm "stepa $0", "=h"()
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
@@ -128,9 +128,9 @@ define void @f8(i32 %limit, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %easy = call i32 asm "stepa $0", "=h"()
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
+  %ptr = inttoptr i64 %add to ptr
   %cond = icmp ult i32 %limit, 42
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   %res = select i1 %cond, i32 %easy, i32 %other
   call void asm sideeffect "stepb $0", "h"(i32 %res)
   ret void
@@ -138,7 +138,7 @@ define void @f8(i32 %limit, i64 %base, i64 %index) {
 
 ; Test that conditionally-executed loads do not use LOC, since it is allowed
 ; to trap even when the condition is false.
-define void @f9(i32 %limit, i32 *%ptr) {
+define void @f9(i32 %limit, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: loc
 ; CHECK: lfh
@@ -149,7 +149,7 @@ entry:
   br i1 %cmp, label %load, label %exit
 
 load:
-  %other = load i32, i32 *%ptr
+  %other = load i32, ptr %ptr
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/cond-move-10.ll b/llvm/test/CodeGen/SystemZ/cond-move-10.ll
index eef9365390b5c..4a73b756d37a8 100644
--- a/llvm/test/CodeGen/SystemZ/cond-move-10.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-move-10.ll
@@ -8,31 +8,31 @@ declare i64 @foo()
 declare i32 @foo32()
 
 ; Check that conditional loads of spilled values can use LOCG rather than LOCGR.
-define void @f0(i64 *%ptr0, i64 *%dstPtr) {
+define void @f0(ptr %ptr0, ptr %dstPtr) {
 ; CHECK-LABEL: f0:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: locglh {{.*}}           # 8-byte Folded Reload
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 
@@ -49,36 +49,36 @@ define void @f0(i64 *%ptr0, i64 *%dstPtr) {
   %cond = icmp eq i64 %add7, %add8
   %res = select i1 %cond, i64 %add8, i64 %val9
 
-  store i64 %res, i64* %dstPtr
+  store i64 %res, ptr %dstPtr
   ret void
 }
 
 ; Check that conditional loads of spilled values can use LOC rather than LOCR.
-define void @f1(i32 *%ptr0, i32 *%dstPtr) {
+define void @f1(ptr %ptr0, ptr %dstPtr) {
 ; CHECK-LABEL: f1:
 ; CHECK: brasl %r14, foo32 at PLT
 ; CHECK: loclh {{.*}}            # 4-byte Folded Reload
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i32 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i32 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i32 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i32 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i32 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i32 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i32 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i32 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i32 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i32 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i32 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i32 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i32 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i32 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i32 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i32 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i32 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i32 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo32()
 
@@ -95,6 +95,6 @@ define void @f1(i32 *%ptr0, i32 *%dstPtr) {
   %cond = icmp eq i32 %add7, %add8
   %res = select i1 %cond, i32 %add8, i32 %val9
 
-  store i32 %res, i32* %dstPtr
+  store i32 %res, ptr %dstPtr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-01.ll b/llvm/test/CodeGen/SystemZ/cond-store-01.ll
index d9091f412015b..c5a2a877a584c 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-01.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-01.ll
@@ -3,10 +3,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
-declare void @foo(i8 *)
+declare void @foo(ptr)
 
 ; Test the simple case, with the loaded value first.
-define void @f1(i8 *%ptr, i8 %alt, i32 %limit) {
+define void @f1(ptr %ptr, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -14,14 +14,14 @@ define void @f1(i8 *%ptr, i8 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i8 *%ptr, i8 %alt, i32 %limit) {
+define void @f2(ptr %ptr, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -29,15 +29,15 @@ define void @f2(i8 *%ptr, i8 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %alt, i8 %orig
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly sign-extended to 32 bits, with the
 ; loaded value first.
-define void @f3(i8 *%ptr, i32 %alt, i32 %limit) {
+define void @f3(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -45,16 +45,16 @@ define void @f3(i8 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = sext i8 %orig to i32
   %res = select i1 %cond, i32 %ext, i32 %alt
   %trunc = trunc i32 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f4(i8 *%ptr, i32 %alt, i32 %limit) {
+define void @f4(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -62,17 +62,17 @@ define void @f4(i8 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = sext i8 %orig to i32
   %res = select i1 %cond, i32 %alt, i32 %ext
   %trunc = trunc i32 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly zero-extended to 32 bits, with the
 ; loaded value first.
-define void @f5(i8 *%ptr, i32 %alt, i32 %limit) {
+define void @f5(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -80,16 +80,16 @@ define void @f5(i8 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = zext i8 %orig to i32
   %res = select i1 %cond, i32 %ext, i32 %alt
   %trunc = trunc i32 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f6(i8 *%ptr, i32 %alt, i32 %limit) {
+define void @f6(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -97,17 +97,17 @@ define void @f6(i8 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = zext i8 %orig to i32
   %res = select i1 %cond, i32 %alt, i32 %ext
   %trunc = trunc i32 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly sign-extended to 64 bits, with the
 ; loaded value first.
-define void @f7(i8 *%ptr, i64 %alt, i32 %limit) {
+define void @f7(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -115,16 +115,16 @@ define void @f7(i8 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = sext i8 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f8(i8 *%ptr, i64 %alt, i32 %limit) {
+define void @f8(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -132,17 +132,17 @@ define void @f8(i8 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = sext i8 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly zero-extended to 64 bits, with the
 ; loaded value first.
-define void @f9(i8 *%ptr, i64 %alt, i32 %limit) {
+define void @f9(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -150,16 +150,16 @@ define void @f9(i8 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = zext i8 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f10(i8 *%ptr, i64 %alt, i32 %limit) {
+define void @f10(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -167,65 +167,65 @@ define void @f10(i8 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %ext = zext i8 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Check the high end of the STC range.
-define void @f11(i8 *%base, i8 %alt, i32 %limit) {
+define void @f11(ptr %base, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stc %r3, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
+  %ptr = getelementptr i8, ptr %base, i64 4095
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which should use STCY instead of STC.
-define void @f12(i8 *%base, i8 %alt, i32 %limit) {
+define void @f12(ptr %base, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stcy %r3, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
+  %ptr = getelementptr i8, ptr %base, i64 4096
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the STCY range.
-define void @f13(i8 *%base, i8 %alt, i32 %limit) {
+define void @f13(ptr %base, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f13:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stcy %r3, 524287(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 524287
+  %ptr = getelementptr i8, ptr %base, i64 524287
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f14(i8 *%base, i8 %alt, i32 %limit) {
+define void @f14(ptr %base, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -233,33 +233,33 @@ define void @f14(i8 *%base, i8 %alt, i32 %limit) {
 ; CHECK: agfi %r2, 524288
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 524288
+  %ptr = getelementptr i8, ptr %base, i64 524288
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STCY range.
-define void @f15(i8 *%base, i8 %alt, i32 %limit) {
+define void @f15(ptr %base, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stcy %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 -524288
+  %ptr = getelementptr i8, ptr %base, i64 -524288
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f16(i8 *%base, i8 %alt, i32 %limit) {
+define void @f16(ptr %base, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f16:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -267,11 +267,11 @@ define void @f16(i8 *%base, i8 %alt, i32 %limit) {
 ; CHECK: agfi %r2, -524289
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 -524289
+  %ptr = getelementptr i8, ptr %base, i64 -524289
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
@@ -285,16 +285,16 @@ define void @f17(i64 %base, i64 %index, i8 %alt, i32 %limit) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
+  %ptr = inttoptr i64 %add2 to ptr
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; Check that volatile loads are not matched.
-define void @f18(i8 *%ptr, i8 %alt, i32 %limit) {
+define void @f18(ptr %ptr, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f18:
 ; CHECK: lb {{%r[0-5]}}, 0(%r2)
 ; CHECK: {{jl|jnl}} [[LABEL:[^ ]*]]
@@ -302,14 +302,14 @@ define void @f18(i8 *%ptr, i8 %alt, i32 %limit) {
 ; CHECK: stc {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load volatile i8, i8 *%ptr
+  %orig = load volatile i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.  In this case we should have a conditional load into %r3.
-define void @f19(i8 *%ptr, i8 %alt, i32 %limit) {
+define void @f19(ptr %ptr, i8 %alt, i32 %limit) {
 ; CHECK-LABEL: f19:
 ; CHECK: jhe [[LABEL:[^ ]*]]
 ; CHECK: lb %r3, 0(%r2)
@@ -317,9 +317,9 @@ define void @f19(i8 *%ptr, i8 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store volatile i8 %res, i8 *%ptr
+  store volatile i8 %res, ptr %ptr
   ret void
 }
 
@@ -327,7 +327,7 @@ define void @f19(i8 *%ptr, i8 %alt, i32 %limit) {
 ; the "unordered" case tested here, but since we don't try to handle atomic
 ; operations at all in this context, it seems better to assert that than
 ; to restrict the test to a stronger ordering.
-define void @f20(i8 *%ptr, i8 %alt, i32 %limit) {
+define void @f20(ptr %ptr, i8 %alt, i32 %limit) {
 ; FIXME: should use a normal load instead of CS.
 ; CHECK-LABEL: f20:
 ; CHECK: lb {{%r[0-9]+}}, 0(%r2)
@@ -336,14 +336,14 @@ define void @f20(i8 *%ptr, i8 %alt, i32 %limit) {
 ; CHECK: stc {{%r[0-9]+}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load atomic i8, i8 *%ptr unordered, align 1
+  %orig = load atomic i8, ptr %ptr unordered, align 1
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.
-define void @f21(i8 *%ptr, i8 %alt, i32 %limit) {
+define void @f21(ptr %ptr, i8 %alt, i32 %limit) {
 ; FIXME: should use a normal store instead of CS.
 ; CHECK-LABEL: f21:
 ; CHECK: jhe [[LABEL:[^ ]*]]
@@ -352,9 +352,9 @@ define void @f21(i8 *%ptr, i8 %alt, i32 %limit) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store atomic i8 %res, i8 *%ptr unordered, align 1
+  store atomic i8 %res, ptr %ptr unordered, align 1
   ret void
 }
 
@@ -370,11 +370,11 @@ define void @f22(i8 %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i8
-  call void @foo(i8 *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 420
-  %orig = load i8, i8 *%ptr
+  %orig = load i8, ptr %ptr
   %res = select i1 %cond, i8 %orig, i8 %alt
-  store i8 %res, i8 *%ptr
-  call void @foo(i8 *%ptr)
+  store i8 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-02.ll b/llvm/test/CodeGen/SystemZ/cond-store-02.ll
index 93cee235f846f..6e9d7877a4f47 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-02.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-02.ll
@@ -3,10 +3,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
-declare void @foo(i16 *)
+declare void @foo(ptr)
 
 ; Test the simple case, with the loaded value first.
-define void @f1(i16 *%ptr, i16 %alt, i32 %limit) {
+define void @f1(ptr %ptr, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -14,14 +14,14 @@ define void @f1(i16 *%ptr, i16 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i16 *%ptr, i16 %alt, i32 %limit) {
+define void @f2(ptr %ptr, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -29,15 +29,15 @@ define void @f2(i16 *%ptr, i16 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %alt, i16 %orig
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly sign-extended to 32 bits, with the
 ; loaded value first.
-define void @f3(i16 *%ptr, i32 %alt, i32 %limit) {
+define void @f3(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -45,16 +45,16 @@ define void @f3(i16 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = sext i16 %orig to i32
   %res = select i1 %cond, i32 %ext, i32 %alt
   %trunc = trunc i32 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f4(i16 *%ptr, i32 %alt, i32 %limit) {
+define void @f4(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -62,17 +62,17 @@ define void @f4(i16 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = sext i16 %orig to i32
   %res = select i1 %cond, i32 %alt, i32 %ext
   %trunc = trunc i32 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly zero-extended to 32 bits, with the
 ; loaded value first.
-define void @f5(i16 *%ptr, i32 %alt, i32 %limit) {
+define void @f5(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -80,16 +80,16 @@ define void @f5(i16 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = zext i16 %orig to i32
   %res = select i1 %cond, i32 %ext, i32 %alt
   %trunc = trunc i32 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f6(i16 *%ptr, i32 %alt, i32 %limit) {
+define void @f6(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -97,17 +97,17 @@ define void @f6(i16 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = zext i16 %orig to i32
   %res = select i1 %cond, i32 %alt, i32 %ext
   %trunc = trunc i32 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly sign-extended to 64 bits, with the
 ; loaded value first.
-define void @f7(i16 *%ptr, i64 %alt, i32 %limit) {
+define void @f7(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -115,16 +115,16 @@ define void @f7(i16 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = sext i16 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f8(i16 *%ptr, i64 %alt, i32 %limit) {
+define void @f8(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -132,17 +132,17 @@ define void @f8(i16 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = sext i16 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly zero-extended to 64 bits, with the
 ; loaded value first.
-define void @f9(i16 *%ptr, i64 %alt, i32 %limit) {
+define void @f9(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -150,16 +150,16 @@ define void @f9(i16 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = zext i16 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f10(i16 *%ptr, i64 %alt, i32 %limit) {
+define void @f10(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -167,65 +167,65 @@ define void @f10(i16 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %ext = zext i16 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i16
-  store i16 %trunc, i16 *%ptr
+  store i16 %trunc, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STH range.
-define void @f11(i16 *%base, i16 %alt, i32 %limit) {
+define void @f11(ptr %base, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sth %r3, 4094(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2047
+  %ptr = getelementptr i16, ptr %base, i64 2047
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Check the next halfword up, which should use STHY instead of STH.
-define void @f12(i16 *%base, i16 %alt, i32 %limit) {
+define void @f12(ptr %base, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sthy %r3, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2048
+  %ptr = getelementptr i16, ptr %base, i64 2048
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STHY range.
-define void @f13(i16 *%base, i16 %alt, i32 %limit) {
+define void @f13(ptr %base, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f13:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sthy %r3, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 262143
+  %ptr = getelementptr i16, ptr %base, i64 262143
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f14(i16 *%base, i16 %alt, i32 %limit) {
+define void @f14(ptr %base, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -233,33 +233,33 @@ define void @f14(i16 *%base, i16 %alt, i32 %limit) {
 ; CHECK: agfi %r2, 524288
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 262144
+  %ptr = getelementptr i16, ptr %base, i64 262144
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STHY range.
-define void @f15(i16 *%base, i16 %alt, i32 %limit) {
+define void @f15(ptr %base, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sthy %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 -262144
+  %ptr = getelementptr i16, ptr %base, i64 -262144
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f16(i16 *%base, i16 %alt, i32 %limit) {
+define void @f16(ptr %base, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f16:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -267,11 +267,11 @@ define void @f16(i16 *%base, i16 %alt, i32 %limit) {
 ; CHECK: agfi %r2, -524290
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 -262145
+  %ptr = getelementptr i16, ptr %base, i64 -262145
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
@@ -285,16 +285,16 @@ define void @f17(i64 %base, i64 %index, i16 %alt, i32 %limit) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
+  %ptr = inttoptr i64 %add2 to ptr
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; Check that volatile loads are not matched.
-define void @f18(i16 *%ptr, i16 %alt, i32 %limit) {
+define void @f18(ptr %ptr, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f18:
 ; CHECK: lh {{%r[0-5]}}, 0(%r2)
 ; CHECK: {{jl|jnl}} [[LABEL:[^ ]*]]
@@ -302,14 +302,14 @@ define void @f18(i16 *%ptr, i16 %alt, i32 %limit) {
 ; CHECK: sth {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load volatile i16, i16 *%ptr
+  %orig = load volatile i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.  In this case we should have a conditional load into %r3.
-define void @f19(i16 *%ptr, i16 %alt, i32 %limit) {
+define void @f19(ptr %ptr, i16 %alt, i32 %limit) {
 ; CHECK-LABEL: f19:
 ; CHECK: jhe [[LABEL:[^ ]*]]
 ; CHECK: lh %r3, 0(%r2)
@@ -317,9 +317,9 @@ define void @f19(i16 *%ptr, i16 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store volatile i16 %res, i16 *%ptr
+  store volatile i16 %res, ptr %ptr
   ret void
 }
 
@@ -327,7 +327,7 @@ define void @f19(i16 *%ptr, i16 %alt, i32 %limit) {
 ; the "unordered" case tested here, but since we don't try to handle atomic
 ; operations at all in this context, it seems better to assert that than
 ; to restrict the test to a stronger ordering.
-define void @f20(i16 *%ptr, i16 %alt, i32 %limit) {
+define void @f20(ptr %ptr, i16 %alt, i32 %limit) {
 ; FIXME: should use a normal load instead of CS.
 ; CHECK-LABEL: f20:
 ; CHECK: lh {{%r[0-9]+}}, 0(%r2)
@@ -336,14 +336,14 @@ define void @f20(i16 *%ptr, i16 %alt, i32 %limit) {
 ; CHECK: sth {{%r[0-9]+}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load atomic i16, i16 *%ptr unordered, align 2
+  %orig = load atomic i16, ptr %ptr unordered, align 2
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.
-define void @f21(i16 *%ptr, i16 %alt, i32 %limit) {
+define void @f21(ptr %ptr, i16 %alt, i32 %limit) {
 ; FIXME: should use a normal store instead of CS.
 ; CHECK-LABEL: f21:
 ; CHECK: jhe [[LABEL:[^ ]*]]
@@ -352,9 +352,9 @@ define void @f21(i16 *%ptr, i16 %alt, i32 %limit) {
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store atomic i16 %res, i16 *%ptr unordered, align 2
+  store atomic i16 %res, ptr %ptr unordered, align 2
   ret void
 }
 
@@ -370,11 +370,11 @@ define void @f22(i16 %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i16
-  call void @foo(i16 *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 420
-  %orig = load i16, i16 *%ptr
+  %orig = load i16, ptr %ptr
   %res = select i1 %cond, i16 %orig, i16 %alt
-  store i16 %res, i16 *%ptr
-  call void @foo(i16 *%ptr)
+  store i16 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-03.ll b/llvm/test/CodeGen/SystemZ/cond-store-03.ll
index 408bd946f9db0..8fa9ee035cfb1 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-03.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-03.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
-declare void @foo(i32 *)
+declare void @foo(ptr)
 
 ; Test the simple case, with the loaded value first.
-define void @f1(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f1(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -13,14 +13,14 @@ define void @f1(i32 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f2(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -28,15 +28,15 @@ define void @f2(i32 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %alt, i32 %orig
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly sign-extended to 64 bits, with the
 ; loaded value first.
-define void @f3(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f3(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -44,16 +44,16 @@ define void @f3(i32 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = sext i32 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f4(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f4(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -61,17 +61,17 @@ define void @f4(i32 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = sext i32 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly zero-extended to 32 bits, with the
 ; loaded value first.
-define void @f5(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f5(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -79,16 +79,16 @@ define void @f5(i32 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = zext i32 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f6(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f6(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -96,65 +96,65 @@ define void @f6(i32 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = zext i32 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned ST range.
-define void @f7(i32 *%base, i32 %alt, i32 %limit) {
+define void @f7(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: st %r3, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
+  %ptr = getelementptr i32, ptr %base, i64 1023
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which should use STY instead of ST.
-define void @f8(i32 *%base, i32 %alt, i32 %limit) {
+define void @f8(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sty %r3, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
+  %ptr = getelementptr i32, ptr %base, i64 1024
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STY range.
-define void @f9(i32 *%base, i32 %alt, i32 %limit) {
+define void @f9(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sty %r3, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
+  %ptr = getelementptr i32, ptr %base, i64 131071
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f10(i32 *%base, i32 %alt, i32 %limit) {
+define void @f10(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -162,33 +162,33 @@ define void @f10(i32 *%base, i32 %alt, i32 %limit) {
 ; CHECK: agfi %r2, 524288
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
+  %ptr = getelementptr i32, ptr %base, i64 131072
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STY range.
-define void @f11(i32 *%base, i32 %alt, i32 %limit) {
+define void @f11(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: sty %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
+  %ptr = getelementptr i32, ptr %base, i64 -131072
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f12(i32 *%base, i32 %alt, i32 %limit) {
+define void @f12(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -196,11 +196,11 @@ define void @f12(i32 *%base, i32 %alt, i32 %limit) {
 ; CHECK: agfi %r2, -524292
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
+  %ptr = getelementptr i32, ptr %base, i64 -131073
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
@@ -214,16 +214,16 @@ define void @f13(i64 %base, i64 %index, i32 %alt, i32 %limit) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
+  %ptr = inttoptr i64 %add2 to ptr
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check that volatile loads are not matched.
-define void @f14(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f14(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f14:
 ; CHECK: l {{%r[0-5]}}, 0(%r2)
 ; CHECK: {{jl|jnl}} [[LABEL:[^ ]*]]
@@ -231,14 +231,14 @@ define void @f14(i32 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: st {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load volatile i32, i32 *%ptr
+  %orig = load volatile i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.  In this case we should have a conditional load into %r3.
-define void @f15(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f15(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f15:
 ; CHECK: jhe [[LABEL:[^ ]*]]
 ; CHECK: l %r3, 0(%r2)
@@ -246,9 +246,9 @@ define void @f15(i32 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store volatile i32 %res, i32 *%ptr
+  store volatile i32 %res, ptr %ptr
   ret void
 }
 
@@ -256,7 +256,7 @@ define void @f15(i32 *%ptr, i32 %alt, i32 %limit) {
 ; the "unordered" case tested here, but since we don't try to handle atomic
 ; operations at all in this context, it seems better to assert that than
 ; to restrict the test to a stronger ordering.
-define void @f16(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f16(ptr %ptr, i32 %alt, i32 %limit) {
 ; FIXME: should use a normal load instead of CS.
 ; CHECK-LABEL: f16:
 ; CHECK: l {{%r[0-5]}}, 0(%r2)
@@ -265,14 +265,14 @@ define void @f16(i32 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: st {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load atomic i32, i32 *%ptr unordered, align 4
+  %orig = load atomic i32, ptr %ptr unordered, align 4
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.
-define void @f17(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f17(ptr %ptr, i32 %alt, i32 %limit) {
 ; FIXME: should use a normal store instead of CS.
 ; CHECK-LABEL: f17:
 ; CHECK: jhe [[LABEL:[^ ]*]]
@@ -281,9 +281,9 @@ define void @f17(i32 *%ptr, i32 %alt, i32 %limit) {
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store atomic i32 %res, i32 *%ptr unordered, align 4
+  store atomic i32 %res, ptr %ptr unordered, align 4
   ret void
 }
 
@@ -299,11 +299,11 @@ define void @f18(i32 %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i32
-  call void @foo(i32 *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 420
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
-  call void @foo(i32 *%ptr)
+  store i32 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-04.ll b/llvm/test/CodeGen/SystemZ/cond-store-04.ll
index a7393fea73d25..64d0798f72587 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-04.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-04.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
-declare void @foo(i64 *)
+declare void @foo(ptr)
 
 ; Test with the loaded value first.
-define void @f1(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f1(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -13,14 +13,14 @@ define void @f1(i64 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f2(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -28,31 +28,31 @@ define void @f2(i64 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %alt, i64 %orig
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STG range.
-define void @f3(i64 *%base, i64 %alt, i32 %limit) {
+define void @f3(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stg %r3, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
+  %ptr = getelementptr i64, ptr %base, i64 65535
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(i64 *%base, i64 %alt, i32 %limit) {
+define void @f4(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -60,33 +60,33 @@ define void @f4(i64 *%base, i64 %alt, i32 %limit) {
 ; CHECK: agfi %r2, 524288
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
+  %ptr = getelementptr i64, ptr %base, i64 65536
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STG range.
-define void @f5(i64 *%base, i64 %alt, i32 %limit) {
+define void @f5(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stg %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
+  %ptr = getelementptr i64, ptr %base, i64 -65536
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i64 *%base, i64 %alt, i32 %limit) {
+define void @f6(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -94,11 +94,11 @@ define void @f6(i64 *%base, i64 %alt, i32 %limit) {
 ; CHECK: agfi %r2, -524296
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
+  %ptr = getelementptr i64, ptr %base, i64 -65537
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
@@ -112,16 +112,16 @@ define void @f7(i64 %base, i64 %index, i64 %alt, i32 %limit) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
+  %ptr = inttoptr i64 %add2 to ptr
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check that volatile loads are not matched.
-define void @f8(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f8(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK: lg {{%r[0-5]}}, 0(%r2)
 ; CHECK: {{jl|jnl}} [[LABEL:[^ ]*]]
@@ -129,14 +129,14 @@ define void @f8(i64 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stg {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load volatile i64, i64 *%ptr
+  %orig = load volatile i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.  In this case we should have a conditional load into %r3.
-define void @f9(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f9(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f9:
 ; CHECK: jhe [[LABEL:[^ ]*]]
 ; CHECK: lg %r3, 0(%r2)
@@ -144,9 +144,9 @@ define void @f9(i64 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store volatile i64 %res, i64 *%ptr
+  store volatile i64 %res, ptr %ptr
   ret void
 }
 
@@ -154,7 +154,7 @@ define void @f9(i64 *%ptr, i64 %alt, i32 %limit) {
 ; the "unordered" case tested here, but since we don't try to handle atomic
 ; operations at all in this context, it seems better to assert that than
 ; to restrict the test to a stronger ordering.
-define void @f10(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f10(ptr %ptr, i64 %alt, i32 %limit) {
 ; FIXME: should use a normal load instead of CSG.
 ; CHECK-LABEL: f10:
 ; CHECK: lg {{%r[0-5]}}, 0(%r2)
@@ -163,14 +163,14 @@ define void @f10(i64 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stg {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load atomic i64, i64 *%ptr unordered, align 8
+  %orig = load atomic i64, ptr %ptr unordered, align 8
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.
-define void @f11(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f11(ptr %ptr, i64 %alt, i32 %limit) {
 ; FIXME: should use a normal store instead of CSG.
 ; CHECK-LABEL: f11:
 ; CHECK: jhe [[LABEL:[^ ]*]]
@@ -179,9 +179,9 @@ define void @f11(i64 *%ptr, i64 %alt, i32 %limit) {
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store atomic i64 %res, i64 *%ptr unordered, align 8
+  store atomic i64 %res, ptr %ptr unordered, align 8
   ret void
 }
 
@@ -197,11 +197,11 @@ define void @f12(i64 %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i64
-  call void @foo(i64 *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 420
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
-  call void @foo(i64 *%ptr)
+  store i64 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-05.ll b/llvm/test/CodeGen/SystemZ/cond-store-05.ll
index 9bf4e00bedf02..85dac61940c86 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-05.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-05.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @foo(float *)
+declare void @foo(ptr)
 
 ; Test with the loaded value first.
-define void @f1(float *%ptr, float %alt, i32 %limit) {
+define void @f1(ptr %ptr, float %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -13,14 +13,14 @@ define void @f1(float *%ptr, float %alt, i32 %limit) {
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(float *%ptr, float %alt, i32 %limit) {
+define void @f2(ptr %ptr, float %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -28,63 +28,63 @@ define void @f2(float *%ptr, float %alt, i32 %limit) {
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %alt, float %orig
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STE range.
-define void @f3(float *%base, float %alt, i32 %limit) {
+define void @f3(ptr %base, float %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: ste %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
+  %ptr = getelementptr float, ptr %base, i64 1023
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which should use STEY instead of STE.
-define void @f4(float *%base, float %alt, i32 %limit) {
+define void @f4(ptr %base, float %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stey %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
+  %ptr = getelementptr float, ptr %base, i64 1024
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STEY range.
-define void @f5(float *%base, float %alt, i32 %limit) {
+define void @f5(ptr %base, float %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stey %f0, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 131071
+  %ptr = getelementptr float, ptr %base, i64 131071
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(float *%base, float %alt, i32 %limit) {
+define void @f6(ptr %base, float %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -92,33 +92,33 @@ define void @f6(float *%base, float %alt, i32 %limit) {
 ; CHECK: agfi %r2, 524288
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 131072
+  %ptr = getelementptr float, ptr %base, i64 131072
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STEY range.
-define void @f7(float *%base, float %alt, i32 %limit) {
+define void @f7(ptr %base, float %alt, i32 %limit) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stey %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -131072
+  %ptr = getelementptr float, ptr %base, i64 -131072
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(float *%base, float %alt, i32 %limit) {
+define void @f8(ptr %base, float %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -126,11 +126,11 @@ define void @f8(float *%base, float %alt, i32 %limit) {
 ; CHECK: agfi %r2, -524292
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -131073
+  %ptr = getelementptr float, ptr %base, i64 -131073
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
@@ -144,16 +144,16 @@ define void @f9(i64 %base, i64 %index, float %alt, i32 %limit) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to float *
+  %ptr = inttoptr i64 %add2 to ptr
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; Check that volatile loads are not matched.
-define void @f10(float *%ptr, float %alt, i32 %limit) {
+define void @f10(ptr %ptr, float %alt, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK: le {{%f[0-5]}}, 0(%r2)
 ; CHECK: {{jl|jnl}} [[LABEL:[^ ]*]]
@@ -161,14 +161,14 @@ define void @f10(float *%ptr, float %alt, i32 %limit) {
 ; CHECK: ste {{%f[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load volatile float, float *%ptr
+  %orig = load volatile float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
+  store float %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.  In this case we should have a conditional load into %f0.
-define void @f11(float *%ptr, float %alt, i32 %limit) {
+define void @f11(ptr %ptr, float %alt, i32 %limit) {
 ; CHECK-LABEL: f11:
 ; CHECK: jhe [[LABEL:[^ ]*]]
 ; CHECK: le %f0, 0(%r2)
@@ -176,9 +176,9 @@ define void @f11(float *%ptr, float %alt, i32 %limit) {
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store volatile float %res, float *%ptr
+  store volatile float %res, ptr %ptr
   ret void
 }
 
@@ -194,11 +194,11 @@ define void @f12(float %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca float
-  call void @foo(float *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 420
-  %orig = load float, float *%ptr
+  %orig = load float, ptr %ptr
   %res = select i1 %cond, float %orig, float %alt
-  store float %res, float *%ptr
-  call void @foo(float *%ptr)
+  store float %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-06.ll b/llvm/test/CodeGen/SystemZ/cond-store-06.ll
index 76c7d172d3cec..328bbf4250b34 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-06.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-06.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @foo(double *)
+declare void @foo(ptr)
 
 ; Test with the loaded value first.
-define void @f1(double *%ptr, double %alt, i32 %limit) {
+define void @f1(ptr %ptr, double %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -13,14 +13,14 @@ define void @f1(double *%ptr, double %alt, i32 %limit) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(double *%ptr, double %alt, i32 %limit) {
+define void @f2(ptr %ptr, double %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: bher %r14
@@ -28,63 +28,63 @@ define void @f2(double *%ptr, double %alt, i32 %limit) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %alt, double %orig
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STD range.
-define void @f3(double *%base, double %alt, i32 %limit) {
+define void @f3(ptr %base, double %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: std %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
+  %ptr = getelementptr double, ptr %base, i64 511
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which should use STDY instead of STD.
-define void @f4(double *%base, double %alt, i32 %limit) {
+define void @f4(ptr %base, double %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stdy %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
+  %ptr = getelementptr double, ptr %base, i64 512
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STDY range.
-define void @f5(double *%base, double %alt, i32 %limit) {
+define void @f5(ptr %base, double %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stdy %f0, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 65535
+  %ptr = getelementptr double, ptr %base, i64 65535
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(double *%base, double %alt, i32 %limit) {
+define void @f6(ptr %base, double %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -92,33 +92,33 @@ define void @f6(double *%base, double %alt, i32 %limit) {
 ; CHECK: agfi %r2, 524288
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 65536
+  %ptr = getelementptr double, ptr %base, i64 65536
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STDY range.
-define void @f7(double *%base, double %alt, i32 %limit) {
+define void @f7(ptr %base, double %alt, i32 %limit) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
 ; CHECK-NOT: %r2
 ; CHECK: stdy %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -65536
+  %ptr = getelementptr double, ptr %base, i64 -65536
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(double *%base, double %alt, i32 %limit) {
+define void @f8(ptr %base, double %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: %r2
 ; CHECK: blr %r14
@@ -126,11 +126,11 @@ define void @f8(double *%base, double %alt, i32 %limit) {
 ; CHECK: agfi %r2, -524296
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -65537
+  %ptr = getelementptr double, ptr %base, i64 -65537
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
@@ -144,16 +144,16 @@ define void @f9(i64 %base, i64 %index, double %alt, i32 %limit) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to double *
+  %ptr = inttoptr i64 %add2 to ptr
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; Check that volatile loads are not matched.
-define void @f10(double *%ptr, double %alt, i32 %limit) {
+define void @f10(ptr %ptr, double %alt, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK: ld {{%f[0-5]}}, 0(%r2)
 ; CHECK: {{jl|jnl}} [[LABEL:[^ ]*]]
@@ -161,14 +161,14 @@ define void @f10(double *%ptr, double %alt, i32 %limit) {
 ; CHECK: std {{%f[0-5]}}, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load volatile double, double *%ptr
+  %orig = load volatile double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
+  store double %res, ptr %ptr
   ret void
 }
 
 ; ...likewise stores.  In this case we should have a conditional load into %f0.
-define void @f11(double *%ptr, double %alt, i32 %limit) {
+define void @f11(ptr %ptr, double %alt, i32 %limit) {
 ; CHECK-LABEL: f11:
 ; CHECK: jhe [[LABEL:[^ ]*]]
 ; CHECK: ld %f0, 0(%r2)
@@ -176,9 +176,9 @@ define void @f11(double *%ptr, double %alt, i32 %limit) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store volatile double %res, double *%ptr
+  store volatile double %res, ptr %ptr
   ret void
 }
 
@@ -194,11 +194,11 @@ define void @f12(double %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca double
-  call void @foo(double *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 420
-  %orig = load double, double *%ptr
+  %orig = load double, ptr %ptr
   %res = select i1 %cond, double %orig, double %alt
-  store double %res, double *%ptr
-  call void @foo(double *%ptr)
+  store double %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-07.ll b/llvm/test/CodeGen/SystemZ/cond-store-07.ll
index e15e37bdbef9e..a70f5ac0fd466 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-07.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-07.ll
@@ -6,151 +6,151 @@
 ; in the presence of the load-store-on-condition-2 facility.
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
-declare void @foo(i32 *)
+declare void @foo(ptr)
 
 ; Test the simple case, with the loaded value first.
-define void @f1(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f1(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i32 *%ptr, i32 %alt, i32 %limit) {
+define void @f2(ptr %ptr, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocl %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %alt, i32 %orig
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly sign-extended to 64 bits, with the
 ; loaded value first.
-define void @f3(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f3(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = sext i32 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f4(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f4(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocl %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = sext i32 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; Test cases where the value is explicitly zero-extended to 32 bits, with the
 ; loaded value first.
-define void @f5(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f5(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = zext i32 %orig to i64
   %res = select i1 %cond, i64 %ext, i64 %alt
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f6(i32 *%ptr, i64 %alt, i32 %limit) {
+define void @f6(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocl %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %ext = zext i32 %orig to i64
   %res = select i1 %cond, i64 %alt, i64 %ext
   %trunc = trunc i64 %res to i32
-  store i32 %trunc, i32 *%ptr
+  store i32 %trunc, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STOC range.
-define void @f7(i32 *%base, i32 %alt, i32 %limit) {
+define void @f7(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f7:
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
+  %ptr = getelementptr i32, ptr %base, i64 131071
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word up.  Other sequences besides this one would be OK.
-define void @f8(i32 *%base, i32 %alt, i32 %limit) {
+define void @f8(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, 524288
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
+  %ptr = getelementptr i32, ptr %base, i64 131072
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STOC range.
-define void @f9(i32 *%base, i32 %alt, i32 %limit) {
+define void @f9(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f9:
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
+  %ptr = getelementptr i32, ptr %base, i64 -131072
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word down, with the same comments as f8.
-define void @f10(i32 *%base, i32 %alt, i32 %limit) {
+define void @f10(ptr %base, i32 %alt, i32 %limit) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r2, -524292
 ; CHECK: clfi %r4, 42
 ; CHECK: stoche %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
+  %ptr = getelementptr i32, ptr %base, i64 -131073
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
@@ -162,18 +162,18 @@ define void @f11(i32 %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i32
-  call void @foo(i32 *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
-  call void @foo(i32 *%ptr)
+  store i32 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }
 
 ; Test that conditionally-executed stores do not use STOC, since STOC
 ; is allowed to trap even when the condition is false.
-define void @f12(i32 %a, i32 %b, i32 *%dest) {
+define void @f12(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: stoc
 ; CHECK: br %r14
@@ -182,7 +182,7 @@ entry:
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-08.ll b/llvm/test/CodeGen/SystemZ/cond-store-08.ll
index 732d4d92a475e..43dd4a54ccf44 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-08.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-08.ll
@@ -2,89 +2,89 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
-declare void @foo(i64 *)
+declare void @foo(ptr)
 
 ; Test with the loaded value first.
-define void @f1(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f1(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocghe %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i64 *%ptr, i64 %alt, i32 %limit) {
+define void @f2(ptr %ptr, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocgl %r3, 0(%r2)
 ; CHECK: br %r14
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %alt, i64 %orig
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STOCG range.
-define void @f3(i64 *%base, i64 %alt, i32 %limit) {
+define void @f3(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocghe %r3, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
+  %ptr = getelementptr i64, ptr %base, i64 65535
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up.  Other sequences besides this one would be OK.
-define void @f4(i64 *%base, i64 %alt, i32 %limit) {
+define void @f4(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r2, 524288
 ; CHECK: clfi %r4, 42
 ; CHECK: stocghe %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
+  %ptr = getelementptr i64, ptr %base, i64 65536
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STOCG range.
-define void @f5(i64 *%base, i64 %alt, i32 %limit) {
+define void @f5(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK: clfi %r4, 42
 ; CHECK: stocghe %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
+  %ptr = getelementptr i64, ptr %base, i64 -65536
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, with the same comments as f4.
-define void @f6(i64 *%base, i64 %alt, i32 %limit) {
+define void @f6(ptr %base, i64 %alt, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524296
 ; CHECK: clfi %r4, 42
 ; CHECK: stocghe %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
+  %ptr = getelementptr i64, ptr %base, i64 -65537
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
+  store i64 %res, ptr %ptr
   ret void
 }
 
@@ -96,18 +96,18 @@ define void @f7(i64 %alt, i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i64
-  call void @foo(i64 *%ptr)
+  call void @foo(ptr %ptr)
   %cond = icmp ult i32 %limit, 42
-  %orig = load i64, i64 *%ptr
+  %orig = load i64, ptr %ptr
   %res = select i1 %cond, i64 %orig, i64 %alt
-  store i64 %res, i64 *%ptr
-  call void @foo(i64 *%ptr)
+  store i64 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }
 
 ; Test that conditionally-executed stores do not use STOC, since STOC
 ; is allowed to trap even when the condition is false.
-define void @f8(i64 %a, i64 %b, i64 *%dest) {
+define void @f8(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: stocg %r3, 0(%r4)
 ; CHECK: br %r14
@@ -116,7 +116,7 @@ entry:
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i64 %b, i64 *%dest
+  store i64 %b, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/cond-store-09.ll b/llvm/test/CodeGen/SystemZ/cond-store-09.ll
index bf7a8b8800758..fcbdf1fe8b5d5 100644
--- a/llvm/test/CodeGen/SystemZ/cond-store-09.ll
+++ b/llvm/test/CodeGen/SystemZ/cond-store-09.ll
@@ -4,10 +4,10 @@
 ; RUN: llc < %s -verify-machineinstrs -mtriple=s390x-linux-gnu -mcpu=z13 \
 ; RUN:   -no-integrated-as | FileCheck %s
 
-declare void @foo(i32 *)
+declare void @foo(ptr)
 
 ; Test the simple case, with the loaded value first.
-define void @f1(i32 *%ptr, i32 %limit) {
+define void @f1(ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
@@ -15,14 +15,14 @@ define void @f1(i32 *%ptr, i32 %limit) {
 ; CHECK: br %r14
   %alt = call i32 asm "stepa $0", "=h"()
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; ...and with the loaded value second
-define void @f2(i32 *%ptr, i32 %limit) {
+define void @f2(ptr %ptr, i32 %limit) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
@@ -30,30 +30,30 @@ define void @f2(i32 *%ptr, i32 %limit) {
 ; CHECK: br %r14
   %alt = call i32 asm "stepa $0", "=h"()
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %alt, i32 %orig
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STOC range.
-define void @f3(i32 *%base, i32 %limit) {
+define void @f3(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
 ; CHECK: stocfhhe [[REG]], 524284(%r2)
 ; CHECK: br %r14
   %alt = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 131071
+  %ptr = getelementptr i32, ptr %base, i64 131071
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word up.  Other sequences besides this one would be OK.
-define void @f4(i32 *%base, i32 %limit) {
+define void @f4(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: agfi %r2, 524288
@@ -61,32 +61,32 @@ define void @f4(i32 *%base, i32 %limit) {
 ; CHECK: stocfhhe [[REG]], 0(%r2)
 ; CHECK: br %r14
   %alt = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 131072
+  %ptr = getelementptr i32, ptr %base, i64 131072
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STOC range.
-define void @f5(i32 *%base, i32 %limit) {
+define void @f5(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: clfi %r3, 42
 ; CHECK: stocfhhe [[REG]], -524288(%r2)
 ; CHECK: br %r14
   %alt = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
+  %ptr = getelementptr i32, ptr %base, i64 -131072
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
 ; Check the next word down, with the same comments as f8.
-define void @f6(i32 *%base, i32 %limit) {
+define void @f6(ptr %base, i32 %limit) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: stepa [[REG:%r[0-5]]]
 ; CHECK-DAG: agfi %r2, -524292
@@ -94,11 +94,11 @@ define void @f6(i32 *%base, i32 %limit) {
 ; CHECK: stocfhhe [[REG]], 0(%r2)
 ; CHECK: br %r14
   %alt = call i32 asm "stepa $0", "=h"()
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
+  %ptr = getelementptr i32, ptr %base, i64 -131073
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
+  store i32 %res, ptr %ptr
   ret void
 }
 
@@ -111,19 +111,19 @@ define void @f7(i32 %limit) {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i32
-  call void @foo(i32 *%ptr)
+  call void @foo(ptr %ptr)
   %alt = call i32 asm "stepa $0", "=h"()
   %cond = icmp ult i32 %limit, 42
-  %orig = load i32, i32 *%ptr
+  %orig = load i32, ptr %ptr
   %res = select i1 %cond, i32 %orig, i32 %alt
-  store i32 %res, i32 *%ptr
-  call void @foo(i32 *%ptr)
+  store i32 %res, ptr %ptr
+  call void @foo(ptr %ptr)
   ret void
 }
 
 ; Test that conditionally-executed stores do not use STOC, since STOC
 ; is allowed to trap even when the condition is false.
-define void @f8(i32 %a, i32 %b, i32 *%dest) {
+define void @f8(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: stoc
 ; CHECK: stfh
@@ -134,7 +134,7 @@ entry:
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 %val, i32 *%dest
+  store i32 %val, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/copy-physreg-128.ll b/llvm/test/CodeGen/SystemZ/copy-physreg-128.ll
index 408316140605e..74a04b6edea49 100644
--- a/llvm/test/CodeGen/SystemZ/copy-physreg-128.ll
+++ b/llvm/test/CodeGen/SystemZ/copy-physreg-128.ll
@@ -3,10 +3,10 @@
 ; Check that copyPhysReg() properly adds impl-use operands of the super
 ; register while lowering a COPY of a GR128 bit reg.
 
-define void @autogen_SD5585(i32*, i64) {
+define void @autogen_SD5585(ptr, i64) {
 ; CHECK: .text
 BB:
-  %L5 = load i1, i1* undef
+  %L5 = load i1, ptr undef
   %I8 = insertelement <8 x i64> undef, i64 %1, i32 3
   %I21 = insertelement <8 x i64> zeroinitializer, i64 475435, i32 5
   br label %CF290
@@ -22,7 +22,7 @@ CF296:                                            ; preds = %CF290
 
 CF302:                                            ; preds = %CF307, %CF296
   %Shuff49 = shufflevector <8 x i64> undef, <8 x i64> zeroinitializer, <8 x i32> <i32 undef, i32 9, i32 11, i32 undef, i32 15, i32 1, i32 3, i32 5>
-  %L69 = load i16, i16* undef
+  %L69 = load i16, ptr undef
   br label %CF307
 
 CF307:                                            ; preds = %CF302
@@ -47,7 +47,7 @@ CF282:                                            ; preds = %CF304, %CF281
   br label %CF289
 
 CF289:                                            ; preds = %CF289, %CF282
-  store i32 %B126, i32* %0
+  store i32 %B126, ptr %0
   %Cmp219 = icmp slt i64 undef, undef
   br i1 %Cmp219, label %CF289, label %CF304
 
@@ -60,7 +60,7 @@ CF283:                                            ; preds = %CF308, %CF283, %CF3
   br i1 undef, label %CF283, label %CF308
 
 CF308:                                            ; preds = %CF283
-  store i1 %Cmp164, i1* undef
+  store i1 %Cmp164, ptr undef
   br i1 undef, label %CF283, label %CF293
 
 CF293:                                            ; preds = %CF308

diff  --git a/llvm/test/CodeGen/SystemZ/dag-combine-01.ll b/llvm/test/CodeGen/SystemZ/dag-combine-01.ll
index 019421cfdfe9f..17ffd04573002 100644
--- a/llvm/test/CodeGen/SystemZ/dag-combine-01.ll
+++ b/llvm/test/CodeGen/SystemZ/dag-combine-01.ll
@@ -7,7 +7,7 @@
 @A = common global [2048 x float] zeroinitializer, align 4
 
 ; Function Attrs: nounwind
-define signext i32 @main(i32 signext %argc, i8** nocapture readnone %argv) #0 {
+define signext i32 @main(i32 signext %argc, ptr nocapture readnone %argv) #0 {
 entry:
   br label %for.body
 
@@ -16,8 +16,8 @@ for.body:                                         ; preds = %for.body, %entry
   %sum.018 = phi float [ 0.000000e+00, %entry ], [ %add, %for.body ]
   %0 = trunc i64 %indvars.iv24 to i32
   %conv = sitofp i32 %0 to float
-  %arrayidx = getelementptr inbounds [2048 x float], [2048 x float]* @A, i64 0, i64 %indvars.iv24
-  store float %conv, float* %arrayidx, align 4
+  %arrayidx = getelementptr inbounds [2048 x float], ptr @A, i64 0, i64 %indvars.iv24
+  store float %conv, ptr %arrayidx, align 4
   %add = fadd float %sum.018, %conv
   %indvars.iv.next25 = add nuw nsw i64 %indvars.iv24, 1
   %exitcond26 = icmp eq i64 %indvars.iv.next25, 2048
@@ -45,24 +45,20 @@ for.body.3.i:                                     ; preds = %for.body.3.i, %for.
   %indvars.iv.i = phi i64 [ 0, %for.body.3.lr.ph.i ], [ %indvars.iv.next.i, %for.body.3.i ]
   %3 = shl nsw i64 %indvars.iv.i, 6
   %4 = add nuw nsw i64 %3, %1
-  %arrayidx.i = getelementptr inbounds [2048 x float], [2048 x float]* @A, i64 0, i64 %4
-  %5 = bitcast float* %arrayidx.i to i32*
-  %6 = load i32, i32* %5, align 4
-  %arrayidx9.i = getelementptr inbounds float, float* getelementptr inbounds ([2048 x float], [2048 x float]* @A, i64 0, i64 1), i64 %4
-  %7 = bitcast float* %arrayidx9.i to i32*
-  %8 = load i32, i32* %7, align 4
-  %9 = shl nsw i64 %indvars.iv.i, 1
-  %10 = add nuw nsw i64 %9, %2
-  %arrayidx14.i = getelementptr inbounds [2048 x float], [2048 x float]* @A, i64 0, i64 %10
-  %11 = bitcast float* %arrayidx14.i to i32*
-  %12 = load i32, i32* %11, align 4
-  %arrayidx19.i = getelementptr inbounds float, float* getelementptr inbounds ([2048 x float], [2048 x float]* @A, i64 0, i64 1), i64 %10
-  %13 = bitcast float* %arrayidx19.i to i32*
-  %14 = load i32, i32* %13, align 4
-  store i32 %6, i32* %11, align 4
-  store i32 %8, i32* %13, align 4
-  store i32 %12, i32* %5, align 4
-  store i32 %14, i32* %7, align 4
+  %arrayidx.i = getelementptr inbounds [2048 x float], ptr @A, i64 0, i64 %4
+  %5 = load i32, ptr %arrayidx.i, align 4
+  %arrayidx9.i = getelementptr inbounds float, ptr getelementptr inbounds ([2048 x float], ptr @A, i64 0, i64 1), i64 %4
+  %6 = load i32, ptr %arrayidx9.i, align 4
+  %7 = shl nsw i64 %indvars.iv.i, 1
+  %8 = add nuw nsw i64 %7, %2
+  %arrayidx14.i = getelementptr inbounds [2048 x float], ptr @A, i64 0, i64 %8
+  %9 = load i32, ptr %arrayidx14.i, align 4
+  %arrayidx19.i = getelementptr inbounds float, ptr getelementptr inbounds ([2048 x float], ptr @A, i64 0, i64 1), i64 %8
+  %10 = load i32, ptr %arrayidx19.i, align 4
+  store i32 %5, ptr %arrayidx14.i, align 4
+  store i32 %6, ptr %arrayidx19.i, align 4
+  store i32 %9, ptr %arrayidx.i, align 4
+  store i32 %10, ptr %arrayidx9.i, align 4
   %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1
   %lftr.wideiv = trunc i64 %indvars.iv.next.i to i32
   %exitcond21 = icmp eq i32 %lftr.wideiv, %indvars.iv19
@@ -85,9 +81,9 @@ for.body.14.preheader:                            ; preds = %complex_transpose.e
 for.body.14:                                      ; preds = %for.body.14.preheader, %for.body.14
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body.14 ], [ 0, %for.body.14.preheader ]
   %sum.115 = phi float [ %add17, %for.body.14 ], [ 0.000000e+00, %for.body.14.preheader ]
-  %arrayidx16 = getelementptr inbounds [2048 x float], [2048 x float]* @A, i64 0, i64 %indvars.iv
-  %15 = load float, float* %arrayidx16, align 4
-  %add17 = fadd float %sum.115, %15
+  %arrayidx16 = getelementptr inbounds [2048 x float], ptr @A, i64 0, i64 %indvars.iv
+  %11 = load float, ptr %arrayidx16, align 4
+  %add17 = fadd float %sum.115, %11
   %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
   %exitcond = icmp eq i64 %indvars.iv.next, 2048
   br i1 %exitcond, label %for.end.20, label %for.body.14

diff  --git a/llvm/test/CodeGen/SystemZ/dag-combine-04.ll b/llvm/test/CodeGen/SystemZ/dag-combine-04.ll
index 4837c462d5e3f..434cbc5cf0199 100644
--- a/llvm/test/CodeGen/SystemZ/dag-combine-04.ll
+++ b/llvm/test/CodeGen/SystemZ/dag-combine-04.ll
@@ -8,12 +8,12 @@
 
 define void @main() local_unnamed_addr {
 bb:
-  %tmp = load i16, i16* getelementptr inbounds ([6 x [10 x i16]], [6 x [10 x i16]]* @g_348, i64 0, i64 1, i64 6), align 2
+  %tmp = load i16, ptr getelementptr inbounds ([6 x [10 x i16]], ptr @g_348, i64 0, i64 1, i64 6), align 2
   %tmp1 = xor i16 %tmp, 0
   %tmp2 = insertelement <2 x i16> <i16 undef, i16 0>, i16 %tmp1, i32 0
   %tmp3 = shufflevector <2 x i16> %tmp2, <2 x i16> undef, <2 x i32> <i32 1, i32 undef>
   %tmp4 = xor <2 x i16> %tmp2, %tmp3
   %tmp5 = extractelement <2 x i16> %tmp4, i32 0
-  store i16 %tmp5, i16* getelementptr inbounds ([6 x [10 x i16]], [6 x [10 x i16]]* @g_348, i64 0, i64 1, i64 6), align 2
+  store i16 %tmp5, ptr getelementptr inbounds ([6 x [10 x i16]], ptr @g_348, i64 0, i64 1, i64 6), align 2
   unreachable
 }

diff  --git a/llvm/test/CodeGen/SystemZ/dag-combine-05.ll b/llvm/test/CodeGen/SystemZ/dag-combine-05.ll
index eb9fcc2969210..60528ad67d039 100644
--- a/llvm/test/CodeGen/SystemZ/dag-combine-05.ll
+++ b/llvm/test/CodeGen/SystemZ/dag-combine-05.ll
@@ -6,7 +6,7 @@
 ;
 ; RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 < %s | FileCheck %s
 
-define void @fun(i16 %arg0, i16* %src, i32* %dst) {
+define void @fun(i16 %arg0, ptr %src, ptr %dst) {
 ; CHECK-LABEL: fun:
 ; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    llhr %r0, %r2
@@ -25,13 +25,13 @@ define void @fun(i16 %arg0, i16* %src, i32* %dst) {
 bb:
   %tmp = icmp ult i16 %arg0, 9616
   %tmp1 = zext i1 %tmp to i32
-  %tmp2 = load i16, i16* %src
+  %tmp2 = load i16, ptr %src
   %0 = call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %tmp2, i16 -1)
   %math = extractvalue { i16, i1 } %0, 0
   %ov = extractvalue { i16, i1 } %0, 1
   %tmp5 = zext i1 %ov to i32
   %tmp6 = add nuw nsw i32 %tmp5, %tmp1
-  store i32 %tmp6, i32* %dst
+  store i32 %tmp6, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/dag-combine-06.ll b/llvm/test/CodeGen/SystemZ/dag-combine-06.ll
index beecbde0a9ad2..4f13d067fc4a2 100644
--- a/llvm/test/CodeGen/SystemZ/dag-combine-06.ll
+++ b/llvm/test/CodeGen/SystemZ/dag-combine-06.ll
@@ -4,7 +4,7 @@
 ; Test that DAGCombiner does not change the addressing as the displacements
 ; are known to be out of range. Only one addition is needed.
 
-define void @fun(<2 x i64>* %Src, <2 x i64>* %Dst) {
+define void @fun(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, 4096
@@ -13,17 +13,14 @@ define void @fun(<2 x i64>* %Src, <2 x i64>* %Dst) {
 ; CHECK-NEXT:    vl %v0, 16(%r2), 3
 ; CHECK-NEXT:    vst %v0, 0(%r3), 3
 ; CHECK-NEXT:    br %r14
-  %1 = bitcast <2 x i64>* %Src to i8*
 
-  %splitgep = getelementptr i8, i8* %1, i64 4096
-  %2 = bitcast i8* %splitgep to <2 x i64>*
-  %V0 = load <2 x i64>, <2 x i64>* %2, align 8
-  store volatile <2 x i64> %V0, <2 x i64>* %Dst, align 8
+  %splitgep = getelementptr i8, ptr %Src, i64 4096
+  %V0 = load <2 x i64>, ptr %splitgep, align 8
+  store volatile <2 x i64> %V0, ptr %Dst, align 8
 
-  %3 = getelementptr i8, i8* %splitgep, i64 16
-  %4 = bitcast i8* %3 to <2 x i64>*
-  %V1 = load <2 x i64>, <2 x i64>* %4, align 8
-  store volatile <2 x i64> %V1, <2 x i64>* %Dst, align 8
+  %1 = getelementptr i8, ptr %splitgep, i64 16
+  %V1 = load <2 x i64>, ptr %1, align 8
+  store volatile <2 x i64> %V1, ptr %Dst, align 8
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/elim-frame-index-VR.ll b/llvm/test/CodeGen/SystemZ/elim-frame-index-VR.ll
index 50a8ada39abe5..fed97e540cdbb 100644
--- a/llvm/test/CodeGen/SystemZ/elim-frame-index-VR.ll
+++ b/llvm/test/CodeGen/SystemZ/elim-frame-index-VR.ll
@@ -18,18 +18,18 @@ define void @f2(float %Arg) {
 ; CHECK: stey %f0, 4172(%r15)
 bb:
   %i = alloca [1000 x float]
-  %i2 = getelementptr inbounds [1000 x float], [1000 x float]* %i, i64 0, i64 999
+  %i2 = getelementptr inbounds [1000 x float], ptr %i, i64 0, i64 999
   br i1 undef, label %bb3, label %bb2
 
 bb2:
-  store float %Arg , float* %i2
+  store float %Arg , ptr %i2
   br label %bb3
 
 bb3:
   ret void
 }
 
-define void @f3(double* %Dst) {
+define void @f3(ptr %Dst) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: lay
 ; CHECK: ldy %f0, 4168(%r15)
@@ -38,17 +38,17 @@ bb:
   br i1 undef, label %bb3, label %bb2
 
 bb2:
-  %i12 = getelementptr inbounds [500 x double], [500 x double]* %i, i64 0, i64 499
-  %i13 = load double, double* %i12
+  %i12 = getelementptr inbounds [500 x double], ptr %i, i64 0, i64 499
+  %i13 = load double, ptr %i12
   %i14 = fdiv double %i13, 0.000000e+00
-  store double %i14, double* %Dst
+  store double %i14, ptr %Dst
   br label %bb3
 
 bb3:
   ret void
 }
 
-define void @f4(float* %Dst) {
+define void @f4(ptr %Dst) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: lay
 ; CHECK: ley %f0, 4172(%r15)
@@ -57,10 +57,10 @@ bb:
   br i1 undef, label %bb3, label %bb2
 
 bb2:
-  %i12 = getelementptr inbounds [1000 x float], [1000 x float]* %i, i64 0, i64 999
-  %i13 = load float, float* %i12
+  %i12 = getelementptr inbounds [1000 x float], ptr %i, i64 0, i64 999
+  %i13 = load float, ptr %i12
   %i14 = fdiv float %i13, 0.000000e+00
-  store float %i14, float* %Dst
+  store float %i14, ptr %Dst
   br label %bb3
 
 bb3:

diff  --git a/llvm/test/CodeGen/SystemZ/expand-zext-pseudo.ll b/llvm/test/CodeGen/SystemZ/expand-zext-pseudo.ll
index 1ee42885cb9c4..3610aa47bffc8 100644
--- a/llvm/test/CodeGen/SystemZ/expand-zext-pseudo.ll
+++ b/llvm/test/CodeGen/SystemZ/expand-zext-pseudo.ll
@@ -3,27 +3,26 @@
 ; Test that a def operand of super-reg is not dropped during post RA pseudo
 ; expansion in expandZExtPseudo().
 
-define void @fun_llvm_stress_reduced(i8*, i32*, i64*, i32) {
+define void @fun_llvm_stress_reduced(ptr, ptr, ptr, i32) {
 ; CHECK: .text
 BB:
   %A = alloca i32
-  %Sl24 = select i1 undef, i32* %1, i32* %1
-  %L26 = load i16, i16* undef
-  %L32 = load i32, i32* %Sl24
+  %Sl24 = select i1 undef, ptr %1, ptr %1
+  %L26 = load i16, ptr undef
+  %L32 = load i32, ptr %Sl24
   br label %CF847
 
 CF847:                                            ; preds = %CF878, %BB
-  %L61 = load i16, i16* undef
+  %L61 = load i16, ptr undef
   br label %CF878
 
 CF878:                                            ; preds = %CF847
-  %PC66 = bitcast i32* %Sl24 to double*
   %Sl67 = select i1 undef, <2 x i32> undef, <2 x i32> undef
   %Cmp68 = icmp ugt i32 undef, %3
   br i1 %Cmp68, label %CF847, label %CF863
 
 CF863:                                            ; preds = %CF878
-  %L84 = load i16, i16* undef
+  %L84 = load i16, ptr undef
   br label %CF825
 
 CF825:                                            ; preds = %CF825, %CF863
@@ -36,7 +35,6 @@ CF856:                                            ; preds = %CF856, %CF825
 
 CF875:                                            ; preds = %CF856
   %Shuff124 = shufflevector <2 x i32> undef, <2 x i32> undef, <2 x i32> <i32 1, i32 3>
-  %PC126 = bitcast i32* %A to i64*
   br label %CF827
 
 CF827:                                            ; preds = %CF923, %CF911, %CF875
@@ -52,13 +50,13 @@ CF867:                                            ; preds = %CF911
   br label %CF870
 
 CF870:                                            ; preds = %CF870, %CF867
-  store i8 0, i8* %0
+  store i8 0, ptr %0
   %FC176 = fptoui double undef to i1
   br i1 %FC176, label %CF870, label %CF923
 
 CF923:                                            ; preds = %CF870
-  %L179 = load i16, i16* undef
-  %Sl191 = select i1 undef, i64* %PC126, i64* %PC126
+  %L179 = load i16, ptr undef
+  %Sl191 = select i1 undef, ptr %A, ptr %A
   br i1 false, label %CF827, label %CF828
 
 CF828:                                            ; preds = %CF905, %CF923
@@ -76,24 +74,23 @@ CF829:                                            ; preds = %CF909, %CF829, %CF9
   br i1 undef, label %CF829, label %CF894
 
 CF894:                                            ; preds = %CF894, %CF829
-  store i64 %Sl142, i64* %Sl191
+  store i64 %Sl142, ptr %Sl191
   %Sl241 = select i1 %Cmp114, i1 false, i1 %Cmp215
   br i1 %Sl241, label %CF894, label %CF907
 
 CF907:                                            ; preds = %CF894
   %B247 = udiv i32 0, %E153
-  %PC248 = bitcast i64* %2 to i8*
   br label %CF909
 
 CF909:                                            ; preds = %CF907
-  store i1 %FC176, i1* undef
+  store i1 %FC176, ptr undef
   %Cmp263 = icmp ugt i1 undef, %Sl241
   br i1 %Cmp263, label %CF829, label %CF830
 
 CF830:                                            ; preds = %CF909
   %B304 = urem i16 %L84, %B205
   %I311 = insertelement <2 x i32> %Shuff124, i32 %B247, i32 1
-  store i8 0, i8* %0
+  store i8 0, ptr %0
   %Sl373 = select i1 %Cmp68, i32 0, i32 %E153
   br label %CF833
 
@@ -105,17 +102,17 @@ CF880:                                            ; preds = %CF833
   br i1 %Cmp412, label %CF833, label %CF865
 
 CF865:                                            ; preds = %CF880
-  store double 0.000000e+00, double* %PC66
+  store double 0.000000e+00, ptr %Sl24
   br label %CF860
 
 CF860:                                            ; preds = %CF860, %CF865
-  store i8 0, i8* %PC248
+  store i8 0, ptr %2
   %Cmp600 = icmp sge i32 %B148, undef
   br i1 %Cmp600, label %CF860, label %CF913
 
 CF913:                                            ; preds = %CF860
-  store i32 %E209, i32* undef
-  store i32 %Sl373, i32* undef
+  store i32 %E209, ptr undef
+  store i32 %Sl373, ptr undef
   %Cmp771 = icmp ule i32 undef, %L32
   br label %CF842
 

diff  --git a/llvm/test/CodeGen/SystemZ/extract-vector-elt-zEC12.ll b/llvm/test/CodeGen/SystemZ/extract-vector-elt-zEC12.ll
index 7bfe5ac8c1a54..f31f598a4afc2 100644
--- a/llvm/test/CodeGen/SystemZ/extract-vector-elt-zEC12.ll
+++ b/llvm/test/CodeGen/SystemZ/extract-vector-elt-zEC12.ll
@@ -2,10 +2,10 @@
 ;
 ; Test that <1 x i8> is legalized properly without vector support.
 
-define void @autogen_SD18500(i8*) {
+define void @autogen_SD18500(ptr) {
 ; CHECK: .text
 BB:
-  %L5 = load i8, i8* %0
+  %L5 = load i8, ptr %0
   %I22 = insertelement <1 x i8> undef, i8 %L5, i32 0
   %Cmp53 = icmp ule i1 undef, undef
   br label %CF244

diff  --git a/llvm/test/CodeGen/SystemZ/fentry-insertion.ll b/llvm/test/CodeGen/SystemZ/fentry-insertion.ll
index 63632d5824644..baa0357b10824 100644
--- a/llvm/test/CodeGen/SystemZ/fentry-insertion.ll
+++ b/llvm/test/CodeGen/SystemZ/fentry-insertion.ll
@@ -15,7 +15,7 @@ define void @test2() #1 {
 entry:
   br label %bb1
 bb1:
-  call void @address_taken(i64 ptrtoint (i8* blockaddress(@test2, %bb1) to i64), i32 512)
+  call void @address_taken(i64 ptrtoint (ptr blockaddress(@test2, %bb1) to i64), i32 512)
   ret void
 
 ; CHECK-LABEL: @test2

diff  --git a/llvm/test/CodeGen/SystemZ/fentry-no-reorder.ll b/llvm/test/CodeGen/SystemZ/fentry-no-reorder.ll
index f8a9409ed84ec..067664c24f179 100644
--- a/llvm/test/CodeGen/SystemZ/fentry-no-reorder.ll
+++ b/llvm/test/CodeGen/SystemZ/fentry-no-reorder.ll
@@ -5,11 +5,11 @@
 
 define dso_local void @clear_pawn_tt() local_unnamed_addr #0 {
 entry:
-  call void @llvm.memset.p0i8.i64(i8* nonnull align 2 dereferenceable(2048) getelementptr inbounds ([2048 x i8], [2048 x i8]* @PawnTT, i64 0, i64 0), i8 0, i64 2048, i1 false)
+  call void @llvm.memset.p0.i64(ptr nonnull align 2 dereferenceable(2048) @PawnTT, i8 0, i64 2048, i1 false)
   ret void
 }
 
-declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #1
+declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1
 
 attributes #0 = { nofree nounwind writeonly "fentry-call"="true" }
 attributes #1 = { argmemonly nofree nosync nounwind willreturn writeonly }

diff  --git a/llvm/test/CodeGen/SystemZ/fold-memory-op-impl.ll b/llvm/test/CodeGen/SystemZ/fold-memory-op-impl.ll
index dda4df90d1b95..21a1f99cabf3a 100644
--- a/llvm/test/CodeGen/SystemZ/fold-memory-op-impl.ll
+++ b/llvm/test/CodeGen/SystemZ/fold-memory-op-impl.ll
@@ -3,37 +3,37 @@
 ; Test that foldMemoryOperandImpl() doesn't drop subreg / read-undef flags.
 
 
-define void @fun_llvm_stress_reduced(i8*, i32*, i64*, i64, i8) {
+define void @fun_llvm_stress_reduced(ptr, ptr, ptr, i64, i8) {
 ; CHECK: .text
 BB:
   %A4 = alloca <4 x i64>
   %A1 = alloca <8 x i1>
   %E6 = extractelement <4 x i1> undef, i32 3
-  %L23 = load i8, i8* %0
+  %L23 = load i8, ptr %0
   %B27 = fmul double 0x59A989483BA7E0C6, undef
-  %L30 = load i16, i16* undef
-  store i16 -11933, i16* undef
-  %L46 = load i16, i16* undef
-  %L61 = load i16, i16* undef
+  %L30 = load i16, ptr undef
+  store i16 -11933, ptr undef
+  %L46 = load i16, ptr undef
+  %L61 = load i16, ptr undef
   %Sl74 = select i1 undef, i1 undef, i1 true
   br label %CF846
 
 CF846:                                            ; preds = %CF877, %BB
   %I86 = insertelement <4 x i1> undef, i1 undef, i32 0
   %Cmp89 = icmp ne i64 undef, %3
-  %L90 = load i16, i16* undef
+  %L90 = load i16, ptr undef
   %Shuff92 = shufflevector <4 x i16> zeroinitializer, <4 x i16> zeroinitializer, <4 x i32> <i32 0, i32 2, i32 undef, i32 6>
   br label %CF877
 
 CF877:                                            ; preds = %CF846
-  store i16 %L61, i16* undef
+  store i16 %L61, ptr undef
   %Cmp110 = icmp eq i16 %L61, undef
   br i1 %Cmp110, label %CF846, label %CF862
 
 CF862:                                            ; preds = %CF877
   %I114 = insertelement <4 x i64> zeroinitializer, i64 0, i32 0
   %B115 = shl <4 x i64> zeroinitializer, %I114
-  %Sl124 = select i1 true, <8 x i1>* %A1, <8 x i1>* %A1
+  %Sl124 = select i1 true, ptr %A1, ptr %A1
   %B130 = frem double %B27, 0x59A989483BA7E0C6
   %E143 = extractelement <4 x i64> %B115, i32 1
   %Sl148 = select i1 %Cmp89, <1 x i32> undef, <1 x i32> zeroinitializer
@@ -44,12 +44,11 @@ CF855:                                            ; preds = %CF855, %CF862
   br i1 %Sl171, label %CF855, label %CF874
 
 CF874:                                            ; preds = %CF855
-  %PC186 = bitcast i32* %1 to i16*
-  %L196 = load i16, i16* undef
+  %L196 = load i16, ptr undef
   %B207 = or i8 %4, %L23
-  %L211 = load <8 x i1>, <8 x i1>* %Sl124
+  %L211 = load <8 x i1>, ptr %Sl124
   %B215 = fdiv double 0x8421A9C0D21F6D3E, %B130
-  %L218 = load i16, i16* %PC186
+  %L218 = load i16, ptr %1
   %Sl223 = select i1 %Sl171, <4 x i1> %I86, <4 x i1> undef
   br label %CF826
 
@@ -58,17 +57,17 @@ CF826:                                            ; preds = %CF866, %CF910, %CF8
   br label %CF910
 
 CF910:                                            ; preds = %CF826
-  %L257 = load i8, i8* %0
+  %L257 = load i8, ptr %0
   %BC262 = bitcast i64 %E143 to double
-  store i16 %L196, i16* %PC186
+  store i16 %L196, ptr %1
   %E266 = extractelement <4 x i16> %Shuff92, i32 0
   %Sl271 = select i1 %Cmp89, i1 %Cmp89, i1 %Cmp110
   br i1 %Sl271, label %CF826, label %CF866
 
 CF866:                                            ; preds = %CF910
-  store i64 %E143, i64* %2
+  store i64 %E143, ptr %2
   %I276 = insertelement <4 x double> undef, double %BC262, i32 3
-  %L281 = load <8 x i1>, <8 x i1>* %Sl124
+  %L281 = load <8 x i1>, ptr %Sl124
   %E282 = extractelement <4 x i1> zeroinitializer, i32 2
   br i1 %E282, label %CF826, label %CF848
 
@@ -76,12 +75,11 @@ CF848:                                            ; preds = %CF866
   %Cmp288 = fcmp olt <4 x double> undef, %I276
   %FC294 = fptosi double undef to i16
   %Cmp296 = icmp ule i16 %FC294, %B245
-  store i16 %L218, i16* undef
-  store i8 %L23, i8* %0
+  store i16 %L218, ptr undef
+  store i8 %L23, ptr %0
   %E320 = extractelement <4 x i1> %Sl223, i32 1
-  %PC337 = bitcast <8 x i1>* %Sl124 to i1*
   %Cmp345 = icmp uge <1 x i32> undef, %Sl148
-  store i16 %L196, i16* %PC186
+  store i16 %L196, ptr %1
   br label %CF893
 
 CF893:                                            ; preds = %CF893, %CF848
@@ -89,7 +87,7 @@ CF893:                                            ; preds = %CF893, %CF848
   br i1 %Cmp361, label %CF893, label %CF906
 
 CF906:                                            ; preds = %CF893
-  store i16 -11933, i16* undef
+  store i16 -11933, ptr undef
   %Shuff379 = shufflevector <1 x i1> undef, <1 x i1> %Cmp345, <1 x i32> <i32 1>
   br label %CF850
 
@@ -97,26 +95,26 @@ CF850:                                            ; preds = %CF850, %CF906
   br i1 undef, label %CF850, label %CF925
 
 CF925:                                            ; preds = %CF850
-  store i16 %E266, i16* %PC186
+  store i16 %E266, ptr %1
   %Cmp413 = icmp ugt i8 %L257, undef
-  store i16 %L30, i16* %PC186
+  store i16 %L30, ptr %1
   %Sl420 = select i1 %Sl171, <8 x i1> undef, <8 x i1> %L281
-  store i16 %L90, i16* undef
+  store i16 %L90, ptr undef
   %FC469 = uitofp i1 %Cmp296 to float
-  store i1 %Cmp413, i1* %PC337
+  store i1 %Cmp413, ptr %Sl124
   br label %CF833
 
 CF833:                                            ; preds = %CF833, %CF925
-  store i8 %B207, i8* %0
+  store i8 %B207, ptr %0
   %E509 = extractelement <8 x i1> %L211, i32 7
   br i1 %E509, label %CF833, label %CF882
 
 CF882:                                            ; preds = %CF833
-  store i1 %Sl271, i1* %PC337
+  store i1 %Sl271, ptr %Sl124
   br label %CF852
 
 CF852:                                            ; preds = %CF896, %CF882
-  store i1 %Sl74, i1* %PC337
+  store i1 %Sl74, ptr %Sl124
   br label %CF896
 
 CF896:                                            ; preds = %CF852

diff  --git a/llvm/test/CodeGen/SystemZ/foldmemop-imm-01.ll b/llvm/test/CodeGen/SystemZ/foldmemop-imm-01.ll
index b799f33056445..76ea5504efdee 100644
--- a/llvm/test/CodeGen/SystemZ/foldmemop-imm-01.ll
+++ b/llvm/test/CodeGen/SystemZ/foldmemop-imm-01.ll
@@ -3,7 +3,7 @@
 ;
 ; Test folding of spilled immediate loads and compares.
 
-define i32 @fun0(i32 *%src, i32 %arg) nounwind {
+define i32 @fun0(ptr %src, i32 %arg) nounwind {
 ; CHECK-LABEL: fun0:
 ; CHECK: 	mvhi	160(%r15), 0            # 4-byte Folded Spill
 ; CHECK:	mvc	160(4,%r15), 0(%r2)     # 4-byte Folded Spill
@@ -15,7 +15,7 @@ entry:
   br i1 %cmp, label %cond, label %exit
 
 cond:
-  %val0 = load i32, i32 *%src
+  %val0 = load i32, ptr %src
   call void asm sideeffect "", "~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() nounwind
   br label %exit
 
@@ -29,7 +29,7 @@ exit:
   ret i32 %and0
 }
 
-define i64 @fun1(i64 *%src, i64 %arg) nounwind {
+define i64 @fun1(ptr %src, i64 %arg) nounwind {
 ; CHECK-LABEL: fun1:
 ; CHECK: 	mvghi	160(%r15), 0            # 8-byte Folded Spill
 ; CHECK:	mvc	160(8,%r15), 0(%r2)     # 8-byte Folded Spill
@@ -40,7 +40,7 @@ entry:
   br i1 %cmp, label %cond, label %exit
 
 cond:
-  %val0 = load i64, i64 *%src
+  %val0 = load i64, ptr %src
   call void asm sideeffect "", "~{r0},~{r1},~{r2},~{r3},~{r4},~{r5},~{r6},~{r7},~{r8},~{r9},~{r10},~{r11},~{r12},~{r13},~{r14},~{r15}"() nounwind
   br label %exit
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-abs-01.ll b/llvm/test/CodeGen/SystemZ/fp-abs-01.ll
index a69397b6607a9..bf0870a86702c 100644
--- a/llvm/test/CodeGen/SystemZ/fp-abs-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-abs-01.ll
@@ -27,15 +27,15 @@ define double @f2(double %f) {
 ; be better implemented using an NI on the upper byte.  Do some extra
 ; processing so that using FPRs is unequivocally better.
 declare fp128 @llvm.fabs.f128(fp128 %f)
-define void @f3(fp128 *%ptr, fp128 *%ptr2) {
+define void @f3(ptr %ptr, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK: lpxbr
 ; CHECK: dxbr
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
-  %op2 = load fp128, fp128 *%ptr2
+  %op2 = load fp128, ptr %ptr2
   %res = fdiv fp128 %abs, %op2
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-abs-02.ll b/llvm/test/CodeGen/SystemZ/fp-abs-02.ll
index 48be0498043d9..4266a893e8a3b 100644
--- a/llvm/test/CodeGen/SystemZ/fp-abs-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-abs-02.ll
@@ -29,16 +29,16 @@ define double @f2(double %f) {
 ; probably be better implemented using an OI on the upper byte.  Do some
 ; extra processing so that using FPRs is unequivocally better.
 declare fp128 @llvm.fabs.f128(fp128 %f)
-define void @f3(fp128 *%ptr, fp128 *%ptr2) {
+define void @f3(ptr %ptr, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK: lnxbr
 ; CHECK: dxbr
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
   %negabs = fneg fp128 %abs
-  %op2 = load fp128, fp128 *%ptr2
+  %op2 = load fp128, ptr %ptr2
   %res = fdiv fp128 %negabs, %op2
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-abs-03.ll b/llvm/test/CodeGen/SystemZ/fp-abs-03.ll
index d0584ef0ab22e..72786ea203df4 100644
--- a/llvm/test/CodeGen/SystemZ/fp-abs-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-abs-03.ll
@@ -26,7 +26,7 @@ define double @f2(double %f) {
 ; be better implemented using an NI on the upper byte.  Do some extra
 ; processing so that using FPRs is unequivocally better.
 declare fp128 @llvm.fabs.f128(fp128 %f)
-define void @f3(fp128 *%ptr, fp128 *%ptr2) {
+define void @f3(ptr %ptr, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -34,10 +34,10 @@ define void @f3(fp128 *%ptr, fp128 *%ptr2) {
 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[POSREG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
-  %op2 = load fp128, fp128 *%ptr2
+  %op2 = load fp128, ptr %ptr2
   %res = fdiv fp128 %abs, %op2
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-abs-04.ll b/llvm/test/CodeGen/SystemZ/fp-abs-04.ll
index 6ec22292fb2ca..b02abc8443491 100644
--- a/llvm/test/CodeGen/SystemZ/fp-abs-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-abs-04.ll
@@ -28,7 +28,7 @@ define double @f2(double %f) {
 ; probably be better implemented using an OI on the upper byte.  Do some
 ; extra processing so that using FPRs is unequivocally better.
 declare fp128 @llvm.fabs.f128(fp128 %f)
-define void @f3(fp128 *%ptr, fp128 *%ptr2) {
+define void @f3(ptr %ptr, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -36,11 +36,11 @@ define void @f3(fp128 *%ptr, fp128 *%ptr2) {
 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[NEGREG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %abs = call fp128 @llvm.fabs.f128(fp128 %orig)
   %negabs = fneg fp128 %abs
-  %op2 = load fp128, fp128 *%ptr2
+  %op2 = load fp128, ptr %ptr2
   %res = fdiv fp128 %negabs, %op2
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-add-01.ll b/llvm/test/CodeGen/SystemZ/fp-add-01.ll
index bb64701a66e01..f60fb8345b4a4 100644
--- a/llvm/test/CodeGen/SystemZ/fp-add-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-add-01.ll
@@ -16,92 +16,92 @@ define float @f1(float %f1, float %f2) {
 }
 
 ; Check the low end of the AEB range.
-define float @f2(float %f1, float *%ptr) {
+define float @f2(float %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = fadd float %f1, %f2
   ret float %res
 }
 
 ; Check the high end of the aligned AEB range.
-define float @f3(float %f1, float *%base) {
+define float @f3(float %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: aeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = fadd float %f1, %f2
   ret float %res
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) {
+define float @f4(float %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: aeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = fadd float %f1, %f2
   ret float %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) {
+define float @f5(float %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: aeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = fadd float %f1, %f2
   ret float %res
 }
 
 ; Check that AEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) {
+define float @f6(float %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: aeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = fadd float %f1, %f2
   ret float %res
 }
 
 ; Check that additions of spilled values can use AEB rather than AEBR.
-define float @f7(float *%ptr0) {
+define float @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: aeb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-add-02.ll b/llvm/test/CodeGen/SystemZ/fp-add-02.ll
index 14f40b8ebcb1d..bb12196fb848a 100644
--- a/llvm/test/CodeGen/SystemZ/fp-add-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-add-02.ll
@@ -15,92 +15,92 @@ define double @f1(double %f1, double %f2) {
 }
 
 ; Check the low end of the ADB range.
-define double @f2(double %f1, double *%ptr) {
+define double @f2(double %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: adb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = fadd double %f1, %f2
   ret double %res
 }
 
 ; Check the high end of the aligned ADB range.
-define double @f3(double %f1, double *%base) {
+define double @f3(double %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: adb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = fadd double %f1, %f2
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) {
+define double @f4(double %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: adb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = fadd double %f1, %f2
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) {
+define double @f5(double %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: adb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = fadd double %f1, %f2
   ret double %res
 }
 
 ; Check that ADB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) {
+define double @f6(double %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: adb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = fadd double %f1, %f2
   ret double %res
 }
 
 ; Check that additions of spilled values can use ADB rather than ADBR.
-define double @f7(double *%ptr0) {
+define double @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: adb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-add-03.ll b/llvm/test/CodeGen/SystemZ/fp-add-03.ll
index 108aae9e82ff0..7504d2349fe3f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-add-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-add-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; There is no memory form of 128-bit addition.
-define void @f1(fp128 *%ptr, float %f2) {
+define void @f1(ptr %ptr, float %f2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -12,9 +12,9 @@ define void @f1(fp128 *%ptr, float %f2) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = fpext float %f2 to fp128
   %sum = fadd fp128 %f1, %f2x
-  store fp128 %sum, fp128 *%ptr
+  store fp128 %sum, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-add-04.ll b/llvm/test/CodeGen/SystemZ/fp-add-04.ll
index 186f37ca51821..0b6435537d9fd 100644
--- a/llvm/test/CodeGen/SystemZ/fp-add-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-add-04.ll
@@ -2,16 +2,16 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) {
+define void @f1(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = fadd fp128 %f1, %f2
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll
index c0d384c5975c9..b2e680f16807e 100644
--- a/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-cmp-01.ll
@@ -22,29 +22,29 @@ define i64 @f1(i64 %a, i64 %b, float %f1, float %f2) {
 }
 
 ; Check the low end of the CEB range.
-define i64 @f2(i64 %a, i64 %b, float %f1, float *%ptr) {
+define i64 @f2(i64 %a, i64 %b, float %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %cond = fcmp oeq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check the high end of the aligned CEB range.
-define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) {
+define i64 @f3(i64 %a, i64 %b, float %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: ceb %f0, 4092(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %cond = fcmp oeq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
@@ -52,7 +52,7 @@ define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) {
+define i64 @f4(i64 %a, i64 %b, float %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r4, 4096
 ; CHECK: ceb %f0, 0(%r4)
@@ -60,15 +60,15 @@ define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %cond = fcmp oeq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) {
+define i64 @f5(i64 %a, i64 %b, float %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r4, -4
 ; CHECK: ceb %f0, 0(%r4)
@@ -76,15 +76,15 @@ define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %cond = fcmp oeq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check that CEB allows indices.
-define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) {
+define i64 @f6(i64 %a, i64 %b, float %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r5, 2
 ; CHECK: ceb %f0, 400(%r1,%r4)
@@ -92,42 +92,42 @@ define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %cond = fcmp oeq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check that comparisons of spilled values can use CEB rather than CEBR.
-define float @f7(float *%ptr0) {
+define float @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: ceb {{%f[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo()
 
@@ -173,168 +173,168 @@ define i64 @f8(i64 %a, i64 %b, float %f) {
 
 ; Check the comparison can be reversed if that allows CEB to be used,
 ; first with oeq.
-define i64 @f9(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f9(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp oeq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then one.
-define i64 @f10(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f10(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnlh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp one float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then olt.
-define i64 @f11(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f11(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp olt float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then ole.
-define i64 @f12(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f12(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bher %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnhe %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp ole float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then oge.
-define i64 @f13(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f13(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bler %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnle %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp oge float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then ogt.
-define i64 @f14(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f14(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp ogt float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then ueq.
-define i64 @f15(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f15(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnlhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrlh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp ueq float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then une.
-define i64 @f16(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f16(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bner %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgre %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp une float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then ult.
-define i64 @f17(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f17(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f17:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnler %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrle %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp ult float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then ule.
-define i64 @f18(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f18(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnlr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp ule float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then uge.
-define i64 @f19(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f19(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f19:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp uge float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; ...then ugt.
-define i64 @f20(i64 %a, i64 %b, float %f2, float *%ptr) {
+define i64 @f20(i64 %a, i64 %b, float %f2, ptr %ptr) {
 ; CHECK-LABEL: f20:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnher %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrhe %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = fcmp ugt float %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll
index 9151c4ca046f5..21acfce24e292 100644
--- a/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-cmp-02.ll
@@ -22,29 +22,29 @@ define i64 @f1(i64 %a, i64 %b, double %f1, double %f2) {
 }
 
 ; Check the low end of the CDB range.
-define i64 @f2(i64 %a, i64 %b, double %f1, double *%ptr) {
+define i64 @f2(i64 %a, i64 %b, double %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cdb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %cond = fcmp oeq double %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check the high end of the aligned CDB range.
-define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) {
+define i64 @f3(i64 %a, i64 %b, double %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: cdb %f0, 4088(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %cond = fcmp oeq double %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
@@ -52,7 +52,7 @@ define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) {
+define i64 @f4(i64 %a, i64 %b, double %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r4, 4096
 ; CHECK: cdb %f0, 0(%r4)
@@ -60,15 +60,15 @@ define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %cond = fcmp oeq double %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) {
+define i64 @f5(i64 %a, i64 %b, double %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r4, -8
 ; CHECK: cdb %f0, 0(%r4)
@@ -76,15 +76,15 @@ define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %cond = fcmp oeq double %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check that CDB allows indices.
-define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) {
+define i64 @f6(i64 %a, i64 %b, double %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r5, 3
 ; CHECK: cdb %f0, 800(%r1,%r4)
@@ -92,42 +92,42 @@ define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %cond = fcmp oeq double %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check that comparisons of spilled values can use CDB rather than CDBR.
-define double @f7(double *%ptr0) {
+define double @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: cdb {{%f[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo()
 
@@ -173,14 +173,14 @@ define i64 @f8(i64 %a, i64 %b, double %f) {
 }
 
 ; Check the comparison can be reversed if that allows CDB to be used,
-define i64 @f9(i64 %a, i64 %b, double %f2, double *%ptr) {
+define i64 @f9(i64 %a, i64 %b, double %f2, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cdb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load double, double *%ptr
+  %f1 = load double, ptr %ptr
   %cond = fcmp ogt double %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll
index 7a28e9e27ec18..b645a15060960 100644
--- a/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-cmp-03.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; There is no memory form of 128-bit comparison.
-define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) {
+define i64 @f1(i64 %a, i64 %b, ptr %ptr, float %f2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r4)
@@ -14,14 +14,14 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) {
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
   %f2x = fpext float %f2 to fp128
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %cond = fcmp oeq fp128 %f1, %f2x
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
 }
 
 ; Check comparison with zero.
-define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) {
+define i64 @f2(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: ld %f0, 0(%r4)
 ; CHECK: ld %f2, 8(%r4)
@@ -29,7 +29,7 @@ define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %cond = fcmp oeq fp128 %f, 0xL00000000000000000000000000000000
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-cmp-04.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-04.ll
index a0064f2fc8c71..f93b27f829f84 100644
--- a/llvm/test/CodeGen/SystemZ/fp-cmp-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-cmp-04.ll
@@ -6,7 +6,7 @@
 declare float @llvm.fabs.f32(float %f)
 
 ; Test addition followed by EQ, which can use the CC result of the addition.
-define float @f1(float %a, float %b, float *%dest) {
+define float @f1(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: ber %r14
@@ -17,7 +17,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -25,7 +25,7 @@ exit:
 }
 
 ; ...and again with LT.
-define float @f2(float %a, float %b, float *%dest) {
+define float @f2(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: blr %r14
@@ -36,7 +36,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -44,7 +44,7 @@ exit:
 }
 
 ; ...and again with GT.
-define float @f3(float %a, float %b, float *%dest) {
+define float @f3(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: bhr %r14
@@ -55,7 +55,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; ...and again with UEQ.
-define float @f4(float %a, float %b, float *%dest) {
+define float @f4(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: bnlhr %r14
@@ -74,7 +74,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -82,19 +82,19 @@ exit:
 }
 
 ; Subtraction also provides a zero-based CC value.
-define float @f5(float %a, float %b, float *%dest) {
+define float @f5(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK-NEXT: bnher %r14
 ; CHECK: br %r14
 entry:
-  %cur = load float, float *%dest
+  %cur = load float, ptr %dest
   %res = fsub float %a, %cur
   %cmp = fcmp ult float %res, 0.0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -102,7 +102,7 @@ exit:
 }
 
 ; Test the result of LOAD POSITIVE.
-define float @f6(float %dummy, float %a, float *%dest) {
+define float @f6(float %dummy, float %a, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: lpebr %f0, %f2
 ; CHECK-NEXT: bhr %r14
@@ -113,7 +113,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -121,7 +121,7 @@ exit:
 }
 
 ; Test the result of LOAD NEGATIVE.
-define float @f7(float %dummy, float %a, float *%dest) {
+define float @f7(float %dummy, float %a, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK: lnebr %f0, %f2
 ; CHECK-NEXT: blr %r14
@@ -133,7 +133,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -141,7 +141,7 @@ exit:
 }
 
 ; Test the result of LOAD COMPLEMENT.
-define float @f8(float %dummy, float %a, float *%dest) {
+define float @f8(float %dummy, float %a, ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK: lcebr %f0, %f2
 ; CHECK-NEXT: bler %r14
@@ -152,7 +152,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -160,7 +160,7 @@ exit:
 }
 
 ; Multiplication (for example) does not modify CC.
-define float @f9(float %a, float %b, float *%dest) {
+define float @f9(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: meebr %f0, %f2
 ; CHECK-NEXT: ltebr %f0, %f0
@@ -172,7 +172,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -181,7 +181,7 @@ exit:
 
 ; Test a combination involving a CC-setting instruction followed by
 ; a non-CC-setting instruction.
-define float @f10(float %a, float %b, float %c, float *%dest) {
+define float @f10(float %a, float %b, float %c, ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: debr %f0, %f4
@@ -195,7 +195,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -204,7 +204,7 @@ exit:
 
 ; Test a case where CC is set based on a 
diff erent register from the
 ; compare input.
-define float @f11(float %a, float %b, float %c, float *%dest1, float *%dest2) {
+define float @f11(float %a, float %b, float %c, ptr %dest1, ptr %dest2) {
 ; CHECK-LABEL: f11:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: sebr %f4, %f0
@@ -215,12 +215,12 @@ define float @f11(float %a, float %b, float %c, float *%dest1, float *%dest2) {
 entry:
   %add = fadd float %a, %b
   %sub = fsub float %c, %add
-  store float %sub, float *%dest1
+  store float %sub, ptr %dest1
   %cmp = fcmp oeq float %add, 0.0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %sub, float *%dest2
+  store float %sub, ptr %dest2
   br label %exit
 
 exit:
@@ -228,7 +228,7 @@ exit:
 }
 
 ; Test that LER gets converted to LTEBR where useful.
-define float @f12(float %dummy, float %val, float *%dest) {
+define float @f12(float %dummy, float %val, ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK: ltebr %f0, %f2
 ; CHECK-NEXT: #APP
@@ -242,7 +242,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %val, float *%dest
+  store float %val, ptr %dest
   br label %exit
 
 exit:
@@ -250,7 +250,7 @@ exit:
 }
 
 ; Test that LDR gets converted to LTDBR where useful.
-define double @f13(double %dummy, double %val, double *%dest) {
+define double @f13(double %dummy, double %val, ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK: ltdbr %f0, %f2
 ; CHECK-NEXT: #APP
@@ -264,7 +264,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store double %val, double *%dest
+  store double %val, ptr %dest
   br label %exit
 
 exit:
@@ -272,7 +272,7 @@ exit:
 }
 
 ; Test that LXR gets converted to LTXBR where useful.
-define void @f14(fp128 *%ptr1, fp128 *%ptr2) {
+define void @f14(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f14:
 ; CHECK: ltxbr
 ; CHECK-NEXT: dxbr
@@ -284,12 +284,12 @@ define void @f14(fp128 *%ptr1, fp128 *%ptr2) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val1 = load fp128, fp128 *%ptr1
-  %val2 = load fp128, fp128 *%ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %div = fdiv fp128 %val1, %val2
-  store fp128 %div, fp128 *%ptr1
+  store fp128 %div, ptr %ptr1
   %mul = fmul fp128 %val1, %val2
-  store fp128 %mul, fp128 *%ptr2
+  store fp128 %mul, ptr %ptr2
   %cmp = fcmp olt fp128 %val1, 0xL00000000000000000000000000000000
   br i1 %cmp, label %exit, label %store
 
@@ -303,7 +303,7 @@ exit:
 
 ; Test a case where it is the source rather than destination of LER that
 ; we need.
-define float @f15(float %val, float %dummy, float *%dest) {
+define float @f15(float %val, float %dummy, ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: ltebr %f2, %f0
 ; CHECK-NEXT: #APP
@@ -317,7 +317,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %val, float *%dest
+  store float %val, ptr %dest
   br label %exit
 
 exit:
@@ -326,7 +326,7 @@ exit:
 
 ; Test a case where it is the source rather than destination of LDR that
 ; we need.
-define double @f16(double %val, double %dummy, double *%dest) {
+define double @f16(double %val, double %dummy, ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: ltdbr %f2, %f0
 ; CHECK-NEXT: #APP
@@ -340,7 +340,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store double %val, double *%dest
+  store double %val, ptr %dest
   br label %exit
 
 exit:
@@ -348,7 +348,7 @@ exit:
 }
 
 ; Repeat f2 with a comparison against -0.
-define float @f17(float %a, float %b, float *%dest) {
+define float @f17(float %a, float %b, ptr %dest) {
 ; CHECK-LABEL: f17:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: blr %r14
@@ -359,7 +359,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -368,7 +368,7 @@ exit:
 
 ; Test another form of f7 in which the condition is based on the unnegated
 ; result.  This is what InstCombine would produce.
-define float @f18(float %dummy, float %a, float *%dest) {
+define float @f18(float %dummy, float %a, ptr %dest) {
 ; CHECK-LABEL: f18:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lnebr %f0, %f2
@@ -383,7 +383,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -391,7 +391,7 @@ exit:
 }
 
 ; Similarly for f8.
-define float @f19(float %dummy, float %a, float *%dest) {
+define float @f19(float %dummy, float %a, ptr %dest) {
 ; CHECK-LABEL: f19:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lcebr %f0, %f2
@@ -405,7 +405,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/fp-cmp-06.ll b/llvm/test/CodeGen/SystemZ/fp-cmp-06.ll
index e146b51e4fb27..784ad72076b06 100644
--- a/llvm/test/CodeGen/SystemZ/fp-cmp-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-cmp-06.ll
@@ -3,15 +3,15 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
 ; There is no memory form of 128-bit comparison.
-define i64 @f1(i64 %a, i64 %b, fp128 *%ptr1, fp128 *%ptr2) {
+define i64 @f1(i64 %a, i64 %b, ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r4)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r5)
 ; CHECK: wfcxb [[REG1]], [[REG2]]
 ; CHECK-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %cond = fcmp oeq fp128 %f1, %f2
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res
@@ -19,14 +19,14 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr1, fp128 *%ptr2) {
 
 ; Check comparison with zero -- it is not worthwhile to copy to
 ; FP pairs just so we can use LTXBR, so simply load up a zero.
-define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) {
+define i64 @f2(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r4)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfcxb [[REG1]], [[REG2]]
 ; CHECK-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %cond = fcmp oeq fp128 %f, 0xL00000000000000000000000000000000
   %res = select i1 %cond, i64 %a, i64 %b
   ret i64 %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-01.ll b/llvm/test/CodeGen/SystemZ/fp-const-01.ll
index 3a4ddf087803e..fe0e63df4ae6a 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-01.ll
@@ -19,12 +19,12 @@ define double @f2() {
 }
 
 ; Test f128.
-define void @f3(fp128 *%x) {
+define void @f3(ptr %x) {
 ; CHECK-LABEL: f3:
 ; CHECK: lzxr %f0
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  store fp128 0xL00000000000000000000000000000000, fp128 *%x
+  store fp128 0xL00000000000000000000000000000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-02.ll b/llvm/test/CodeGen/SystemZ/fp-const-02.ll
index 942465c066009..fd83413d73838 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-02.ll
@@ -21,11 +21,11 @@ define double @f2() {
 }
 
 ; Test f128.
-define void @f3(fp128 *%x) {
+define void @f3(ptr %x) {
 ; CHECK-LABEL: f3:
 ; CHECK: lzxr [[REGISTER:%f[0-5]+]]
 ; CHECK: lcxbr %f0, [[REGISTER]]
 ; CHECK: br %r14
-  store fp128 0xL00000000000000008000000000000000, fp128 *%x
+  store fp128 0xL00000000000000008000000000000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-05.ll b/llvm/test/CodeGen/SystemZ/fp-const-05.ll
index c7e3d124a37c5..63d2033742615 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-05.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-05.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CONST
 
-define void @f1(fp128 *%x) {
+define void @f1(ptr %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: larl [[REGISTER:%r[1-5]+]], {{.*}}
 ; CHECK: lxeb %f0, 0([[REGISTER]])
@@ -13,6 +13,6 @@ define void @f1(fp128 *%x) {
 ; CHECK: br %r14
 ;
 ; CONST: .long 0x3f800001
-  store fp128 0xL00000000000000003fff000002000000, fp128 *%x
+  store fp128 0xL00000000000000003fff000002000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-07.ll b/llvm/test/CodeGen/SystemZ/fp-const-07.ll
index 85f50b5a75aba..f99fa9b71fdf2 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-07.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-07.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CONST
 
-define void @f1(fp128 *%x) {
+define void @f1(ptr %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: larl [[REGISTER:%r[1-5]+]], {{.*}}
 ; CHECK: lxdb %f0, 0([[REGISTER]])
@@ -13,6 +13,6 @@ define void @f1(fp128 *%x) {
 ; CHECK: br %r14
 ;
 ; CONST: .quad 0x3ff0000010000000
-  store fp128 0xL00000000000000003fff000001000000, fp128 *%x
+  store fp128 0xL00000000000000003fff000001000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-08.ll b/llvm/test/CodeGen/SystemZ/fp-const-08.ll
index 5ae94cd116f1e..e146cf9e27664 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-08.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-08.ll
@@ -5,7 +5,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CONST
 
-define void @f1(fp128 *%x) {
+define void @f1(ptr %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: larl [[REGISTER:%r[1-5]+]], {{.*}}
 ; CHECK: ld %f0, 0([[REGISTER]])
@@ -16,6 +16,6 @@ define void @f1(fp128 *%x) {
 ;
 ; CONST: .quad 0x3fff000000000000
 ; CONST: .quad 0x0800000000000000
-  store fp128 0xL08000000000000003fff000000000000, fp128 *%x
+  store fp128 0xL08000000000000003fff000000000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-09.ll b/llvm/test/CodeGen/SystemZ/fp-const-09.ll
index 940c2c5db4df1..a3b4cd6d8ee77 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-09.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-09.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s -check-prefix=CONST
 
-define void @f1(fp128 *%x) {
+define void @f1(ptr %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: larl [[REGISTER:%r[1-5]+]], {{.*}}
 ; CHECK: ld %f0, 0([[REGISTER]])
@@ -15,6 +15,6 @@ define void @f1(fp128 *%x) {
 ;
 ; CONST: .quad 0x3fff000000000000
 ; CONST: .quad 0x0000000000000001
-  store fp128 0xL00000000000000013fff000000000000, fp128 *%x
+  store fp128 0xL00000000000000013fff000000000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-const-11.ll b/llvm/test/CodeGen/SystemZ/fp-const-11.ll
index 7ca225e6f1c5b..f64129d71fede 100644
--- a/llvm/test/CodeGen/SystemZ/fp-const-11.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-const-11.ll
@@ -4,30 +4,30 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s -check-prefix=CONST
 
 ; Test loading zero.
-define void @f1(fp128 *%x) {
+define void @f1(ptr %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: vzero [[REG:%v[0-9]+]]
 ; CHECK: vst [[REG]], 0(%r2)
 ; CHECK: br %r14
-  store fp128 0xL00000000000000000000000000000000, fp128 *%x
+  store fp128 0xL00000000000000000000000000000000, ptr %x
   ret void
 }
 
 ; Test loading of negative floating-point zero.
-define void @f2(fp128 *%x) {
+define void @f2(ptr %x) {
 ; CHECK-LABEL: f2:
 ; CHECK: vzero [[REG:%v[0-9]+]]
 ; CHECK: wflnxb [[REG]], [[REG]]
 ; CHECK: vst [[REG]], 0(%r2)
 ; CHECK: br %r14
-  store fp128 0xL00000000000000008000000000000000, fp128 *%x
+  store fp128 0xL00000000000000008000000000000000, ptr %x
   ret void
 }
 
 ; Test loading of a 128-bit floating-point constant.  This value would
 ; actually fit within the 32-bit format, but we don't have extending
 ; loads into vector registers.
-define void @f3(fp128 *%x) {
+define void @f3(ptr %x) {
 ; CHECK-LABEL: f3:
 ; CHECK: larl [[REGISTER:%r[1-5]+]], {{.*}}
 ; CHECK: vl [[REG:%v[0-9]+]], 0([[REGISTER]])
@@ -35,36 +35,36 @@ define void @f3(fp128 *%x) {
 ; CHECK: br %r14
 ; CONST: .quad 0x3fff000002000000
 ; CONST: .quad 0x0
-  store fp128 0xL00000000000000003fff000002000000, fp128 *%x
+  store fp128 0xL00000000000000003fff000002000000, ptr %x
   ret void
 }
 
 ; Test that VGBM works.
-define void @f4(fp128 *%x) {
+define void @f4(ptr %x) {
 ; CHECK-LABEL: f4:
 ; CHECK:      vgbm %v0, 21845
 ; CHECK-NEXT: vst %v0, 0(%r2)
 ; CHECK-NEXT: br %r14
-  store fp128 0xL00ff00ff00ff00ff00ff00ff00ff00ff, fp128 *%x
+  store fp128 0xL00ff00ff00ff00ff00ff00ff00ff00ff, ptr %x
   ret void
 }
 
 ; Test that VREPI works.
-define void @f5(fp128 *%x) {
+define void @f5(ptr %x) {
 ; CHECK-LABEL: f5:
 ; CHECK:      vrepib  %v0, -8
 ; CHECK-NEXT: vst %v0, 0(%r2)
 ; CHECK-NEXT: br %r14
-  store fp128 0xLf8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8, fp128 *%x
+  store fp128 0xLf8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8, ptr %x
   ret void
 }
 
 ; Test that VGM works.
-define void @f6(fp128 *%x) {
+define void @f6(ptr %x) {
 ; CHECK-LABEL: f6:
 ; CHECK:      vgmg %v0, 12, 31
 ; CHECK-NEXT: vst %v0, 0(%r2)
 ; CHECK-NEXT: br %r14
-  store fp128 0xL000fffff00000000000fffff00000000, fp128 *%x
+  store fp128 0xL000fffff00000000000fffff00000000, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-01.ll b/llvm/test/CodeGen/SystemZ/fp-conv-01.ll
index 9be48ce1e4d3a..eef3aa7f560db 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-01.ll
@@ -16,42 +16,42 @@ define float @f1(double %d1, double %d2) {
 }
 
 ; Test f128->f32.
-define float @f2(fp128 *%ptr) {
+define float @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: lexbr %f0, %f0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = fptrunc fp128 %val to float
   ret float %res
 }
 
 ; Make sure that we don't use %f0 as the destination of LEXBR when %f2
 ; is still live.
-define void @f3(float *%dst, fp128 *%ptr, float %d1, float %d2) {
+define void @f3(ptr %dst, ptr %ptr, float %d1, float %d2) {
 ; CHECK-LABEL: f3:
 ; CHECK: lexbr %f1, %f1
 ; CHECK: aebr %f1, %f2
 ; CHECK: ste %f1, 0(%r2)
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %conv = fptrunc fp128 %val to float
   %res = fadd float %conv, %d2
-  store float %res, float *%dst
+  store float %res, ptr %dst
   ret void
 }
 
 ; Test f128->f64.
-define double @f4(fp128 *%ptr) {
+define double @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: ldxbr %f0, %f0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = fptrunc fp128 %val to double
   ret double %res
 }
 
 ; Like f3, but for f128->f64.
-define void @f5(double *%dst, fp128 *%ptr, double %d1, double %d2) {
+define void @f5(ptr %dst, ptr %ptr, double %d1, double %d2) {
 ; CHECK-LABEL: f5:
 ; CHECK: ldxbr %f1, %f1
 ; CHECK-SCALAR: adbr %f1, %f2
@@ -59,9 +59,9 @@ define void @f5(double *%dst, fp128 *%ptr, double %d1, double %d2) {
 ; CHECK-VECTOR: wfadb [[REG:%f[0-9]+]], %f1, %f2
 ; CHECK-VECTOR: std [[REG]], 0(%r2)
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %conv = fptrunc fp128 %val to double
   %res = fadd double %conv, %d2
-  store double %res, double *%dst
+  store double %res, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-02.ll b/llvm/test/CodeGen/SystemZ/fp-conv-02.ll
index 9d975184c3a7b..6be34b5596dab 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-02.ll
@@ -17,65 +17,65 @@ define double @f1(float %val) {
 }
 
 ; Check the low end of the LDEB range.
-define double @f2(float *%ptr) {
+define double @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    ldeb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %res = fpext float %val to double
   ret double %res
 }
 
 ; Check the high end of the aligned LDEB range.
-define double @f3(float *%base) {
+define double @f3(ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    ldeb %f0, 4092(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %val = load float, ptr %ptr
   %res = fpext float %val to double
   ret double %res
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(float *%base) {
+define double @f4(ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, 4096
 ; CHECK-NEXT:    ldeb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %val = load float, ptr %ptr
   %res = fpext float %val to double
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(float *%base) {
+define double @f5(ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, -4
 ; CHECK-NEXT:    ldeb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %val = load float, ptr %ptr
   %res = fpext float %val to double
   ret double %res
 }
 
 ; Check that LDEB allows indices.
-define double @f6(float *%base, i64 %index) {
+define double @f6(ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sllg %r1, %r3, 2
 ; CHECK-NEXT:    ldeb %f0, 400(%r1,%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %val = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %val = load float, ptr %ptr2
   %res = fpext float %val to double
   ret double %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-03.ll b/llvm/test/CodeGen/SystemZ/fp-conv-03.ll
index ae99535cb70bb..a24183fbda4ea 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-03.ll
@@ -3,114 +3,114 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check register extension.
-define void @f1(fp128 *%dst, float %val) {
+define void @f1(ptr %dst, float %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: lxebr %f0, %f0
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the LXEB range.
-define void @f2(fp128 *%dst, float *%ptr) {
+define void @f2(ptr %dst, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: lxeb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned LXEB range.
-define void @f3(fp128 *%dst, float *%base) {
+define void @f3(ptr %dst, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: lxeb %f0, 4092(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %val = load float, ptr %ptr
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(fp128 *%dst, float *%base) {
+define void @f4(ptr %dst, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r3, 4096
 ; CHECK: lxeb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %val = load float, ptr %ptr
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check negative displacements, which also need separate address logic.
-define void @f5(fp128 *%dst, float *%base) {
+define void @f5(ptr %dst, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r3, -4
 ; CHECK: lxeb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %val = load float, ptr %ptr
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that LXEB allows indices.
-define void @f6(fp128 *%dst, float *%base, i64 %index) {
+define void @f6(ptr %dst, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r4, 2
 ; CHECK: lxeb %f0, 400(%r1,%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %val = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %val = load float, ptr %ptr2
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test a case where we spill the source of at least one LXEBR.  We want
 ; to use LXEB if possible.
-define void @f7(fp128 *%ptr1, float *%ptr2) {
+define void @f7(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f7:
 ; CHECK: lxeb {{%f[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile float, float *%ptr2
-  %val1 = load volatile float, float *%ptr2
-  %val2 = load volatile float, float *%ptr2
-  %val3 = load volatile float, float *%ptr2
-  %val4 = load volatile float, float *%ptr2
-  %val5 = load volatile float, float *%ptr2
-  %val6 = load volatile float, float *%ptr2
-  %val7 = load volatile float, float *%ptr2
-  %val8 = load volatile float, float *%ptr2
-  %val9 = load volatile float, float *%ptr2
-  %val10 = load volatile float, float *%ptr2
-  %val11 = load volatile float, float *%ptr2
-  %val12 = load volatile float, float *%ptr2
-  %val13 = load volatile float, float *%ptr2
-  %val14 = load volatile float, float *%ptr2
-  %val15 = load volatile float, float *%ptr2
-  %val16 = load volatile float, float *%ptr2
+  %val0 = load volatile float, ptr %ptr2
+  %val1 = load volatile float, ptr %ptr2
+  %val2 = load volatile float, ptr %ptr2
+  %val3 = load volatile float, ptr %ptr2
+  %val4 = load volatile float, ptr %ptr2
+  %val5 = load volatile float, ptr %ptr2
+  %val6 = load volatile float, ptr %ptr2
+  %val7 = load volatile float, ptr %ptr2
+  %val8 = load volatile float, ptr %ptr2
+  %val9 = load volatile float, ptr %ptr2
+  %val10 = load volatile float, ptr %ptr2
+  %val11 = load volatile float, ptr %ptr2
+  %val12 = load volatile float, ptr %ptr2
+  %val13 = load volatile float, ptr %ptr2
+  %val14 = load volatile float, ptr %ptr2
+  %val15 = load volatile float, ptr %ptr2
+  %val16 = load volatile float, ptr %ptr2
 
   %ext0 = fpext float %val0 to fp128
   %ext1 = fpext float %val1 to fp128
@@ -130,41 +130,41 @@ define void @f7(fp128 *%ptr1, float *%ptr2) {
   %ext15 = fpext float %val15 to fp128
   %ext16 = fpext float %val16 to fp128
 
-  store volatile float %val0, float *%ptr2
-  store volatile float %val1, float *%ptr2
-  store volatile float %val2, float *%ptr2
-  store volatile float %val3, float *%ptr2
-  store volatile float %val4, float *%ptr2
-  store volatile float %val5, float *%ptr2
-  store volatile float %val6, float *%ptr2
-  store volatile float %val7, float *%ptr2
-  store volatile float %val8, float *%ptr2
-  store volatile float %val9, float *%ptr2
-  store volatile float %val10, float *%ptr2
-  store volatile float %val11, float *%ptr2
-  store volatile float %val12, float *%ptr2
-  store volatile float %val13, float *%ptr2
-  store volatile float %val14, float *%ptr2
-  store volatile float %val15, float *%ptr2
-  store volatile float %val16, float *%ptr2
+  store volatile float %val0, ptr %ptr2
+  store volatile float %val1, ptr %ptr2
+  store volatile float %val2, ptr %ptr2
+  store volatile float %val3, ptr %ptr2
+  store volatile float %val4, ptr %ptr2
+  store volatile float %val5, ptr %ptr2
+  store volatile float %val6, ptr %ptr2
+  store volatile float %val7, ptr %ptr2
+  store volatile float %val8, ptr %ptr2
+  store volatile float %val9, ptr %ptr2
+  store volatile float %val10, ptr %ptr2
+  store volatile float %val11, ptr %ptr2
+  store volatile float %val12, ptr %ptr2
+  store volatile float %val13, ptr %ptr2
+  store volatile float %val14, ptr %ptr2
+  store volatile float %val15, ptr %ptr2
+  store volatile float %val16, ptr %ptr2
 
-  store volatile fp128 %ext0, fp128 *%ptr1
-  store volatile fp128 %ext1, fp128 *%ptr1
-  store volatile fp128 %ext2, fp128 *%ptr1
-  store volatile fp128 %ext3, fp128 *%ptr1
-  store volatile fp128 %ext4, fp128 *%ptr1
-  store volatile fp128 %ext5, fp128 *%ptr1
-  store volatile fp128 %ext6, fp128 *%ptr1
-  store volatile fp128 %ext7, fp128 *%ptr1
-  store volatile fp128 %ext8, fp128 *%ptr1
-  store volatile fp128 %ext9, fp128 *%ptr1
-  store volatile fp128 %ext10, fp128 *%ptr1
-  store volatile fp128 %ext11, fp128 *%ptr1
-  store volatile fp128 %ext12, fp128 *%ptr1
-  store volatile fp128 %ext13, fp128 *%ptr1
-  store volatile fp128 %ext14, fp128 *%ptr1
-  store volatile fp128 %ext15, fp128 *%ptr1
-  store volatile fp128 %ext16, fp128 *%ptr1
+  store volatile fp128 %ext0, ptr %ptr1
+  store volatile fp128 %ext1, ptr %ptr1
+  store volatile fp128 %ext2, ptr %ptr1
+  store volatile fp128 %ext3, ptr %ptr1
+  store volatile fp128 %ext4, ptr %ptr1
+  store volatile fp128 %ext5, ptr %ptr1
+  store volatile fp128 %ext6, ptr %ptr1
+  store volatile fp128 %ext7, ptr %ptr1
+  store volatile fp128 %ext8, ptr %ptr1
+  store volatile fp128 %ext9, ptr %ptr1
+  store volatile fp128 %ext10, ptr %ptr1
+  store volatile fp128 %ext11, ptr %ptr1
+  store volatile fp128 %ext12, ptr %ptr1
+  store volatile fp128 %ext13, ptr %ptr1
+  store volatile fp128 %ext14, ptr %ptr1
+  store volatile fp128 %ext15, ptr %ptr1
+  store volatile fp128 %ext16, ptr %ptr1
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-04.ll b/llvm/test/CodeGen/SystemZ/fp-conv-04.ll
index 99bf618c7e89b..76ad87cc7caad 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-04.ll
@@ -3,114 +3,114 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check register extension.
-define void @f1(fp128 *%dst, double %val) {
+define void @f1(ptr %dst, double %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: lxdbr %f0, %f0
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the LXDB range.
-define void @f2(fp128 *%dst, double *%ptr) {
+define void @f2(ptr %dst, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: lxdb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned LXDB range.
-define void @f3(fp128 *%dst, double *%base) {
+define void @f3(ptr %dst, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: lxdb %f0, 4088(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %val = load double, ptr %ptr
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(fp128 *%dst, double *%base) {
+define void @f4(ptr %dst, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r3, 4096
 ; CHECK: lxdb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %val = load double, ptr %ptr
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check negative displacements, which also need separate address logic.
-define void @f5(fp128 *%dst, double *%base) {
+define void @f5(ptr %dst, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r3, -8
 ; CHECK: lxdb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %val = load double, ptr %ptr
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that LXDB allows indices.
-define void @f6(fp128 *%dst, double *%base, i64 %index) {
+define void @f6(ptr %dst, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r4, 3
 ; CHECK: lxdb %f0, 800(%r1,%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %val = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %val = load double, ptr %ptr2
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test a case where we spill the source of at least one LXDBR.  We want
 ; to use LXDB if possible.
-define void @f7(fp128 *%ptr1, double *%ptr2) {
+define void @f7(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f7:
 ; CHECK: lxdb {{%f[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile double, double *%ptr2
-  %val1 = load volatile double, double *%ptr2
-  %val2 = load volatile double, double *%ptr2
-  %val3 = load volatile double, double *%ptr2
-  %val4 = load volatile double, double *%ptr2
-  %val5 = load volatile double, double *%ptr2
-  %val6 = load volatile double, double *%ptr2
-  %val7 = load volatile double, double *%ptr2
-  %val8 = load volatile double, double *%ptr2
-  %val9 = load volatile double, double *%ptr2
-  %val10 = load volatile double, double *%ptr2
-  %val11 = load volatile double, double *%ptr2
-  %val12 = load volatile double, double *%ptr2
-  %val13 = load volatile double, double *%ptr2
-  %val14 = load volatile double, double *%ptr2
-  %val15 = load volatile double, double *%ptr2
-  %val16 = load volatile double, double *%ptr2
+  %val0 = load volatile double, ptr %ptr2
+  %val1 = load volatile double, ptr %ptr2
+  %val2 = load volatile double, ptr %ptr2
+  %val3 = load volatile double, ptr %ptr2
+  %val4 = load volatile double, ptr %ptr2
+  %val5 = load volatile double, ptr %ptr2
+  %val6 = load volatile double, ptr %ptr2
+  %val7 = load volatile double, ptr %ptr2
+  %val8 = load volatile double, ptr %ptr2
+  %val9 = load volatile double, ptr %ptr2
+  %val10 = load volatile double, ptr %ptr2
+  %val11 = load volatile double, ptr %ptr2
+  %val12 = load volatile double, ptr %ptr2
+  %val13 = load volatile double, ptr %ptr2
+  %val14 = load volatile double, ptr %ptr2
+  %val15 = load volatile double, ptr %ptr2
+  %val16 = load volatile double, ptr %ptr2
 
   %ext0 = fpext double %val0 to fp128
   %ext1 = fpext double %val1 to fp128
@@ -130,41 +130,41 @@ define void @f7(fp128 *%ptr1, double *%ptr2) {
   %ext15 = fpext double %val15 to fp128
   %ext16 = fpext double %val16 to fp128
 
-  store volatile double %val0, double *%ptr2
-  store volatile double %val1, double *%ptr2
-  store volatile double %val2, double *%ptr2
-  store volatile double %val3, double *%ptr2
-  store volatile double %val4, double *%ptr2
-  store volatile double %val5, double *%ptr2
-  store volatile double %val6, double *%ptr2
-  store volatile double %val7, double *%ptr2
-  store volatile double %val8, double *%ptr2
-  store volatile double %val9, double *%ptr2
-  store volatile double %val10, double *%ptr2
-  store volatile double %val11, double *%ptr2
-  store volatile double %val12, double *%ptr2
-  store volatile double %val13, double *%ptr2
-  store volatile double %val14, double *%ptr2
-  store volatile double %val15, double *%ptr2
-  store volatile double %val16, double *%ptr2
+  store volatile double %val0, ptr %ptr2
+  store volatile double %val1, ptr %ptr2
+  store volatile double %val2, ptr %ptr2
+  store volatile double %val3, ptr %ptr2
+  store volatile double %val4, ptr %ptr2
+  store volatile double %val5, ptr %ptr2
+  store volatile double %val6, ptr %ptr2
+  store volatile double %val7, ptr %ptr2
+  store volatile double %val8, ptr %ptr2
+  store volatile double %val9, ptr %ptr2
+  store volatile double %val10, ptr %ptr2
+  store volatile double %val11, ptr %ptr2
+  store volatile double %val12, ptr %ptr2
+  store volatile double %val13, ptr %ptr2
+  store volatile double %val14, ptr %ptr2
+  store volatile double %val15, ptr %ptr2
+  store volatile double %val16, ptr %ptr2
 
-  store volatile fp128 %ext0, fp128 *%ptr1
-  store volatile fp128 %ext1, fp128 *%ptr1
-  store volatile fp128 %ext2, fp128 *%ptr1
-  store volatile fp128 %ext3, fp128 *%ptr1
-  store volatile fp128 %ext4, fp128 *%ptr1
-  store volatile fp128 %ext5, fp128 *%ptr1
-  store volatile fp128 %ext6, fp128 *%ptr1
-  store volatile fp128 %ext7, fp128 *%ptr1
-  store volatile fp128 %ext8, fp128 *%ptr1
-  store volatile fp128 %ext9, fp128 *%ptr1
-  store volatile fp128 %ext10, fp128 *%ptr1
-  store volatile fp128 %ext11, fp128 *%ptr1
-  store volatile fp128 %ext12, fp128 *%ptr1
-  store volatile fp128 %ext13, fp128 *%ptr1
-  store volatile fp128 %ext14, fp128 *%ptr1
-  store volatile fp128 %ext15, fp128 *%ptr1
-  store volatile fp128 %ext16, fp128 *%ptr1
+  store volatile fp128 %ext0, ptr %ptr1
+  store volatile fp128 %ext1, ptr %ptr1
+  store volatile fp128 %ext2, ptr %ptr1
+  store volatile fp128 %ext3, ptr %ptr1
+  store volatile fp128 %ext4, ptr %ptr1
+  store volatile fp128 %ext5, ptr %ptr1
+  store volatile fp128 %ext6, ptr %ptr1
+  store volatile fp128 %ext7, ptr %ptr1
+  store volatile fp128 %ext8, ptr %ptr1
+  store volatile fp128 %ext9, ptr %ptr1
+  store volatile fp128 %ext10, ptr %ptr1
+  store volatile fp128 %ext11, ptr %ptr1
+  store volatile fp128 %ext12, ptr %ptr1
+  store volatile fp128 %ext13, ptr %ptr1
+  store volatile fp128 %ext14, ptr %ptr1
+  store volatile fp128 %ext15, ptr %ptr1
+  store volatile fp128 %ext16, ptr %ptr1
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-05.ll b/llvm/test/CodeGen/SystemZ/fp-conv-05.ll
index deeffbf30c0ed..4596649d5659c 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-05.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-05.ll
@@ -21,13 +21,13 @@ define double @f2(i32 %i) {
 }
 
 ; Check i32->f128.
-define void @f3(i32 %i, fp128 *%dst) {
+define void @f3(i32 %i, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: cxfbr %f0, %r2
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
   %conv = sitofp i32 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-06.ll b/llvm/test/CodeGen/SystemZ/fp-conv-06.ll
index 8a3971a9929cb..e754a7e161f8f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-06.ll
@@ -24,7 +24,7 @@ define double @f2(i32 %i) {
 }
 
 ; Check i32->f128.
-define void @f3(i32 %i, fp128 *%dst) {
+define void @f3(i32 %i, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: llgfr [[REGISTER:%r[0-5]]], %r2
 ; CHECK: cxgbr %f0, [[REGISTER]]
@@ -32,6 +32,6 @@ define void @f3(i32 %i, fp128 *%dst) {
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
   %conv = uitofp i32 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-07.ll b/llvm/test/CodeGen/SystemZ/fp-conv-07.ll
index aba5c4c0195d0..2941e77441461 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-07.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-07.ll
@@ -21,13 +21,13 @@ define double @f2(i64 %i) {
 }
 
 ; Test i64->f128.
-define void @f3(i64 %i, fp128 *%dst) {
+define void @f3(i64 %i, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: cxgbr %f0, %r2
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
   %conv = sitofp i64 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-08.ll b/llvm/test/CodeGen/SystemZ/fp-conv-08.ll
index 295ce8bdbe2ce..e2a5f74185216 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-08.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-08.ll
@@ -24,12 +24,12 @@ define double @f2(i64 %i) {
 }
 
 ; Test i64->f128.
-define void @f3(i64 %i, fp128 *%dst) {
+define void @f3(i64 %i, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: cxgbr
 ; CHECK: axbr
 ; CHECK: br %r14
   %conv = uitofp i64 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-09.ll b/llvm/test/CodeGen/SystemZ/fp-conv-09.ll
index 97cb3e7faeef3..0e730c3705030 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-09.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-09.ll
@@ -21,13 +21,13 @@ define i32 @f2(double %f) {
 }
 
 ; Test f128->i32.
-define i32 @f3(fp128 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
 ; CHECK: cfxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptosi fp128 %f to i32
   ret i32 %conv
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-10.ll b/llvm/test/CodeGen/SystemZ/fp-conv-10.ll
index d94ac8bf99939..82913265853a5 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-10.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-10.ll
@@ -49,7 +49,7 @@ define i32 @f2(double %f) {
 }
 
 ; Test f128->i32.
-define i32 @f3(fp128 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    ld %f0, 0(%r2)
@@ -66,7 +66,7 @@ define i32 @f3(fp128 *%src) {
 ; CHECK-NEXT:    cfxbr %r2, 5, %f0
 ; CHECK-NEXT:    xilf %r2, 2147483648
 ; CHECK-NEXT:    br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptoui fp128 %f to i32
   ret i32 %conv
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-11.ll b/llvm/test/CodeGen/SystemZ/fp-conv-11.ll
index 1cd3da2bf8709..2dd543b5810bf 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-11.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-11.ll
@@ -21,13 +21,13 @@ define i64 @f2(double %f) {
 }
 
 ; Test f128->i64.
-define i64 @f3(fp128 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
 ; CHECK: cgxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptosi fp128 %f to i64
   ret i64 %conv
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-12.ll b/llvm/test/CodeGen/SystemZ/fp-conv-12.ll
index ef933ee3049d5..27afbf4d398a0 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-12.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-12.ll
@@ -48,7 +48,7 @@ define i64 @f2(double %f) {
 }
 
 ; Test f128->i64.
-define i64 @f3(fp128 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    ld %f0, 0(%r2)
@@ -65,7 +65,7 @@ define i64 @f3(fp128 *%src) {
 ; CHECK-NEXT:    cgxbr %r2, 5, %f0
 ; CHECK-NEXT:    xihf %r2, 2147483648
 ; CHECK-NEXT:    br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptoui fp128 %f to i64
   ret i64 %conv
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-13.ll b/llvm/test/CodeGen/SystemZ/fp-conv-13.ll
index 96293bc8d270d..6e6c96bea2b35 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-13.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-13.ll
@@ -22,14 +22,14 @@ define double @f2(i32 %i) {
 }
 
 ; Check i32->f128.
-define void @f3(i32 %i, fp128 *%dst) {
+define void @f3(i32 %i, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: cxlfbr %f0, 0, %r2, 0
 ; CHECK-DAG: std %f0, 0(%r3)
 ; CHECK-DAG: std %f2, 8(%r3)
 ; CHECK: br %r14
   %conv = uitofp i32 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
@@ -52,13 +52,13 @@ define double @f5(i64 %i) {
 }
 
 ; Check i64->f128.
-define void @f6(i64 %i, fp128 *%dst) {
+define void @f6(i64 %i, ptr %dst) {
 ; CHECK-LABEL: f6:
 ; CHECK: cxlgbr %f0, 0, %r2, 0
 ; CHECK-DAG: std %f0, 0(%r3)
 ; CHECK-DAG: std %f2, 8(%r3)
 ; CHECK: br %r14
   %conv = uitofp i64 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-14.ll b/llvm/test/CodeGen/SystemZ/fp-conv-14.ll
index f70daa86a0504..0d1f951994d27 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-14.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-14.ll
@@ -21,13 +21,13 @@ define i32 @f2(double %f) {
 }
 
 ; Test f128->i32.
-define i32 @f3(fp128 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: ld %f0, 0(%r2)
 ; CHECK-DAG: ld %f2, 8(%r2)
 ; CHECK: clfxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptoui fp128 %f to i32
   ret i32 %conv
 }
@@ -51,13 +51,13 @@ define i64 @f5(double %f) {
 }
 
 ; Test f128->i64.
-define i64 @f6(fp128 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: ld %f0, 0(%r2)
 ; CHECK-DAG: ld %f2, 8(%r2)
 ; CHECK: clgxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptoui fp128 %f to i64
   ret i64 %conv
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-15.ll b/llvm/test/CodeGen/SystemZ/fp-conv-15.ll
index 61100016c4263..265f8d346fd4d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-15.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-15.ll
@@ -3,48 +3,48 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
 ; Test f128->f64.
-define double @f1(fp128 *%ptr) {
+define double @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wflrx %f0, [[REG]], 0, 0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = fptrunc fp128 %val to double
   ret double %res
 }
 
 ; Test f128->f32.
-define float @f2(fp128 *%ptr) {
+define float @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wflrx %f0, [[REG]], 0, 3
 ; CHECK: ledbra %f0, 0, %f0, 0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = fptrunc fp128 %val to float
   ret float %res
 }
 
 ; Test f64->f128.
-define void @f3(fp128 *%dst, double %val) {
+define void @f3(ptr %dst, double %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: wflld [[RES:%v[0-9]+]], %f0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
   %res = fpext double %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test f32->f128.
-define void @f4(fp128 *%dst, float %val) {
+define void @f4(ptr %dst, float %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: ldebr %f0, %f0
 ; CHECK: wflld [[RES:%v[0-9]+]], %f0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
   %res = fpext float %val to fp128
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-16.ll b/llvm/test/CodeGen/SystemZ/fp-conv-16.ll
index e82c7363ea4ab..3201b071efa1f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-16.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-16.ll
@@ -3,97 +3,97 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
 ; Test signed i32->f128.
-define void @f1(i32 %i, fp128 *%dst) {
+define void @f1(i32 %i, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: cxfbr %f0, %r2
 ; CHECK: vmrhg %v0, %v0, %v2
 ; CHECK: vst %v0, 0(%r3)
 ; CHECK: br %r14
   %conv = sitofp i32 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test signed i64->f128.
-define void @f2(i64 %i, fp128 *%dst) {
+define void @f2(i64 %i, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK: cxgbr %f0, %r2
 ; CHECK: vmrhg %v0, %v0, %v2
 ; CHECK: vst %v0, 0(%r3)
 ; CHECK: br %r14
   %conv = sitofp i64 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test unsigned i32->f128.
-define void @f3(i32 %i, fp128 *%dst) {
+define void @f3(i32 %i, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: cxlfbr %f0, 0, %r2, 0
 ; CHECK: vmrhg %v0, %v0, %v2
 ; CHECK: vst %v0, 0(%r3)
 ; CHECK: br %r14
   %conv = uitofp i32 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test unsigned i64->f128.
-define void @f4(i64 %i, fp128 *%dst) {
+define void @f4(i64 %i, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK: cxlgbr %f0, 0, %r2, 0
 ; CHECK: vmrhg %v0, %v0, %v2
 ; CHECK: vst %v0, 0(%r3)
 ; CHECK: br %r14
   %conv = uitofp i64 %i to fp128
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test signed f128->i32.
-define i32 @f5(fp128 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: cfxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptosi fp128 %f to i32
   ret i32 %conv
 }
 
 ; Test signed f128->i64.
-define i64 @f6(fp128 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: cgxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptosi fp128 %f to i64
   ret i64 %conv
 }
 
 ; Test unsigned f128->i32.
-define i32 @f7(fp128 *%src) {
+define i32 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: clfxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptoui fp128 %f to i32
   ret i32 %conv
 }
 
 ; Test unsigned f128->i64.
-define i64 @f8(fp128 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: clgxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = fptoui fp128 %f to i64
   ret i64 %conv
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-18.ll b/llvm/test/CodeGen/SystemZ/fp-conv-18.ll
index 5ca52effc0f23..a3551dd3d417f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-18.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-18.ll
@@ -11,24 +11,24 @@
 
 define void @fun1() #0 {
 bb:
-%tmp = load <4 x float>, <4 x float>* undef, align 16
+%tmp = load <4 x float>, ptr undef, align 16
 %tmp1 = extractelement <4 x float> %tmp, i32 0
 %tmp2 = fpext float %tmp1 to double
 %tmp3 = extractelement <4 x float> %tmp, i32 2
 %tmp4 = fpext float %tmp3 to double
-tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), double %tmp2, double undef, double %tmp4, double undef)
+tail call void (ptr, ...) @printf(ptr @.str, double %tmp2, double undef, double %tmp4, double undef)
 ret void
 }
 
 define void @fun2() #0 {
 bb:
-%tmp = load <2 x double>, <2 x double>* undef, align 16
+%tmp = load <2 x double>, ptr undef, align 16
 %tmp1 = extractelement <2 x double> %tmp, i32 0
 %tmp2 = fptrunc double %tmp1 to float
 %tmp3 = extractelement <2 x double> %tmp, i32 1
 %tmp4 = fptrunc double %tmp3 to float
-tail call void (i8*, ...) @printf(i8* getelementptr inbounds ([21 x i8], [21 x i8]* @.str, i64 0, i64 0), float %tmp2, float undef, float %tmp4, float undef)
+tail call void (ptr, ...) @printf(ptr @.str, float %tmp2, float undef, float %tmp4, float undef)
 ret void
 }
 
-declare dso_local void @printf(i8*, ...) #0
+declare dso_local void @printf(ptr, ...) #0

diff  --git a/llvm/test/CodeGen/SystemZ/fp-conv-19.ll b/llvm/test/CodeGen/SystemZ/fp-conv-19.ll
index 959ae8b1550a4..034def904af2e 100644
--- a/llvm/test/CodeGen/SystemZ/fp-conv-19.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-conv-19.ll
@@ -8,7 +8,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 \
 ; RUN:   | FileCheck -check-prefix=Z14 %s
 
-define i64 @extract_float_hi(fp128* %0, fp128* %1) {
+define i64 @extract_float_hi(ptr %0, ptr %1) {
 ; Z10-LABEL: extract_float_hi:
 ; Z10:       # %bb.0: # %entry
 ; Z10-NEXT:    ld %f0, 0(%r2)
@@ -27,8 +27,8 @@ define i64 @extract_float_hi(fp128* %0, fp128* %1) {
 ; Z14-NEXT:    vlgvg %r2, %v0, 0
 ; Z14-NEXT:    br %r14
 entry:
-  %x = load fp128, fp128* %0
-  %y = load fp128, fp128* %1
+  %x = load fp128, ptr %0
+  %y = load fp128, ptr %1
   %add = fadd fp128 %x, %y
   %2 = bitcast fp128 %add to i128
   %u.sroa.0.0.extract.shift = lshr i128 %2, 64
@@ -36,7 +36,7 @@ entry:
   ret i64 %u.sroa.0.0.extract.trunc
 }
 
-define i64 @extract_float_lo(fp128* %0, fp128* %1) {
+define i64 @extract_float_lo(ptr %0, ptr %1) {
 ; Z10-LABEL: extract_float_lo:
 ; Z10:       # %bb.0: # %entry
 ; Z10-NEXT:    ld %f0, 0(%r2)
@@ -55,15 +55,15 @@ define i64 @extract_float_lo(fp128* %0, fp128* %1) {
 ; Z14-NEXT:    vlgvg %r2, %v0, 1
 ; Z14-NEXT:    br %r14
 entry:
-  %x = load fp128, fp128* %0
-  %y = load fp128, fp128* %1
+  %x = load fp128, ptr %0
+  %y = load fp128, ptr %1
   %add = fadd fp128 %x, %y
   %2 = bitcast fp128 %add to i128
   %u.sroa.0.0.extract.trunc = trunc i128 %2 to i64
   ret i64 %u.sroa.0.0.extract.trunc
 }
 
-define i128 @bitcast_128(fp128* %0, fp128* %1) {
+define i128 @bitcast_128(ptr %0, ptr %1) {
 ; Z10-LABEL: bitcast_128:
 ; Z10:       # %bb.0: # %entry
 ; Z10-NEXT:    ld %f0, 0(%r3)
@@ -92,8 +92,8 @@ define i128 @bitcast_128(fp128* %0, fp128* %1) {
 ; Z14-NEXT:    stg %r1, 0(%r2)
 ; Z14-NEXT:    br %r14
 entry:
-  %x = load fp128, fp128* %0
-  %y = load fp128, fp128* %1
+  %x = load fp128, ptr %0
+  %y = load fp128, ptr %1
   %add = fadd fp128 %x, %y
   %i = bitcast fp128 %add to i128
   %hibit = shl i128 1, 64

diff  --git a/llvm/test/CodeGen/SystemZ/fp-copysign-01.ll b/llvm/test/CodeGen/SystemZ/fp-copysign-01.ll
index ef3c5368e3e6e..d2b6488008e6b 100644
--- a/llvm/test/CodeGen/SystemZ/fp-copysign-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-copysign-01.ll
@@ -29,13 +29,13 @@ define float @f2(float %a, double %bd) {
 }
 
 ; Test f32 copies in which the sign comes from an f128.
-define float @f3(float %a, fp128 *%bptr) {
+define float @f3(float %a, ptr %bptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: ld [[BHIGH:%f[0-7]]], 0(%r2)
 ; CHECK: ld [[BLOW:%f[0-7]]], 8(%r2)
 ; CHECK: cpsdr %f0, [[BHIGH]], %f0
 ; CHECK: br %r14
-  %bl = load volatile fp128, fp128 *%bptr
+  %bl = load volatile fp128, ptr %bptr
   %b = fptrunc fp128 %bl to float
   %res = call float @copysignf(float %a, float %b) readnone
   ret float %res
@@ -63,13 +63,13 @@ define double @f5(double %a, double %b) {
 }
 
 ; Test f64 copies in which the sign comes from an f128.
-define double @f6(double %a, fp128 *%bptr) {
+define double @f6(double %a, ptr %bptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: ld [[BHIGH:%f[0-7]]], 0(%r2)
 ; CHECK: ld [[BLOW:%f[0-7]]], 8(%r2)
 ; CHECK: cpsdr %f0, [[BHIGH]], %f0
 ; CHECK: br %r14
-  %bl = load volatile fp128, fp128 *%bptr
+  %bl = load volatile fp128, ptr %bptr
   %b = fptrunc fp128 %bl to double
   %res = call double @copysign(double %a, double %b) readnone
   ret double %res
@@ -78,7 +78,7 @@ define double @f6(double %a, fp128 *%bptr) {
 ; Test f128 copies in which the sign comes from an f32.  We shouldn't
 ; need any register shuffling here; %a should be tied to %c, with CPSDR
 ; just changing the high register.
-define void @f7(fp128 *%cptr, fp128 *%aptr, float %bf) {
+define void @f7(ptr %cptr, ptr %aptr, float %bf) {
 ; CHECK-LABEL: f7:
 ; CHECK: ld [[AHIGH:%f[0-7]]], 0(%r3)
 ; CHECK: ld [[ALOW:%f[0-7]]], 8(%r3)
@@ -86,15 +86,15 @@ define void @f7(fp128 *%cptr, fp128 *%aptr, float %bf) {
 ; CHECK: std [[AHIGH]], 0(%r2)
 ; CHECK: std [[ALOW]], 8(%r2)
 ; CHECK: br %r14
-  %a = load volatile fp128, fp128 *%aptr
+  %a = load volatile fp128, ptr %aptr
   %b = fpext float %bf to fp128
   %c = call fp128 @copysignl(fp128 %a, fp128 %b) readnone
-  store fp128 %c, fp128 *%cptr
+  store fp128 %c, ptr %cptr
   ret void
 }
 
 ; As above, but the sign comes from an f64.
-define void @f8(fp128 *%cptr, fp128 *%aptr, double %bd) {
+define void @f8(ptr %cptr, ptr %aptr, double %bd) {
 ; CHECK-LABEL: f8:
 ; CHECK: ld [[AHIGH:%f[0-7]]], 0(%r3)
 ; CHECK: ld [[ALOW:%f[0-7]]], 8(%r3)
@@ -102,16 +102,16 @@ define void @f8(fp128 *%cptr, fp128 *%aptr, double %bd) {
 ; CHECK: std [[AHIGH]], 0(%r2)
 ; CHECK: std [[ALOW]], 8(%r2)
 ; CHECK: br %r14
-  %a = load volatile fp128, fp128 *%aptr
+  %a = load volatile fp128, ptr %aptr
   %b = fpext double %bd to fp128
   %c = call fp128 @copysignl(fp128 %a, fp128 %b) readnone
-  store fp128 %c, fp128 *%cptr
+  store fp128 %c, ptr %cptr
   ret void
 }
 
 ; As above, but the sign comes from an f128.  Don't require the low part
 ; of %b to be loaded, since it isn't used.
-define void @f9(fp128 *%cptr, fp128 *%aptr, fp128 *%bptr) {
+define void @f9(ptr %cptr, ptr %aptr, ptr %bptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: ld [[AHIGH:%f[0-7]]], 0(%r3)
 ; CHECK: ld [[ALOW:%f[0-7]]], 8(%r3)
@@ -120,9 +120,9 @@ define void @f9(fp128 *%cptr, fp128 *%aptr, fp128 *%bptr) {
 ; CHECK: std [[AHIGH]], 0(%r2)
 ; CHECK: std [[ALOW]], 8(%r2)
 ; CHECK: br %r14
-  %a = load volatile fp128, fp128 *%aptr
-  %b = load volatile fp128, fp128 *%bptr
+  %a = load volatile fp128, ptr %aptr
+  %b = load volatile fp128, ptr %bptr
   %c = call fp128 @copysignl(fp128 %a, fp128 %b) readnone
-  store fp128 %c, fp128 *%cptr
+  store fp128 %c, ptr %cptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-copysign-02.ll b/llvm/test/CodeGen/SystemZ/fp-copysign-02.ll
index df4cecb80e94a..178568ebb3bf9 100644
--- a/llvm/test/CodeGen/SystemZ/fp-copysign-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-copysign-02.ll
@@ -8,31 +8,31 @@ declare double @copysign(double, double) readnone
 declare fp128 @copysignl(fp128, fp128) readnone
 
 ; Test f32 copies in which the sign comes from an f128.
-define float @f1(float %a, fp128 *%bptr) {
+define float @f1(float %a, ptr %bptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vl %v[[REG:[0-9]+]], 0(%r2)
 ; CHECK: cpsdr %f0, %f[[REG]], %f0
 ; CHECK: br %r14
-  %bl = load volatile fp128, fp128 *%bptr
+  %bl = load volatile fp128, ptr %bptr
   %b = fptrunc fp128 %bl to float
   %res = call float @copysignf(float %a, float %b) readnone
   ret float %res
 }
 
 ; Test f64 copies in which the sign comes from an f128.
-define double @f2(double %a, fp128 *%bptr) {
+define double @f2(double %a, ptr %bptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vl %v[[REG:[0-9]+]], 0(%r2)
 ; CHECK: cpsdr %f0, %f[[REG]], %f0
 ; CHECK: br %r14
-  %bl = load volatile fp128, fp128 *%bptr
+  %bl = load volatile fp128, ptr %bptr
   %b = fptrunc fp128 %bl to double
   %res = call double @copysign(double %a, double %b) readnone
   ret double %res
 }
 
 ; Test f128 copies in which the sign comes from an f32.
-define void @f7(fp128 *%cptr, fp128 *%aptr, float %bf) {
+define void @f7(ptr %cptr, ptr %aptr, float %bf) {
 ; CHECK-LABEL: f7:
 ; CHECK: vl [[REG1:%v[0-7]+]], 0(%r3)
 ; CHECK: tmlh
@@ -40,15 +40,15 @@ define void @f7(fp128 *%cptr, fp128 *%aptr, float %bf) {
 ; CHECK: wflpxb [[REG2]], [[REG1]]
 ; CHECK: vst [[REG2]], 0(%r2)
 ; CHECK: br %r14
-  %a = load volatile fp128, fp128 *%aptr
+  %a = load volatile fp128, ptr %aptr
   %b = fpext float %bf to fp128
   %c = call fp128 @copysignl(fp128 %a, fp128 %b) readnone
-  store fp128 %c, fp128 *%cptr
+  store fp128 %c, ptr %cptr
   ret void
 }
 
 ; As above, but the sign comes from an f64.
-define void @f8(fp128 *%cptr, fp128 *%aptr, double %bd) {
+define void @f8(ptr %cptr, ptr %aptr, double %bd) {
 ; CHECK-LABEL: f8:
 ; CHECK: vl [[REG1:%v[0-7]+]], 0(%r3)
 ; CHECK: tmhh
@@ -56,15 +56,15 @@ define void @f8(fp128 *%cptr, fp128 *%aptr, double %bd) {
 ; CHECK: wflpxb [[REG2]], [[REG1]]
 ; CHECK: vst [[REG2]], 0(%r2)
 ; CHECK: br %r14
-  %a = load volatile fp128, fp128 *%aptr
+  %a = load volatile fp128, ptr %aptr
   %b = fpext double %bd to fp128
   %c = call fp128 @copysignl(fp128 %a, fp128 %b) readnone
-  store fp128 %c, fp128 *%cptr
+  store fp128 %c, ptr %cptr
   ret void
 }
 
 ; As above, but the sign comes from an f128.
-define void @f9(fp128 *%cptr, fp128 *%aptr, fp128 *%bptr) {
+define void @f9(ptr %cptr, ptr %aptr, ptr %bptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vl [[REG1:%v[0-7]+]], 0(%r3)
 ; CHECK: vl [[REG2:%v[0-7]+]], 0(%r4)
@@ -73,9 +73,9 @@ define void @f9(fp128 *%cptr, fp128 *%aptr, fp128 *%bptr) {
 ; CHECK: wflpxb [[REG1]], [[REG1]]
 ; CHECK: vst [[REG1]], 0(%r2)
 ; CHECK: br %r14
-  %a = load volatile fp128, fp128 *%aptr
-  %b = load volatile fp128, fp128 *%bptr
+  %a = load volatile fp128, ptr %aptr
+  %b = load volatile fp128, ptr %bptr
   %c = call fp128 @copysignl(fp128 %a, fp128 %b) readnone
-  store fp128 %c, fp128 *%cptr
+  store fp128 %c, ptr %cptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-div-01.ll b/llvm/test/CodeGen/SystemZ/fp-div-01.ll
index ad8a55ac1aea6..d33e61bbd1eda 100644
--- a/llvm/test/CodeGen/SystemZ/fp-div-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-div-01.ll
@@ -16,92 +16,92 @@ define float @f1(float %f1, float %f2) {
 }
 
 ; Check the low end of the DEB range.
-define float @f2(float %f1, float *%ptr) {
+define float @f2(float %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: deb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = fdiv float %f1, %f2
   ret float %res
 }
 
 ; Check the high end of the aligned DEB range.
-define float @f3(float %f1, float *%base) {
+define float @f3(float %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: deb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = fdiv float %f1, %f2
   ret float %res
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) {
+define float @f4(float %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: deb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = fdiv float %f1, %f2
   ret float %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) {
+define float @f5(float %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: deb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = fdiv float %f1, %f2
   ret float %res
 }
 
 ; Check that DEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) {
+define float @f6(float %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: deb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = fdiv float %f1, %f2
   ret float %res
 }
 
 ; Check that divisions of spilled values can use DEB rather than DEBR.
-define float @f7(float *%ptr0) {
+define float @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: deb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-div-02.ll b/llvm/test/CodeGen/SystemZ/fp-div-02.ll
index dc752967389d7..922106529b1c6 100644
--- a/llvm/test/CodeGen/SystemZ/fp-div-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-div-02.ll
@@ -16,92 +16,92 @@ define double @f1(double %f1, double %f2) {
 }
 
 ; Check the low end of the DDB range.
-define double @f2(double %f1, double *%ptr) {
+define double @f2(double %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: ddb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = fdiv double %f1, %f2
   ret double %res
 }
 
 ; Check the high end of the aligned DDB range.
-define double @f3(double %f1, double *%base) {
+define double @f3(double %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: ddb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = fdiv double %f1, %f2
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) {
+define double @f4(double %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: ddb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = fdiv double %f1, %f2
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) {
+define double @f5(double %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: ddb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = fdiv double %f1, %f2
   ret double %res
 }
 
 ; Check that DDB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) {
+define double @f6(double %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: ddb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = fdiv double %f1, %f2
   ret double %res
 }
 
 ; Check that divisions of spilled values can use DDB rather than DDBR.
-define double @f7(double *%ptr0) {
+define double @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: ddb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-div-03.ll b/llvm/test/CodeGen/SystemZ/fp-div-03.ll
index 8822fe7405ce6..4cff0a743de86 100644
--- a/llvm/test/CodeGen/SystemZ/fp-div-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-div-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; There is no memory form of 128-bit division.
-define void @f1(fp128 *%ptr, float %f2) {
+define void @f1(ptr %ptr, float %f2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -12,9 +12,9 @@ define void @f1(fp128 *%ptr, float %f2) {
 ; CHECK: std %f1, 0(%r2)
 ; CHECK: std %f3, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = fpext float %f2 to fp128
   %sum = fdiv fp128 %f1, %f2x
-  store fp128 %sum, fp128 *%ptr
+  store fp128 %sum, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-div-04.ll b/llvm/test/CodeGen/SystemZ/fp-div-04.ll
index 54e87f46c84a8..c8e418599d7b6 100644
--- a/llvm/test/CodeGen/SystemZ/fp-div-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-div-04.ll
@@ -2,16 +2,16 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) {
+define void @f1(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = fdiv fp128 %f1, %f2
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-01.ll b/llvm/test/CodeGen/SystemZ/fp-move-01.ll
index 7954d666467aa..00236d9c2b9fc 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-01.ll
@@ -20,14 +20,14 @@ define double @f2(double %a, double %b) {
 
 ; Test f128 moves.  Since f128s are passed by reference, we need to force
 ; a copy by other means.
-define void @f3(fp128 *%x) {
+define void @f3(ptr %x) {
 ; CHECK-LABEL: f3:
 ; CHECK: lxr
 ; CHECK: axbr
 ; CHECK: br %r14
-  %val = load volatile fp128, fp128 *%x
+  %val = load volatile fp128, ptr %x
   %sum = fadd fp128 %val, %val
-  store volatile fp128 %sum, fp128 *%x
-  store volatile fp128 %val, fp128 *%x
+  store volatile fp128 %sum, ptr %x
+  store volatile fp128 %val, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-02.ll b/llvm/test/CodeGen/SystemZ/fp-move-02.ll
index 43e4398c02f78..01e52943bb027 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-02.ll
@@ -64,16 +64,16 @@ define double @f5(i64 %a) {
 
 ; Test 128-bit moves from GPRs to FPRs.  i128 isn't a legitimate type,
 ; so this goes through memory.
-define void @f6(fp128 *%a, i128 *%b) {
+define void @f6(ptr %a, ptr %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: lg
 ; CHECK: lg
 ; CHECK: stg
 ; CHECK: stg
 ; CHECK: br %r14
-  %val = load i128, i128 *%b
+  %val = load i128, ptr %b
   %res = bitcast i128 %val to fp128
-  store fp128 %res, fp128 *%a
+  store fp128 %res, ptr %a
   ret void
 }
 
@@ -96,15 +96,15 @@ define i64 @f8(double %a) {
 }
 
 ; Test 128-bit moves from FPRs to GPRs, with the same restriction as f6.
-define void @f9(fp128 *%a, i128 *%b) {
+define void @f9(ptr %a, ptr %b) {
 ; CHECK-LABEL: f9:
 ; CHECK: ld
 ; CHECK: ld
 ; CHECK: std
 ; CHECK: std
-  %val = load fp128, fp128 *%a
+  %val = load fp128, ptr %a
   %res = bitcast fp128 %val to i128
-  store i128 %res, i128 *%b
+  store i128 %res, ptr %b
   ret void
 }
 
@@ -119,34 +119,34 @@ define void @f10(double %extra) {
 ; CHECK: %exit
 ; CHECK: br %r14
 entry:
-  %double0 = load volatile double, double *@dptr
+  %double0 = load volatile double, ptr at dptr
   %biased0 = fadd double %double0, %extra
   %int0 = bitcast double %biased0 to i64
-  %double1 = load volatile double, double *@dptr
+  %double1 = load volatile double, ptr at dptr
   %biased1 = fadd double %double1, %extra
   %int1 = bitcast double %biased1 to i64
-  %double2 = load volatile double, double *@dptr
+  %double2 = load volatile double, ptr at dptr
   %biased2 = fadd double %double2, %extra
   %int2 = bitcast double %biased2 to i64
-  %double3 = load volatile double, double *@dptr
+  %double3 = load volatile double, ptr at dptr
   %biased3 = fadd double %double3, %extra
   %int3 = bitcast double %biased3 to i64
-  %double4 = load volatile double, double *@dptr
+  %double4 = load volatile double, ptr at dptr
   %biased4 = fadd double %double4, %extra
   %int4 = bitcast double %biased4 to i64
-  %double5 = load volatile double, double *@dptr
+  %double5 = load volatile double, ptr at dptr
   %biased5 = fadd double %double5, %extra
   %int5 = bitcast double %biased5 to i64
-  %double6 = load volatile double, double *@dptr
+  %double6 = load volatile double, ptr at dptr
   %biased6 = fadd double %double6, %extra
   %int6 = bitcast double %biased6 to i64
-  %double7 = load volatile double, double *@dptr
+  %double7 = load volatile double, ptr at dptr
   %biased7 = fadd double %double7, %extra
   %int7 = bitcast double %biased7 to i64
-  %double8 = load volatile double, double *@dptr
+  %double8 = load volatile double, ptr at dptr
   %biased8 = fadd double %double8, %extra
   %int8 = bitcast double %biased8 to i64
-  %double9 = load volatile double, double *@dptr
+  %double9 = load volatile double, ptr at dptr
   %biased9 = fadd double %double9, %extra
   %int9 = bitcast double %biased9 to i64
   br label %loop
@@ -163,7 +163,7 @@ loop:
   %or7 = or i64 %or6, %int7
   %or8 = or i64 %or7, %int8
   %or9 = or i64 %or8, %int9
-  store i64 %or9, i64 *@iptr
+  store i64 %or9, ptr at iptr
   %cont = icmp ne i64 %start, 1
   br i1 %cont, label %loop, label %exit
 
@@ -181,34 +181,34 @@ define void @f11(i64 %mask) {
 ; CHECK: %exit
 ; CHECK: br %r14
 entry:
-  %int0 = load volatile i64, i64 *@iptr
+  %int0 = load volatile i64, ptr at iptr
   %masked0 = and i64 %int0, %mask
   %double0 = bitcast i64 %masked0 to double
-  %int1 = load volatile i64, i64 *@iptr
+  %int1 = load volatile i64, ptr at iptr
   %masked1 = and i64 %int1, %mask
   %double1 = bitcast i64 %masked1 to double
-  %int2 = load volatile i64, i64 *@iptr
+  %int2 = load volatile i64, ptr at iptr
   %masked2 = and i64 %int2, %mask
   %double2 = bitcast i64 %masked2 to double
-  %int3 = load volatile i64, i64 *@iptr
+  %int3 = load volatile i64, ptr at iptr
   %masked3 = and i64 %int3, %mask
   %double3 = bitcast i64 %masked3 to double
-  %int4 = load volatile i64, i64 *@iptr
+  %int4 = load volatile i64, ptr at iptr
   %masked4 = and i64 %int4, %mask
   %double4 = bitcast i64 %masked4 to double
-  %int5 = load volatile i64, i64 *@iptr
+  %int5 = load volatile i64, ptr at iptr
   %masked5 = and i64 %int5, %mask
   %double5 = bitcast i64 %masked5 to double
-  %int6 = load volatile i64, i64 *@iptr
+  %int6 = load volatile i64, ptr at iptr
   %masked6 = and i64 %int6, %mask
   %double6 = bitcast i64 %masked6 to double
-  %int7 = load volatile i64, i64 *@iptr
+  %int7 = load volatile i64, ptr at iptr
   %masked7 = and i64 %int7, %mask
   %double7 = bitcast i64 %masked7 to double
-  %int8 = load volatile i64, i64 *@iptr
+  %int8 = load volatile i64, ptr at iptr
   %masked8 = and i64 %int8, %mask
   %double8 = bitcast i64 %masked8 to double
-  %int9 = load volatile i64, i64 *@iptr
+  %int9 = load volatile i64, ptr at iptr
   %masked9 = and i64 %int9, %mask
   %double9 = bitcast i64 %masked9 to double
   br label %loop
@@ -225,7 +225,7 @@ loop:
   %add7 = fadd double %add6, %double7
   %add8 = fadd double %add7, %double8
   %add9 = fadd double %add8, %double9
-  store double %add9, double *@dptr
+  store double %add9, ptr at dptr
   %cont = fcmp one double %start, 1.0
   br i1 %cont, label %loop, label %exit
 
@@ -275,38 +275,38 @@ loop:
 
 exit:
   %unused1 = call i64 @foo()
-  %factor = load volatile double, double *@dptr
+  %factor = load volatile double, ptr at dptr
 
   %conv0 = bitcast i64 %add0 to double
   %mul0 = fmul double %conv0, %factor
-  store volatile double %mul0, double *@dptr
+  store volatile double %mul0, ptr at dptr
   %conv1 = bitcast i64 %add1 to double
   %mul1 = fmul double %conv1, %factor
-  store volatile double %mul1, double *@dptr
+  store volatile double %mul1, ptr at dptr
   %conv2 = bitcast i64 %add2 to double
   %mul2 = fmul double %conv2, %factor
-  store volatile double %mul2, double *@dptr
+  store volatile double %mul2, ptr at dptr
   %conv3 = bitcast i64 %add3 to double
   %mul3 = fmul double %conv3, %factor
-  store volatile double %mul3, double *@dptr
+  store volatile double %mul3, ptr at dptr
   %conv4 = bitcast i64 %add4 to double
   %mul4 = fmul double %conv4, %factor
-  store volatile double %mul4, double *@dptr
+  store volatile double %mul4, ptr at dptr
   %conv5 = bitcast i64 %add5 to double
   %mul5 = fmul double %conv5, %factor
-  store volatile double %mul5, double *@dptr
+  store volatile double %mul5, ptr at dptr
   %conv6 = bitcast i64 %add6 to double
   %mul6 = fmul double %conv6, %factor
-  store volatile double %mul6, double *@dptr
+  store volatile double %mul6, ptr at dptr
   %conv7 = bitcast i64 %add7 to double
   %mul7 = fmul double %conv7, %factor
-  store volatile double %mul7, double *@dptr
+  store volatile double %mul7, ptr at dptr
   %conv8 = bitcast i64 %add8 to double
   %mul8 = fmul double %conv8, %factor
-  store volatile double %mul8, double *@dptr
+  store volatile double %mul8, ptr at dptr
   %conv9 = bitcast i64 %add9 to double
   %mul9 = fmul double %conv9, %factor
-  store volatile double %mul9, double *@dptr
+  store volatile double %mul9, ptr at dptr
 
   %unused2 = call i64 @foo()
 
@@ -354,38 +354,38 @@ loop:
 
 exit:
   %unused1 = call i64 @foo()
-  %bias = load volatile i64, i64 *@iptr
+  %bias = load volatile i64, ptr at iptr
 
   %conv0 = bitcast double %mul0 to i64
   %add0 = add i64 %conv0, %bias
-  store volatile i64 %add0, i64 *@iptr
+  store volatile i64 %add0, ptr at iptr
   %conv1 = bitcast double %mul1 to i64
   %add1 = add i64 %conv1, %bias
-  store volatile i64 %add1, i64 *@iptr
+  store volatile i64 %add1, ptr at iptr
   %conv2 = bitcast double %mul2 to i64
   %add2 = add i64 %conv2, %bias
-  store volatile i64 %add2, i64 *@iptr
+  store volatile i64 %add2, ptr at iptr
   %conv3 = bitcast double %mul3 to i64
   %add3 = add i64 %conv3, %bias
-  store volatile i64 %add3, i64 *@iptr
+  store volatile i64 %add3, ptr at iptr
   %conv4 = bitcast double %mul4 to i64
   %add4 = add i64 %conv4, %bias
-  store volatile i64 %add4, i64 *@iptr
+  store volatile i64 %add4, ptr at iptr
   %conv5 = bitcast double %mul5 to i64
   %add5 = add i64 %conv5, %bias
-  store volatile i64 %add5, i64 *@iptr
+  store volatile i64 %add5, ptr at iptr
   %conv6 = bitcast double %mul6 to i64
   %add6 = add i64 %conv6, %bias
-  store volatile i64 %add6, i64 *@iptr
+  store volatile i64 %add6, ptr at iptr
   %conv7 = bitcast double %mul7 to i64
   %add7 = add i64 %conv7, %bias
-  store volatile i64 %add7, i64 *@iptr
+  store volatile i64 %add7, ptr at iptr
   %conv8 = bitcast double %mul8 to i64
   %add8 = add i64 %conv8, %bias
-  store volatile i64 %add8, i64 *@iptr
+  store volatile i64 %add8, ptr at iptr
   %conv9 = bitcast double %mul9 to i64
   %add9 = add i64 %conv9, %bias
-  store volatile i64 %add9, i64 *@iptr
+  store volatile i64 %add9, ptr at iptr
 
   %unused2 = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-03.ll b/llvm/test/CodeGen/SystemZ/fp-move-03.ll
index e8a65cb116e33..f4f14a5b70efe 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-03.ll
@@ -3,85 +3,85 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test the low end of the LE range.
-define float @f1(float *%src) {
+define float @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: le %f0, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%src
+  %val = load float, ptr %src
   ret float %val
 }
 
 ; Test the high end of the LE range.
-define float @f2(float *%src) {
+define float @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: le %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 1023
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the next word up, which should use LEY instead of LE.
-define float @f3(float *%src) {
+define float @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ley %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 1024
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the high end of the aligned LEY range.
-define float @f4(float *%src) {
+define float @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ley %f0, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 131071
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 131071
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f5(float *%src) {
+define float @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: le %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 131072
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 131072
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the high end of the negative aligned LEY range.
-define float @f6(float *%src) {
+define float @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ley %f0, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -1
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the low end of the LEY range.
-define float @f7(float *%src) {
+define float @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ley %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -131072
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -131072
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f8(float *%src) {
+define float @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524292
 ; CHECK: le %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -131073
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -131073
+  %val = load float, ptr %ptr
   ret float %val
 }
 
@@ -92,8 +92,8 @@ define float @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to float *
-  %val = load float, float *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load float, ptr %ptr
   ret float %val
 }
 
@@ -104,7 +104,7 @@ define float @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to float *
-  %val = load float, float *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load float, ptr %ptr
   ret float %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-04.ll b/llvm/test/CodeGen/SystemZ/fp-move-04.ll
index 098cfef6b2174..dba704ba4fbc6 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-04.ll
@@ -4,85 +4,85 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test the low end of the LD range.
-define double @f1(double *%src) {
+define double @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: br %r14
-  %val = load double, double *%src
+  %val = load double, ptr %src
   ret double %val
 }
 
 ; Test the high end of the LD range.
-define double @f2(double *%src) {
+define double @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ld %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 511
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 511
+  %val = load double, ptr %ptr
   ret double %val
 }
 
 ; Check the next doubleword up, which should use LDY instead of LD.
-define double @f3(double *%src) {
+define double @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ldy %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 512
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 512
+  %val = load double, ptr %ptr
   ret double %val
 }
 
 ; Check the high end of the aligned LDY range.
-define double @f4(double *%src) {
+define double @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ldy %f0, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 65535
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 65535
+  %val = load double, ptr %ptr
   ret double %val
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f5(double *%src) {
+define double @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 65536
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 65536
+  %val = load double, ptr %ptr
   ret double %val
 }
 
 ; Check the high end of the negative aligned LDY range.
-define double @f6(double *%src) {
+define double @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ldy %f0, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 -1
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 -1
+  %val = load double, ptr %ptr
   ret double %val
 }
 
 ; Check the low end of the LDY range.
-define double @f7(double *%src) {
+define double @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ldy %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 -65536
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 -65536
+  %val = load double, ptr %ptr
   ret double %val
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f8(double *%src) {
+define double @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524296
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 -65537
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 -65537
+  %val = load double, ptr %ptr
   ret double %val
 }
 
@@ -93,8 +93,8 @@ define double @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to double *
-  %val = load double, double *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load double, ptr %ptr
   ret double %val
 }
 
@@ -105,7 +105,7 @@ define double @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to double *
-  %val = load double, double *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load double, ptr %ptr
   ret double %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-05.ll b/llvm/test/CodeGen/SystemZ/fp-move-05.ll
index 7e25aad34b020..1ed8902361341 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-05.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-05.ll
@@ -8,8 +8,8 @@ define double @f1(i64 %src) {
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = inttoptr i64 %src to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %src to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -21,8 +21,8 @@ define double @f2(i64 %src) {
 ; CHECK: ld %f2, 4088(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 4080
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -34,8 +34,8 @@ define double @f3(i64 %src) {
 ; CHECK: ldy %f2, 4096(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 4088
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -47,8 +47,8 @@ define double @f4(i64 %src) {
 ; CHECK: ldy %f2, 4104(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 4096
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -60,8 +60,8 @@ define double @f5(i64 %src) {
 ; CHECK: ldy %f2, 524280(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 524272
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -75,8 +75,8 @@ define double @f6(i64 %src) {
 ; CHECK: ld %f2, 8(%r1)
 ; CHECK: br %r14
   %add = add i64 %src, 524280
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -89,8 +89,8 @@ define double @f7(i64 %src) {
 ; CHECK: ld %f2, 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -8
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -102,8 +102,8 @@ define double @f8(i64 %src) {
 ; CHECK: ldy %f2, -8(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -16
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -115,8 +115,8 @@ define double @f9(i64 %src) {
 ; CHECK: ldy %f2, -524280(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -524288
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -130,8 +130,8 @@ define double @f10(i64 %src) {
 ; CHECK: ld %f2, 8(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -524296
-  %ptr = inttoptr i64 %add to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }
@@ -144,8 +144,8 @@ define double @f11(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4088
-  %ptr = inttoptr i64 %add2 to fp128 *
-  %val = load fp128, fp128 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load fp128, ptr %ptr
   %trunc = fptrunc fp128 %val to double
   ret double %trunc
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-06.ll b/llvm/test/CodeGen/SystemZ/fp-move-06.ll
index eb0f87f1c5726..556fcde912e00 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-06.ll
@@ -3,85 +3,85 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test the low end of the STE range.
-define void @f1(float *%ptr, float %val) {
+define void @f1(ptr %ptr, float %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
-  store float %val, float *%ptr
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Test the high end of the STE range.
-define void @f2(float *%src, float %val) {
+define void @f2(ptr %src, float %val) {
 ; CHECK-LABEL: f2:
 ; CHECK: ste %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 1023
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 1023
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which should use STEY instead of STE.
-define void @f3(float *%src, float %val) {
+define void @f3(ptr %src, float %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: stey %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 1024
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 1024
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STEY range.
-define void @f4(float *%src, float %val) {
+define void @f4(ptr %src, float %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: stey %f0, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 131071
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 131071
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f5(float *%src, float %val) {
+define void @f5(ptr %src, float %val) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 131072
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 131072
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STEY range.
-define void @f6(float *%src, float %val) {
+define void @f6(ptr %src, float %val) {
 ; CHECK-LABEL: f6:
 ; CHECK: stey %f0, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -1
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -1
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STEY range.
-define void @f7(float *%src, float %val) {
+define void @f7(ptr %src, float %val) {
 ; CHECK-LABEL: f7:
 ; CHECK: stey %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -131072
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -131072
+  store float %val, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(float *%src, float %val) {
+define void @f8(ptr %src, float %val) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524292
 ; CHECK: ste %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -131073
-  store float %val, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -131073
+  store float %val, ptr %ptr
   ret void
 }
 
@@ -92,8 +92,8 @@ define void @f9(i64 %src, i64 %index, float %val) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to float *
-  store float %val, float *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store float %val, ptr %ptr
   ret void
 }
 
@@ -104,7 +104,7 @@ define void @f10(i64 %src, i64 %index, float %val) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to float *
-  store float %val, float *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store float %val, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-07.ll b/llvm/test/CodeGen/SystemZ/fp-move-07.ll
index 5361002a97e05..ff84c7272202a 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-07.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-07.ll
@@ -4,85 +4,85 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test the low end of the STD range.
-define void @f1(double *%src, double %val) {
+define void @f1(ptr %src, double %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
-  store double %val, double *%src
+  store double %val, ptr %src
   ret void
 }
 
 ; Test the high end of the STD range.
-define void @f2(double *%src, double %val) {
+define void @f2(ptr %src, double %val) {
 ; CHECK-LABEL: f2:
 ; CHECK: std %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 511
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 511
+  store double %val, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which should use STDY instead of STD.
-define void @f3(double *%src, double %val) {
+define void @f3(ptr %src, double %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: stdy %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 512
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 512
+  store double %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STDY range.
-define void @f4(double *%src, double %val) {
+define void @f4(ptr %src, double %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: stdy %f0, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 65535
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 65535
+  store double %val, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f5(double *%src, double %val) {
+define void @f5(ptr %src, double %val) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 65536
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 65536
+  store double %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STDY range.
-define void @f6(double *%src, double %val) {
+define void @f6(ptr %src, double %val) {
 ; CHECK-LABEL: f6:
 ; CHECK: stdy %f0, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 -1
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 -1
+  store double %val, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STDY range.
-define void @f7(double *%src, double %val) {
+define void @f7(ptr %src, double %val) {
 ; CHECK-LABEL: f7:
 ; CHECK: stdy %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 -65536
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 -65536
+  store double %val, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(double *%src, double %val) {
+define void @f8(ptr %src, double %val) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524296
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%src, i64 -65537
-  store double %val, double *%ptr
+  %ptr = getelementptr double, ptr %src, i64 -65537
+  store double %val, ptr %ptr
   ret void
 }
 
@@ -93,8 +93,8 @@ define void @f9(i64 %src, i64 %index, double %val) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to double *
-  store double %val, double *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store double %val, ptr %ptr
   ret void
 }
 
@@ -105,7 +105,7 @@ define void @f10(i64 %src, i64 %index, double %val) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to double *
-  store double %val, double *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store double %val, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-08.ll b/llvm/test/CodeGen/SystemZ/fp-move-08.ll
index 88038abc0daba..69fd75fb20376 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-08.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-08.ll
@@ -8,9 +8,9 @@ define void @f1(i64 %src, double %val) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = inttoptr i64 %src to fp128 *
+  %ptr = inttoptr i64 %src to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -21,9 +21,9 @@ define void @f2(i64 %src, double %val) {
 ; CHECK: std %f2, 4088(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 4080
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -34,9 +34,9 @@ define void @f3(i64 %src, double %val) {
 ; CHECK: stdy %f2, 4096(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 4088
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -47,9 +47,9 @@ define void @f4(i64 %src, double %val) {
 ; CHECK: stdy %f2, 4104(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 4096
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -60,9 +60,9 @@ define void @f5(i64 %src, double %val) {
 ; CHECK: stdy %f2, 524280(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, 524272
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -75,9 +75,9 @@ define void @f6(i64 %src, double %val) {
 ; CHECK: std %f2, 8(%r1)
 ; CHECK: br %r14
   %add = add i64 %src, 524280
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -89,9 +89,9 @@ define void @f7(i64 %src, double %val) {
 ; CHECK: std %f2, 0(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -8
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -102,9 +102,9 @@ define void @f8(i64 %src, double %val) {
 ; CHECK: stdy %f2, -8(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -16
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -115,9 +115,9 @@ define void @f9(i64 %src, double %val) {
 ; CHECK: stdy %f2, -524280(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -524288
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -130,9 +130,9 @@ define void @f10(i64 %src, double %val) {
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
   %add = add i64 %src, -524296
-  %ptr = inttoptr i64 %add to fp128 *
+  %ptr = inttoptr i64 %add to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }
 
@@ -144,8 +144,8 @@ define void @f11(i64 %src, i64 %index, double %val) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4088
-  %ptr = inttoptr i64 %add2 to fp128 *
+  %ptr = inttoptr i64 %add2 to ptr
   %ext = fpext double %val to fp128
-  store fp128 %ext, fp128 *%ptr
+  store fp128 %ext, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-09.ll b/llvm/test/CodeGen/SystemZ/fp-move-09.ll
index 31f2365a6af47..de0ca35c861ad 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-09.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-09.ll
@@ -3,13 +3,13 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Check that moves from i32s to floats can use high registers.
-define float @f1(i16 *%ptr) {
+define float @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: llhh [[REG:%r[0-5]]], 0(%r2)
 ; CHECK: oihh [[REG]], 16256
 ; CHECK: ldgr %f0, [[REG]]
 ; CHECK: br %r14
-  %base = load i16, i16 *%ptr
+  %base = load i16, ptr %ptr
   %ext = zext i16 %base to i32
   %full = or i32 %ext, 1065353216
   %res = bitcast i32 %full to float
@@ -18,19 +18,19 @@ define float @f1(i16 *%ptr) {
 
 ; Check that moves from floats to i32s can use high registers.
 ; This "store the low byte" technique is used by llvmpipe, for example.
-define void @f2(float %val, i8 *%ptr) {
+define void @f2(float %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: lgdr [[REG:%r[0-5]]], %f0
 ; CHECK: stch [[REG]], 0(%r2)
 ; CHECK: br %r14
   %res = bitcast float %val to i32
   %trunc = trunc i32 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Like f2, but with a conditional store.
-define void @f3(float %val, i8 *%ptr, i32 %which) {
+define void @f3(float %val, ptr %ptr, i32 %which) {
 ; CHECK-LABEL: f3:
 ; CHECK: ciblh %r3, 0, 0(%r14)
 
@@ -39,15 +39,15 @@ define void @f3(float %val, i8 *%ptr, i32 %which) {
 ; CHECK: br %r14
   %int = bitcast float %val to i32
   %trunc = trunc i32 %int to i8
-  %old = load i8, i8 *%ptr
+  %old = load i8, ptr %ptr
   %cmp = icmp eq i32 %which, 0
   %res = select i1 %cmp, i8 %trunc, i8 %old
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; ...and again with 16-bit memory.
-define void @f4(float %val, i16 *%ptr, i32 %which) {
+define void @f4(float %val, ptr %ptr, i32 %which) {
 ; CHECK-LABEL: f4:
 ; CHECK: ciblh %r3, 0, 0(%r14)
 ; CHECK: lgdr [[REG:%r[0-5]]], %f0
@@ -55,9 +55,9 @@ define void @f4(float %val, i16 *%ptr, i32 %which) {
 ; CHECK: br %r14
   %int = bitcast float %val to i32
   %trunc = trunc i32 %int to i16
-  %old = load i16, i16 *%ptr
+  %old = load i16, ptr %ptr
   %cmp = icmp eq i32 %which, 0
   %res = select i1 %cmp, i16 %trunc, i16 %old
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-10.ll b/llvm/test/CodeGen/SystemZ/fp-move-10.ll
index b7e64042d10a8..891a33c5c9c80 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-10.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-10.ll
@@ -3,13 +3,13 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Check that moves from i32s to floats use a low GR32 and vector operation.
-define float @f1(i16 *%ptr) {
+define float @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: llh [[REG:%r[0-5]]], 0(%r2)
 ; CHECK: oilh [[REG]], 16256
 ; CHECK: vlvgf %v0, [[REG]], 0
 ; CHECK: br %r14
-  %base = load i16, i16 *%ptr
+  %base = load i16, ptr %ptr
   %ext = zext i16 %base to i32
   %full = or i32 %ext, 1065353216
   %res = bitcast i32 %full to float
@@ -17,19 +17,19 @@ define float @f1(i16 *%ptr) {
 }
 
 ; Check that moves from floats to i32s use a low GR32 and vector operation.
-define void @f2(float %val, i8 *%ptr) {
+define void @f2(float %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlgvf [[REG:%r[0-5]]], %v0, 0
 ; CHECK: stc [[REG]], 0(%r2)
 ; CHECK: br %r14
   %res = bitcast float %val to i32
   %trunc = trunc i32 %res to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Like f2, but with a conditional store.
-define void @f3(float %val, i8 *%ptr, i32 %which) {
+define void @f3(float %val, ptr %ptr, i32 %which) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: ciblh %r3, 0, 0(%r14)
 ; CHECK-DAG: vlgvf [[REG:%r[0-5]]], %v0, 0
@@ -37,15 +37,15 @@ define void @f3(float %val, i8 *%ptr, i32 %which) {
 ; CHECK: br %r14
   %int = bitcast float %val to i32
   %trunc = trunc i32 %int to i8
-  %old = load i8, i8 *%ptr
+  %old = load i8, ptr %ptr
   %cmp = icmp eq i32 %which, 0
   %res = select i1 %cmp, i8 %trunc, i8 %old
-  store i8 %res, i8 *%ptr
+  store i8 %res, ptr %ptr
   ret void
 }
 
 ; ...and again with 16-bit memory.
-define void @f4(float %val, i16 *%ptr, i32 %which) {
+define void @f4(float %val, ptr %ptr, i32 %which) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: ciblh %r3, 0, 0(%r14)
 ; CHECK-DAG: vlgvf [[REG:%r[0-5]]], %v0, 0
@@ -53,9 +53,9 @@ define void @f4(float %val, i16 *%ptr, i32 %which) {
 ; CHECK: br %r14
   %int = bitcast float %val to i32
   %trunc = trunc i32 %int to i16
-  %old = load i16, i16 *%ptr
+  %old = load i16, ptr %ptr
   %cmp = icmp eq i32 %which, 0
   %res = select i1 %cmp, i16 %trunc, i16 %old
-  store i16 %res, i16 *%ptr
+  store i16 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-11.ll b/llvm/test/CodeGen/SystemZ/fp-move-11.ll
index ce45019425cb8..1ab83757f022e 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-11.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-11.ll
@@ -3,85 +3,85 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test that we use LDE instead of LE - low end of the LE range.
-define float @f1(float *%src) {
+define float @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lde %f0, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%src
+  %val = load float, ptr %src
   ret float %val
 }
 
 ; Test that we use LDE instead of LE - high end of the LE range.
-define float @f2(float *%src) {
+define float @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lde %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 1023
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the next word up, which should use LEY instead of LDE.
-define float @f3(float *%src) {
+define float @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ley %f0, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 1024
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the high end of the aligned LEY range.
-define float @f4(float *%src) {
+define float @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ley %f0, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 131071
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 131071
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f5(float *%src) {
+define float @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lde %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 131072
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 131072
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the high end of the negative aligned LEY range.
-define float @f6(float *%src) {
+define float @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ley %f0, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -1
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the low end of the LEY range.
-define float @f7(float *%src) {
+define float @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ley %f0, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -131072
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -131072
+  %val = load float, ptr %ptr
   ret float %val
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f8(float *%src) {
+define float @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524292
 ; CHECK: lde %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%src, i64 -131073
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %src, i64 -131073
+  %val = load float, ptr %ptr
   ret float %val
 }
 
@@ -92,8 +92,8 @@ define float @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to float *
-  %val = load float, float *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load float, ptr %ptr
   ret float %val
 }
 
@@ -104,7 +104,7 @@ define float @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to float *
-  %val = load float, float *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load float, ptr %ptr
   ret float %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-12.ll b/llvm/test/CodeGen/SystemZ/fp-move-12.ll
index 2454b1623fc46..0d479ca562bd1 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-12.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-12.ll
@@ -20,14 +20,14 @@ define double @f2(double %a, double %b) {
 
 ; Test f128 moves.  Since f128s are passed by reference, we need to force
 ; a copy by other means.
-define void @f3(fp128 *%x) {
+define void @f3(ptr %x) {
 ; CHECK-LABEL: f3:
 ; CHECK: lxr
 ; CHECK: axbr
 ; CHECK: br %r14
-  %val = load volatile fp128, fp128 *%x
+  %val = load volatile fp128, ptr %x
   %sum = fadd fp128 %val, %val
-  store volatile fp128 %sum, fp128 *%x
-  store volatile fp128 %val, fp128 *%x
+  store volatile fp128 %sum, ptr %x
+  store volatile fp128 %val, ptr %x
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-move-13.ll b/llvm/test/CodeGen/SystemZ/fp-move-13.ll
index b22c2d1c4f1d8..f938f16c31dc2 100644
--- a/llvm/test/CodeGen/SystemZ/fp-move-13.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-move-13.ll
@@ -4,41 +4,41 @@
 
 ; VR-to-VR moves.  Since f128s are passed by reference,
 ; we need to force a copy by other means.
-define void @f1(fp128 *%x) {
+define void @f1(ptr %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlr
 ; CHECK: vleig
 ; CHECK: br %r14
-  %val = load volatile fp128, fp128 *%x
+  %val = load volatile fp128, ptr %x
   %t1 = bitcast fp128 %val to <2 x i64>
   %t2 = insertelement <2 x i64> %t1, i64 0, i32 0
   %res = bitcast <2 x i64> %t2 to fp128
-  store volatile fp128 %res, fp128 *%x
-  store volatile fp128 %val, fp128 *%x
+  store volatile fp128 %res, ptr %x
+  store volatile fp128 %val, ptr %x
   ret void
 }
 
 ; Test 128-bit moves from GPRs to VRs.  i128 isn't a legitimate type,
 ; so this goes through memory.
-define void @f2(fp128 *%a, i128 *%b) {
+define void @f2(ptr %a, ptr %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: vl
 ; CHECK: vst
 ; CHECK: br %r14
-  %val = load i128, i128 *%b
+  %val = load i128, ptr %b
   %res = bitcast i128 %val to fp128
-  store fp128 %res, fp128 *%a
+  store fp128 %res, ptr %a
   ret void
 }
 
 ; Test 128-bit moves from VRs to GPRs, with the same restriction as f2.
-define void @f3(fp128 *%a, i128 *%b) {
+define void @f3(ptr %a, ptr %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: vl
 ; CHECK: vst
-  %val = load fp128, fp128 *%a
+  %val = load fp128, ptr %a
   %res = bitcast fp128 %val to i128
-  store i128 %res, i128 *%b
+  store i128 %res, ptr %b
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-01.ll b/llvm/test/CodeGen/SystemZ/fp-mul-01.ll
index cf6718851df9e..144e3208c5eb7 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-01.ll
@@ -16,92 +16,92 @@ define float @f1(float %f1, float %f2) {
 }
 
 ; Check the low end of the MEEB range.
-define float @f2(float %f1, float *%ptr) {
+define float @f2(float %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: meeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = fmul float %f1, %f2
   ret float %res
 }
 
 ; Check the high end of the aligned MEEB range.
-define float @f3(float %f1, float *%base) {
+define float @f3(float %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: meeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = fmul float %f1, %f2
   ret float %res
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) {
+define float @f4(float %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: meeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = fmul float %f1, %f2
   ret float %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) {
+define float @f5(float %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: meeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = fmul float %f1, %f2
   ret float %res
 }
 
 ; Check that MEEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) {
+define float @f6(float %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: meeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = fmul float %f1, %f2
   ret float %res
 }
 
 ; Check that multiplications of spilled values can use MEEB rather than MEEBR.
-define float @f7(float *%ptr0) {
+define float @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: meeb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-02.ll b/llvm/test/CodeGen/SystemZ/fp-mul-02.ll
index a5edfa975b5ad..5a99537493cd1 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-02.ll
@@ -16,11 +16,11 @@ define double @f1(float %f1, float %f2) {
 }
 
 ; Check the low end of the MDEB range.
-define double @f2(float %f1, float *%ptr) {
+define double @f2(float %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: mdeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %f1x = fpext float %f1 to double
   %f2x = fpext float %f2 to double
   %res = fmul double %f1x, %f2x
@@ -28,12 +28,12 @@ define double @f2(float %f1, float *%ptr) {
 }
 
 ; Check the high end of the aligned MDEB range.
-define double @f3(float %f1, float *%base) {
+define double @f3(float %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: mdeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %f1x = fpext float %f1 to double
   %f2x = fpext float %f2 to double
   %res = fmul double %f1x, %f2x
@@ -42,13 +42,13 @@ define double @f3(float %f1, float *%base) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(float %f1, float *%base) {
+define double @f4(float %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: mdeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %f1x = fpext float %f1 to double
   %f2x = fpext float %f2 to double
   %res = fmul double %f1x, %f2x
@@ -56,13 +56,13 @@ define double @f4(float %f1, float *%base) {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(float %f1, float *%base) {
+define double @f5(float %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: mdeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %f1x = fpext float %f1 to double
   %f2x = fpext float %f2 to double
   %res = fmul double %f1x, %f2x
@@ -70,14 +70,14 @@ define double @f5(float %f1, float *%base) {
 }
 
 ; Check that MDEB allows indices.
-define double @f6(float %f1, float *%base, i64 %index) {
+define double @f6(float %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: mdeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %f1x = fpext float %f1 to double
   %f2x = fpext float %f2 to double
   %res = fmul double %f1x, %f2x
@@ -85,33 +85,33 @@ define double @f6(float %f1, float *%base, i64 %index) {
 }
 
 ; Check that multiplications of spilled values can use MDEB rather than MDEBR.
-define float @f7(float *%ptr0) {
+define float @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mdeb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
-
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
+
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %frob0 = fadd float %val0, %val0
   %frob1 = fadd float %val1, %val1
@@ -125,17 +125,17 @@ define float @f7(float *%ptr0) {
   %frob9 = fadd float %val9, %val9
   %frob10 = fadd float %val9, %val10
 
-  store float %frob0, float *%ptr0
-  store float %frob1, float *%ptr1
-  store float %frob2, float *%ptr2
-  store float %frob3, float *%ptr3
-  store float %frob4, float *%ptr4
-  store float %frob5, float *%ptr5
-  store float %frob6, float *%ptr6
-  store float %frob7, float *%ptr7
-  store float %frob8, float *%ptr8
-  store float %frob9, float *%ptr9
-  store float %frob10, float *%ptr10
+  store float %frob0, ptr %ptr0
+  store float %frob1, ptr %ptr1
+  store float %frob2, ptr %ptr2
+  store float %frob3, ptr %ptr3
+  store float %frob4, ptr %ptr4
+  store float %frob5, ptr %ptr5
+  store float %frob6, ptr %ptr6
+  store float %frob7, ptr %ptr7
+  store float %frob8, ptr %ptr8
+  store float %frob9, ptr %ptr9
+  store float %frob10, ptr %ptr10
 
   %ret = call float @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-03.ll b/llvm/test/CodeGen/SystemZ/fp-mul-03.ll
index 523f7777d30c5..dbd6975af4130 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-03.ll
@@ -16,92 +16,92 @@ define double @f1(double %f1, double %f2) {
 }
 
 ; Check the low end of the MDB range.
-define double @f2(double %f1, double *%ptr) {
+define double @f2(double %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: mdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = fmul double %f1, %f2
   ret double %res
 }
 
 ; Check the high end of the aligned MDB range.
-define double @f3(double %f1, double *%base) {
+define double @f3(double %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: mdb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = fmul double %f1, %f2
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) {
+define double @f4(double %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: mdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = fmul double %f1, %f2
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) {
+define double @f5(double %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: mdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = fmul double %f1, %f2
   ret double %res
 }
 
 ; Check that MDB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) {
+define double @f6(double %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: mdb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = fmul double %f1, %f2
   ret double %res
 }
 
 ; Check that multiplications of spilled values can use MDB rather than MDBR.
-define double @f7(double *%ptr0) {
+define double @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: mdb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-04.ll b/llvm/test/CodeGen/SystemZ/fp-mul-04.ll
index 51645ddebf1f7..eed698ef54823 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-04.ll
@@ -7,7 +7,7 @@ declare double @foo()
 ; Check register multiplication.  "mxdbr %f0, %f2" is not valid from LLVM's
 ; point of view, because %f2 is the low register of the FP128 %f0.  Pass the
 ; multiplier in %f4 instead.
-define void @f1(double %f1, double %dummy, double %f2, fp128 *%dst) {
+define void @f1(double %f1, double %dummy, double %f2, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: mxdbr %f0, %f4
 ; CHECK: std %f0, 0(%r2)
@@ -16,122 +16,122 @@ define void @f1(double %f1, double %dummy, double %f2, fp128 *%dst) {
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the MXDB range.
-define void @f2(double %f1, double *%ptr, fp128 *%dst) {
+define void @f2(double %f1, ptr %ptr, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK: mxdb %f0, 0(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned MXDB range.
-define void @f3(double %f1, double *%base, fp128 *%dst) {
+define void @f3(double %f1, ptr %base, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: mxdb %f0, 4088(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(double %f1, double *%base, fp128 *%dst) {
+define void @f4(double %f1, ptr %base, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: mxdb %f0, 0(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check negative displacements, which also need separate address logic.
-define void @f5(double %f1, double *%base, fp128 *%dst) {
+define void @f5(double %f1, ptr %base, ptr %dst) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: mxdb %f0, 0(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that MXDB allows indices.
-define void @f6(double %f1, double *%base, i64 %index, fp128 *%dst) {
+define void @f6(double %f1, ptr %base, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: mxdb %f0, 800(%r1,%r2)
 ; CHECK: std %f0, 0(%r4)
 ; CHECK: std %f2, 8(%r4)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that multiplications of spilled values can use MXDB rather than MXDBR.
-define double @f7(double *%ptr0) {
+define double @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mxdb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
-
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
+
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %frob0 = fadd double %val0, %val0
   %frob1 = fadd double %val1, %val1
@@ -145,17 +145,17 @@ define double @f7(double *%ptr0) {
   %frob9 = fadd double %val9, %val9
   %frob10 = fadd double %val9, %val10
 
-  store double %frob0, double *%ptr0
-  store double %frob1, double *%ptr1
-  store double %frob2, double *%ptr2
-  store double %frob3, double *%ptr3
-  store double %frob4, double *%ptr4
-  store double %frob5, double *%ptr5
-  store double %frob6, double *%ptr6
-  store double %frob7, double *%ptr7
-  store double %frob8, double *%ptr8
-  store double %frob9, double *%ptr9
-  store double %frob10, double *%ptr10
+  store double %frob0, ptr %ptr0
+  store double %frob1, ptr %ptr1
+  store double %frob2, ptr %ptr2
+  store double %frob3, ptr %ptr3
+  store double %frob4, ptr %ptr4
+  store double %frob5, ptr %ptr5
+  store double %frob6, ptr %ptr6
+  store double %frob7, ptr %ptr7
+  store double %frob8, ptr %ptr8
+  store double %frob9, ptr %ptr9
+  store double %frob10, ptr %ptr10
 
   %ret = call double @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-05.ll b/llvm/test/CodeGen/SystemZ/fp-mul-05.ll
index dc716f1976508..7f36835c09ce5 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-05.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-05.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; There is no memory form of 128-bit multiplication.
-define void @f1(fp128 *%ptr, float %f2) {
+define void @f1(ptr %ptr, float %f2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -12,9 +12,9 @@ define void @f1(fp128 *%ptr, float %f2) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = fpext float %f2 to fp128
   %
diff  = fmul fp128 %f1, %f2x
-  store fp128 %
diff , fp128 *%ptr
+  store fp128 %
diff , ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-06.ll b/llvm/test/CodeGen/SystemZ/fp-mul-06.ll
index e9123e23ce1ab..8fd363bc397d0 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-06.ll
@@ -15,30 +15,30 @@ define float @f1(float %f1, float %f2, float %acc) {
   ret float %res
 }
 
-define float @f2(float %f1, float *%ptr, float %acc) {
+define float @f2(float %f1, ptr %ptr, float %acc) {
 ; CHECK-LABEL: f2:
 ; CHECK: maeb %f2, %f0, 0(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }
 
-define float @f3(float %f1, float *%base, float %acc) {
+define float @f3(float %f1, ptr %base, float %acc) {
 ; CHECK-LABEL: f3:
 ; CHECK: maeb %f2, %f0, 4092(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }
 
-define float @f4(float %f1, float *%base, float %acc) {
+define float @f4(float %f1, ptr %base, float %acc) {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -48,13 +48,13 @@ define float @f4(float %f1, float *%base, float %acc) {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }
 
-define float @f5(float %f1, float *%base, float %acc) {
+define float @f5(float %f1, ptr %base, float %acc) {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -64,26 +64,26 @@ define float @f5(float %f1, float *%base, float %acc) {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }
 
-define float @f6(float %f1, float *%base, i64 %index, float %acc) {
+define float @f6(float %f1, ptr %base, i64 %index, float %acc) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: maeb %f2, %f0, 0(%r1,%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 %index
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }
 
-define float @f7(float %f1, float *%base, i64 %index, float %acc) {
+define float @f7(float %f1, ptr %base, i64 %index, float %acc) {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: maeb %f2, %f0, 4092({{%r1,%r2|%r2,%r1}})
@@ -91,13 +91,13 @@ define float @f7(float %f1, float *%base, i64 %index, float %acc) {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1023
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }
 
-define float @f8(float %f1, float *%base, i64 %index, float %acc) {
+define float @f8(float %f1, ptr %base, i64 %index, float %acc) {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -106,8 +106,8 @@ define float @f8(float %f1, float *%base, i64 %index, float %acc) {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1024
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %acc)
   ret float %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-07.ll b/llvm/test/CodeGen/SystemZ/fp-mul-07.ll
index 626f2c83ffb56..5f196e7ce51c8 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-07.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-07.ll
@@ -15,28 +15,28 @@ define double @f1(double %f1, double %f2, double %acc) {
   ret double %res
 }
 
-define double @f2(double %f1, double *%ptr, double %acc) {
+define double @f2(double %f1, ptr %ptr, double %acc) {
 ; CHECK-LABEL: f2:
 ; CHECK: madb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }
 
-define double @f3(double %f1, double *%base, double %acc) {
+define double @f3(double %f1, ptr %base, double %acc) {
 ; CHECK-LABEL: f3:
 ; CHECK: madb %f2, %f0, 4088(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }
 
-define double @f4(double %f1, double *%base, double %acc) {
+define double @f4(double %f1, ptr %base, double %acc) {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -45,13 +45,13 @@ define double @f4(double %f1, double *%base, double %acc) {
 ; CHECK: madb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }
 
-define double @f5(double %f1, double *%base, double %acc) {
+define double @f5(double %f1, ptr %base, double %acc) {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -60,38 +60,38 @@ define double @f5(double %f1, double *%base, double %acc) {
 ; CHECK: madb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }
 
-define double @f6(double %f1, double *%base, i64 %index, double %acc) {
+define double @f6(double %f1, ptr %base, i64 %index, double %acc) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: madb %f2, %f0, 0(%r1,%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 %index
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }
 
-define double @f7(double %f1, double *%base, i64 %index, double %acc) {
+define double @f7(double %f1, ptr %base, i64 %index, double %acc) {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: madb %f2, %f0, 4088({{%r1,%r2|%r2,%r1}})
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 511
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }
 
-define double @f8(double %f1, double *%base, i64 %index, double %acc) {
+define double @f8(double %f1, ptr %base, i64 %index, double %acc) {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -99,8 +99,8 @@ define double @f8(double %f1, double *%base, i64 %index, double %acc) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 512
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %acc)
   ret double %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-08.ll b/llvm/test/CodeGen/SystemZ/fp-mul-08.ll
index 2aeaefc787aec..543ab95551690 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-08.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-08.ll
@@ -16,32 +16,32 @@ define float @f1(float %f1, float %f2, float %acc) {
   ret float %res
 }
 
-define float @f2(float %f1, float *%ptr, float %acc) {
+define float @f2(float %f1, ptr %ptr, float %acc) {
 ; CHECK-LABEL: f2:
 ; CHECK: mseb %f2, %f0, 0(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res
 }
 
-define float @f3(float %f1, float *%base, float %acc) {
+define float @f3(float %f1, ptr %base, float %acc) {
 ; CHECK-LABEL: f3:
 ; CHECK: mseb %f2, %f0, 4092(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res
 }
 
-define float @f4(float %f1, float *%base, float %acc) {
+define float @f4(float %f1, ptr %base, float %acc) {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -51,14 +51,14 @@ define float @f4(float %f1, float *%base, float %acc) {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res
 }
 
-define float @f5(float %f1, float *%base, float %acc) {
+define float @f5(float %f1, ptr %base, float %acc) {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -68,28 +68,28 @@ define float @f5(float %f1, float *%base, float %acc) {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res
 }
 
-define float @f6(float %f1, float *%base, i64 %index, float %acc) {
+define float @f6(float %f1, ptr %base, i64 %index, float %acc) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: mseb %f2, %f0, 0(%r1,%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 %index
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res
 }
 
-define float @f7(float %f1, float *%base, i64 %index, float %acc) {
+define float @f7(float %f1, ptr %base, i64 %index, float %acc) {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: mseb %f2, %f0, 4092({{%r1,%r2|%r2,%r1}})
@@ -97,14 +97,14 @@ define float @f7(float %f1, float *%base, i64 %index, float %acc) {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1023
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res
 }
 
-define float @f8(float %f1, float *%base, i64 %index, float %acc) {
+define float @f8(float %f1, ptr %base, i64 %index, float %acc) {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -113,8 +113,8 @@ define float @f8(float %f1, float *%base, i64 %index, float %acc) {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1024
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.fma.f32 (float %f1, float %f2, float %negacc)
   ret float %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-09.ll b/llvm/test/CodeGen/SystemZ/fp-mul-09.ll
index 2ad593517c7f1..35684f9668402 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-09.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-09.ll
@@ -16,30 +16,30 @@ define double @f1(double %f1, double %f2, double %acc) {
   ret double %res
 }
 
-define double @f2(double %f1, double *%ptr, double %acc) {
+define double @f2(double %f1, ptr %ptr, double %acc) {
 ; CHECK-LABEL: f2:
 ; CHECK: msdb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res
 }
 
-define double @f3(double %f1, double *%base, double %acc) {
+define double @f3(double %f1, ptr %base, double %acc) {
 ; CHECK-LABEL: f3:
 ; CHECK: msdb %f2, %f0, 4088(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res
 }
 
-define double @f4(double %f1, double *%base, double %acc) {
+define double @f4(double %f1, ptr %base, double %acc) {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -48,14 +48,14 @@ define double @f4(double %f1, double *%base, double %acc) {
 ; CHECK: msdb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res
 }
 
-define double @f5(double %f1, double *%base, double %acc) {
+define double @f5(double %f1, ptr %base, double %acc) {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -64,41 +64,41 @@ define double @f5(double %f1, double *%base, double %acc) {
 ; CHECK: msdb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res
 }
 
-define double @f6(double %f1, double *%base, i64 %index, double %acc) {
+define double @f6(double %f1, ptr %base, i64 %index, double %acc) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: msdb %f2, %f0, 0(%r1,%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 %index
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res
 }
 
-define double @f7(double %f1, double *%base, i64 %index, double %acc) {
+define double @f7(double %f1, ptr %base, i64 %index, double %acc) {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: msdb %f2, %f0, 4088({{%r1,%r2|%r2,%r1}})
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 511
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res
 }
 
-define double @f8(double %f1, double *%base, i64 %index, double %acc) {
+define double @f8(double %f1, ptr %base, i64 %index, double %acc) {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -106,8 +106,8 @@ define double @f8(double %f1, double *%base, i64 %index, double %acc) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 512
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.fma.f64 (double %f1, double %f2, double %negacc)
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-11.ll b/llvm/test/CodeGen/SystemZ/fp-mul-11.ll
index ef45bf184a4c2..0955587c7744d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-11.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-11.ll
@@ -2,21 +2,21 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) {
+define void @f1(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = fmul fp128 %f1, %f2
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }
 
-define void @f2(double %f1, double %f2, fp128 *%dst) {
+define void @f2(double %f1, double %f2, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: wflld [[REG1:%v[0-9]+]], %f0
 ; CHECK-DAG: wflld [[REG2:%v[0-9]+]], %f2
@@ -26,7 +26,7 @@ define void @f2(double %f1, double %f2, fp128 *%dst) {
   %f1x = fpext double %f1 to fp128
   %f2x = fpext double %f2 to fp128
   %res = fmul fp128 %f1x, %f2x
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-12.ll b/llvm/test/CodeGen/SystemZ/fp-mul-12.ll
index 331f9a30c2741..dcc5ae622dcb6 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-12.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-12.ll
@@ -2,7 +2,7 @@
 
 declare fp128 @llvm.fma.f128(fp128 %f1, fp128 %f2, fp128 %f3)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
+define void @f1(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -10,15 +10,15 @@ define void @f1(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
 ; CHECK: wfmaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %f3)
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
-define void @f2(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
+define void @f2(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -26,16 +26,16 @@ define void @f2(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
 ; CHECK: wfmsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %neg = fsub fp128 0xL00000000000000008000000000000000, %f3
   %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %neg)
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
-define void @f3(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
+define void @f3(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -43,16 +43,16 @@ define void @f3(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
 ; CHECK: wfnmaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %f3)
   %negres = fsub fp128 0xL00000000000000008000000000000000, %res
-  store fp128 %negres, fp128 *%dst
+  store fp128 %negres, ptr %dst
   ret void
 }
 
-define void @f4(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
+define void @f4(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -60,13 +60,13 @@ define void @f4(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
 ; CHECK: wfnmsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %neg = fsub fp128 0xL00000000000000008000000000000000, %f3
   %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %neg)
   %negres = fsub fp128 0xL00000000000000008000000000000000, %res
-  store fp128 %negres, fp128 *%dst
+  store fp128 %negres, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-13.ll b/llvm/test/CodeGen/SystemZ/fp-mul-13.ll
index 4475195cc547f..e6870fb9a81db 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-13.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-13.ll
@@ -2,15 +2,15 @@
 
 declare fp128 @llvm.fma.f128(fp128 %f1, fp128 %f2, fp128 %f3)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) {
+define void @f1(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: brasl %r14, fmal
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %res = call fp128 @llvm.fma.f128 (fp128 %f1, fp128 %f2, fp128 %f3)
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-mul-14.ll b/llvm/test/CodeGen/SystemZ/fp-mul-14.ll
index 363511655ad91..1d2bbead8685c 100644
--- a/llvm/test/CodeGen/SystemZ/fp-mul-14.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-mul-14.ll
@@ -2,7 +2,7 @@
 ;
 ; Check that a multiply-and-add results.
 
-define void @f1(float %arg, float* %Dst) {
+define void @f1(float %arg, ptr %Dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: maeb
 bb:
@@ -11,7 +11,7 @@ bb:
   %i5 = fmul contract float %arg, 0xBE6777A5C0000000
   %i6 = fadd contract float %i5, 1.000000e+00
   %i7 = fmul contract float %i4, 2.000000e+00
-  store float %i7, float* %Dst
+  store float %i7, ptr %Dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-neg-01.ll b/llvm/test/CodeGen/SystemZ/fp-neg-01.ll
index ff3a98231a675..875905de4948d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-neg-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-neg-01.ll
@@ -24,16 +24,16 @@ define double @f2(double %f) {
 ; Test f128.  With the loads and stores, a pure negation would probably
 ; be better implemented using an XI on the upper byte.  Do some extra
 ; processing so that using FPRs is unequivocally better.
-define void @f3(fp128 *%ptr, fp128 *%ptr2) {
+define void @f3(ptr %ptr, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK: lcxbr
 ; CHECK: dxbr
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %negzero = fpext float -0.0 to fp128
   %neg = fneg fp128 %orig
-  %op2 = load fp128, fp128 *%ptr2
+  %op2 = load fp128, ptr %ptr2
   %res = fdiv fp128 %neg, %op2
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-neg-02.ll b/llvm/test/CodeGen/SystemZ/fp-neg-02.ll
index 70ff19c800295..7cd66948e2fc7 100644
--- a/llvm/test/CodeGen/SystemZ/fp-neg-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-neg-02.ll
@@ -23,7 +23,7 @@ define double @f2(double %f) {
 ; Test f128.  With the loads and stores, a pure negation would probably
 ; be better implemented using an XI on the upper byte.  Do some extra
 ; processing so that using FPRs is unequivocally better.
-define void @f3(fp128 *%ptr, fp128 *%ptr2) {
+define void @f3(ptr %ptr, ptr %ptr2) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -31,11 +31,11 @@ define void @f3(fp128 *%ptr, fp128 *%ptr2) {
 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[NEGREG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %negzero = fpext float -0.0 to fp128
   %neg = fneg fp128 %orig
-  %op2 = load fp128, fp128 *%ptr2
+  %op2 = load fp128, ptr %ptr2
   %res = fdiv fp128 %neg, %op2
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-round-01.ll b/llvm/test/CodeGen/SystemZ/fp-round-01.ll
index 186fb3c2d0d47..6e35cd0ff0cab 100644
--- a/llvm/test/CodeGen/SystemZ/fp-round-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-round-01.ll
@@ -24,13 +24,13 @@ define double @f2(double %f) {
 
 ; Test rint for f128.
 declare fp128 @llvm.rint.f128(fp128 %f)
-define void @f3(fp128 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: fixbr %f0, 0, %f0
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.rint.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -56,13 +56,13 @@ define double @f5(double %f) {
 
 ; Test nearbyint for f128.
 declare fp128 @llvm.nearbyint.f128(fp128 %f)
-define void @f6(fp128 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: brasl %r14, nearbyintl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.nearbyint.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -88,13 +88,13 @@ define double @f8(double %f) {
 
 ; Test floor for f128.
 declare fp128 @llvm.floor.f128(fp128 %f)
-define void @f9(fp128 *%ptr) {
+define void @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, floorl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.floor.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -120,13 +120,13 @@ define double @f11(double %f) {
 
 ; Test ceil for f128.
 declare fp128 @llvm.ceil.f128(fp128 %f)
-define void @f12(fp128 *%ptr) {
+define void @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, ceill at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.ceil.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -152,13 +152,13 @@ define double @f14(double %f) {
 
 ; Test trunc for f128.
 declare fp128 @llvm.trunc.f128(fp128 %f)
-define void @f15(fp128 *%ptr) {
+define void @f15(ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: brasl %r14, truncl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.trunc.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -184,12 +184,12 @@ define double @f17(double %f) {
 
 ; Test round for f128.
 declare fp128 @llvm.round.f128(fp128 %f)
-define void @f18(fp128 *%ptr) {
+define void @f18(ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: brasl %r14, roundl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.round.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-round-02.ll b/llvm/test/CodeGen/SystemZ/fp-round-02.ll
index e55a6cc43aa5d..2995b2a21fd5b 100644
--- a/llvm/test/CodeGen/SystemZ/fp-round-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-round-02.ll
@@ -28,13 +28,13 @@ define double @f2(double %f) {
 
 ; Test rint for f128.
 declare fp128 @llvm.rint.f128(fp128 %f)
-define void @f3(fp128 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: fixbr %f0, 0, %f0
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.rint.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -60,13 +60,13 @@ define double @f5(double %f) {
 
 ; Test nearbyint for f128.
 declare fp128 @llvm.nearbyint.f128(fp128 %f)
-define void @f6(fp128 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: fixbra %f0, 0, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.nearbyint.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -92,13 +92,13 @@ define double @f8(double %f) {
 
 ; Test floor for f128.
 declare fp128 @llvm.floor.f128(fp128 %f)
-define void @f9(fp128 *%ptr) {
+define void @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: fixbra %f0, 7, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.floor.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -124,13 +124,13 @@ define double @f11(double %f) {
 
 ; Test ceil for f128.
 declare fp128 @llvm.ceil.f128(fp128 %f)
-define void @f12(fp128 *%ptr) {
+define void @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: fixbra %f0, 6, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.ceil.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -156,13 +156,13 @@ define double @f14(double %f) {
 
 ; Test trunc for f128.
 declare fp128 @llvm.trunc.f128(fp128 %f)
-define void @f15(fp128 *%ptr) {
+define void @f15(ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: fixbra %f0, 5, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.trunc.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -188,12 +188,12 @@ define double @f17(double %f) {
 
 ; Test round for f128.
 declare fp128 @llvm.round.f128(fp128 %f)
-define void @f18(fp128 *%ptr) {
+define void @f18(ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: fixbra %f0, 1, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.round.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-round-03.ll b/llvm/test/CodeGen/SystemZ/fp-round-03.ll
index 85f777c02d6d3..d35cafc406ad7 100644
--- a/llvm/test/CodeGen/SystemZ/fp-round-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-round-03.ll
@@ -24,15 +24,15 @@ define double @f2(double %f) {
 
 ; Test rint for f128.
 declare fp128 @llvm.rint.f128(fp128 %f)
-define void @f3(fp128 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 0, 0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.rint.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -58,15 +58,15 @@ define double @f5(double %f) {
 
 ; Test nearbyint for f128.
 declare fp128 @llvm.nearbyint.f128(fp128 %f)
-define void @f6(fp128 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.nearbyint.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -92,15 +92,15 @@ define double @f8(double %f) {
 
 ; Test floor for f128.
 declare fp128 @llvm.floor.f128(fp128 %f)
-define void @f9(fp128 *%ptr) {
+define void @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 7
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.floor.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -126,15 +126,15 @@ define double @f11(double %f) {
 
 ; Test ceil for f128.
 declare fp128 @llvm.ceil.f128(fp128 %f)
-define void @f12(fp128 *%ptr) {
+define void @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 6
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.ceil.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -160,15 +160,15 @@ define double @f14(double %f) {
 
 ; Test trunc for f128.
 declare fp128 @llvm.trunc.f128(fp128 %f)
-define void @f15(fp128 *%ptr) {
+define void @f15(ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 5
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.trunc.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -194,14 +194,14 @@ define double @f17(double %f) {
 
 ; Test round for f128.
 declare fp128 @llvm.round.f128(fp128 %f)
-define void @f18(fp128 *%ptr) {
+define void @f18(ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 1
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.round.f128(fp128 %src)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sqrt-01.ll b/llvm/test/CodeGen/SystemZ/fp-sqrt-01.ll
index d62cdc2109281..996bdc458b9de 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sqrt-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sqrt-01.ll
@@ -17,87 +17,87 @@ define float @f1(float %val) {
 }
 
 ; Check the low end of the SQEB range.
-define float @f2(float *%ptr) {
+define float @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: sqeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %res = call float @llvm.sqrt.f32(float %val)
   ret float %res
 }
 
 ; Check the high end of the aligned SQEB range.
-define float @f3(float *%base) {
+define float @f3(ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: sqeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %val = load float, ptr %ptr
   %res = call float @llvm.sqrt.f32(float %val)
   ret float %res
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float *%base) {
+define float @f4(ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: sqeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %val = load float, ptr %ptr
   %res = call float @llvm.sqrt.f32(float %val)
   ret float %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float *%base) {
+define float @f5(ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: sqeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %val = load float, ptr %ptr
   %res = call float @llvm.sqrt.f32(float %val)
   ret float %res
 }
 
 ; Check that SQEB allows indices.
-define float @f6(float *%base, i64 %index) {
+define float @f6(ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: sqeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %val = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %val = load float, ptr %ptr2
   %res = call float @llvm.sqrt.f32(float %val)
   ret float %res
 }
 
 ; Test a case where we spill the source of at least one SQEBR.  We want
 ; to use SQEB if possible.
-define void @f7(float *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-SCALAR: sqeb {{%f[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile float, float *%ptr
-  %val1 = load volatile float, float *%ptr
-  %val2 = load volatile float, float *%ptr
-  %val3 = load volatile float, float *%ptr
-  %val4 = load volatile float, float *%ptr
-  %val5 = load volatile float, float *%ptr
-  %val6 = load volatile float, float *%ptr
-  %val7 = load volatile float, float *%ptr
-  %val8 = load volatile float, float *%ptr
-  %val9 = load volatile float, float *%ptr
-  %val10 = load volatile float, float *%ptr
-  %val11 = load volatile float, float *%ptr
-  %val12 = load volatile float, float *%ptr
-  %val13 = load volatile float, float *%ptr
-  %val14 = load volatile float, float *%ptr
-  %val15 = load volatile float, float *%ptr
-  %val16 = load volatile float, float *%ptr
+  %val0 = load volatile float, ptr %ptr
+  %val1 = load volatile float, ptr %ptr
+  %val2 = load volatile float, ptr %ptr
+  %val3 = load volatile float, ptr %ptr
+  %val4 = load volatile float, ptr %ptr
+  %val5 = load volatile float, ptr %ptr
+  %val6 = load volatile float, ptr %ptr
+  %val7 = load volatile float, ptr %ptr
+  %val8 = load volatile float, ptr %ptr
+  %val9 = load volatile float, ptr %ptr
+  %val10 = load volatile float, ptr %ptr
+  %val11 = load volatile float, ptr %ptr
+  %val12 = load volatile float, ptr %ptr
+  %val13 = load volatile float, ptr %ptr
+  %val14 = load volatile float, ptr %ptr
+  %val15 = load volatile float, ptr %ptr
+  %val16 = load volatile float, ptr %ptr
 
   %sqrt0 = call float @llvm.sqrt.f32(float %val0)
   %sqrt1 = call float @llvm.sqrt.f32(float %val1)
@@ -117,41 +117,41 @@ define void @f7(float *%ptr) {
   %sqrt15 = call float @llvm.sqrt.f32(float %val15)
   %sqrt16 = call float @llvm.sqrt.f32(float %val16)
 
-  store volatile float %val0, float *%ptr
-  store volatile float %val1, float *%ptr
-  store volatile float %val2, float *%ptr
-  store volatile float %val3, float *%ptr
-  store volatile float %val4, float *%ptr
-  store volatile float %val5, float *%ptr
-  store volatile float %val6, float *%ptr
-  store volatile float %val7, float *%ptr
-  store volatile float %val8, float *%ptr
-  store volatile float %val9, float *%ptr
-  store volatile float %val10, float *%ptr
-  store volatile float %val11, float *%ptr
-  store volatile float %val12, float *%ptr
-  store volatile float %val13, float *%ptr
-  store volatile float %val14, float *%ptr
-  store volatile float %val15, float *%ptr
-  store volatile float %val16, float *%ptr
+  store volatile float %val0, ptr %ptr
+  store volatile float %val1, ptr %ptr
+  store volatile float %val2, ptr %ptr
+  store volatile float %val3, ptr %ptr
+  store volatile float %val4, ptr %ptr
+  store volatile float %val5, ptr %ptr
+  store volatile float %val6, ptr %ptr
+  store volatile float %val7, ptr %ptr
+  store volatile float %val8, ptr %ptr
+  store volatile float %val9, ptr %ptr
+  store volatile float %val10, ptr %ptr
+  store volatile float %val11, ptr %ptr
+  store volatile float %val12, ptr %ptr
+  store volatile float %val13, ptr %ptr
+  store volatile float %val14, ptr %ptr
+  store volatile float %val15, ptr %ptr
+  store volatile float %val16, ptr %ptr
 
-  store volatile float %sqrt0, float *%ptr
-  store volatile float %sqrt1, float *%ptr
-  store volatile float %sqrt2, float *%ptr
-  store volatile float %sqrt3, float *%ptr
-  store volatile float %sqrt4, float *%ptr
-  store volatile float %sqrt5, float *%ptr
-  store volatile float %sqrt6, float *%ptr
-  store volatile float %sqrt7, float *%ptr
-  store volatile float %sqrt8, float *%ptr
-  store volatile float %sqrt9, float *%ptr
-  store volatile float %sqrt10, float *%ptr
-  store volatile float %sqrt11, float *%ptr
-  store volatile float %sqrt12, float *%ptr
-  store volatile float %sqrt13, float *%ptr
-  store volatile float %sqrt14, float *%ptr
-  store volatile float %sqrt15, float *%ptr
-  store volatile float %sqrt16, float *%ptr
+  store volatile float %sqrt0, ptr %ptr
+  store volatile float %sqrt1, ptr %ptr
+  store volatile float %sqrt2, ptr %ptr
+  store volatile float %sqrt3, ptr %ptr
+  store volatile float %sqrt4, ptr %ptr
+  store volatile float %sqrt5, ptr %ptr
+  store volatile float %sqrt6, ptr %ptr
+  store volatile float %sqrt7, ptr %ptr
+  store volatile float %sqrt8, ptr %ptr
+  store volatile float %sqrt9, ptr %ptr
+  store volatile float %sqrt10, ptr %ptr
+  store volatile float %sqrt11, ptr %ptr
+  store volatile float %sqrt12, ptr %ptr
+  store volatile float %sqrt13, ptr %ptr
+  store volatile float %sqrt14, ptr %ptr
+  store volatile float %sqrt15, ptr %ptr
+  store volatile float %sqrt16, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sqrt-02.ll b/llvm/test/CodeGen/SystemZ/fp-sqrt-02.ll
index dcb3e0d84d325..e8210374c323d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sqrt-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sqrt-02.ll
@@ -17,87 +17,87 @@ define double @f1(double %val) {
 }
 
 ; Check the low end of the SQDB range.
-define double @f2(double *%ptr) {
+define double @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: sqdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %res = call double @llvm.sqrt.f64(double %val)
   ret double %res
 }
 
 ; Check the high end of the aligned SQDB range.
-define double @f3(double *%base) {
+define double @f3(ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: sqdb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %val = load double, ptr %ptr
   %res = call double @llvm.sqrt.f64(double %val)
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double *%base) {
+define double @f4(ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: sqdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %val = load double, ptr %ptr
   %res = call double @llvm.sqrt.f64(double %val)
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double *%base) {
+define double @f5(ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: sqdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %val = load double, ptr %ptr
   %res = call double @llvm.sqrt.f64(double %val)
   ret double %res
 }
 
 ; Check that SQDB allows indices.
-define double @f6(double *%base, i64 %index) {
+define double @f6(ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: sqdb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %val = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %val = load double, ptr %ptr2
   %res = call double @llvm.sqrt.f64(double %val)
   ret double %res
 }
 
 ; Test a case where we spill the source of at least one SQDBR.  We want
 ; to use SQDB if possible.
-define void @f7(double *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-SCALAR: sqdb {{%f[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile double, double *%ptr
-  %val1 = load volatile double, double *%ptr
-  %val2 = load volatile double, double *%ptr
-  %val3 = load volatile double, double *%ptr
-  %val4 = load volatile double, double *%ptr
-  %val5 = load volatile double, double *%ptr
-  %val6 = load volatile double, double *%ptr
-  %val7 = load volatile double, double *%ptr
-  %val8 = load volatile double, double *%ptr
-  %val9 = load volatile double, double *%ptr
-  %val10 = load volatile double, double *%ptr
-  %val11 = load volatile double, double *%ptr
-  %val12 = load volatile double, double *%ptr
-  %val13 = load volatile double, double *%ptr
-  %val14 = load volatile double, double *%ptr
-  %val15 = load volatile double, double *%ptr
-  %val16 = load volatile double, double *%ptr
+  %val0 = load volatile double, ptr %ptr
+  %val1 = load volatile double, ptr %ptr
+  %val2 = load volatile double, ptr %ptr
+  %val3 = load volatile double, ptr %ptr
+  %val4 = load volatile double, ptr %ptr
+  %val5 = load volatile double, ptr %ptr
+  %val6 = load volatile double, ptr %ptr
+  %val7 = load volatile double, ptr %ptr
+  %val8 = load volatile double, ptr %ptr
+  %val9 = load volatile double, ptr %ptr
+  %val10 = load volatile double, ptr %ptr
+  %val11 = load volatile double, ptr %ptr
+  %val12 = load volatile double, ptr %ptr
+  %val13 = load volatile double, ptr %ptr
+  %val14 = load volatile double, ptr %ptr
+  %val15 = load volatile double, ptr %ptr
+  %val16 = load volatile double, ptr %ptr
 
   %sqrt0 = call double @llvm.sqrt.f64(double %val0)
   %sqrt1 = call double @llvm.sqrt.f64(double %val1)
@@ -117,41 +117,41 @@ define void @f7(double *%ptr) {
   %sqrt15 = call double @llvm.sqrt.f64(double %val15)
   %sqrt16 = call double @llvm.sqrt.f64(double %val16)
 
-  store volatile double %val0, double *%ptr
-  store volatile double %val1, double *%ptr
-  store volatile double %val2, double *%ptr
-  store volatile double %val3, double *%ptr
-  store volatile double %val4, double *%ptr
-  store volatile double %val5, double *%ptr
-  store volatile double %val6, double *%ptr
-  store volatile double %val7, double *%ptr
-  store volatile double %val8, double *%ptr
-  store volatile double %val9, double *%ptr
-  store volatile double %val10, double *%ptr
-  store volatile double %val11, double *%ptr
-  store volatile double %val12, double *%ptr
-  store volatile double %val13, double *%ptr
-  store volatile double %val14, double *%ptr
-  store volatile double %val15, double *%ptr
-  store volatile double %val16, double *%ptr
+  store volatile double %val0, ptr %ptr
+  store volatile double %val1, ptr %ptr
+  store volatile double %val2, ptr %ptr
+  store volatile double %val3, ptr %ptr
+  store volatile double %val4, ptr %ptr
+  store volatile double %val5, ptr %ptr
+  store volatile double %val6, ptr %ptr
+  store volatile double %val7, ptr %ptr
+  store volatile double %val8, ptr %ptr
+  store volatile double %val9, ptr %ptr
+  store volatile double %val10, ptr %ptr
+  store volatile double %val11, ptr %ptr
+  store volatile double %val12, ptr %ptr
+  store volatile double %val13, ptr %ptr
+  store volatile double %val14, ptr %ptr
+  store volatile double %val15, ptr %ptr
+  store volatile double %val16, ptr %ptr
 
-  store volatile double %sqrt0, double *%ptr
-  store volatile double %sqrt1, double *%ptr
-  store volatile double %sqrt2, double *%ptr
-  store volatile double %sqrt3, double *%ptr
-  store volatile double %sqrt4, double *%ptr
-  store volatile double %sqrt5, double *%ptr
-  store volatile double %sqrt6, double *%ptr
-  store volatile double %sqrt7, double *%ptr
-  store volatile double %sqrt8, double *%ptr
-  store volatile double %sqrt9, double *%ptr
-  store volatile double %sqrt10, double *%ptr
-  store volatile double %sqrt11, double *%ptr
-  store volatile double %sqrt12, double *%ptr
-  store volatile double %sqrt13, double *%ptr
-  store volatile double %sqrt14, double *%ptr
-  store volatile double %sqrt15, double *%ptr
-  store volatile double %sqrt16, double *%ptr
+  store volatile double %sqrt0, ptr %ptr
+  store volatile double %sqrt1, ptr %ptr
+  store volatile double %sqrt2, ptr %ptr
+  store volatile double %sqrt3, ptr %ptr
+  store volatile double %sqrt4, ptr %ptr
+  store volatile double %sqrt5, ptr %ptr
+  store volatile double %sqrt6, ptr %ptr
+  store volatile double %sqrt7, ptr %ptr
+  store volatile double %sqrt8, ptr %ptr
+  store volatile double %sqrt9, ptr %ptr
+  store volatile double %sqrt10, ptr %ptr
+  store volatile double %sqrt11, ptr %ptr
+  store volatile double %sqrt12, ptr %ptr
+  store volatile double %sqrt13, ptr %ptr
+  store volatile double %sqrt14, ptr %ptr
+  store volatile double %sqrt15, ptr %ptr
+  store volatile double %sqrt16, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sqrt-03.ll b/llvm/test/CodeGen/SystemZ/fp-sqrt-03.ll
index 90cbad35a47f1..b008344dfdde4 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sqrt-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sqrt-03.ll
@@ -5,7 +5,7 @@
 declare fp128 @llvm.sqrt.f128(fp128 %f)
 
 ; There's no memory form of SQXBR.
-define void @f1(fp128 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
@@ -13,8 +13,8 @@ define void @f1(fp128 *%ptr) {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %sqrt = call fp128 @llvm.sqrt.f128(fp128 %orig)
-  store fp128 %sqrt, fp128 *%ptr
+  store fp128 %sqrt, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sqrt-04.ll b/llvm/test/CodeGen/SystemZ/fp-sqrt-04.ll
index e0fb2569b39a0..42f7df6f5ce5b 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sqrt-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sqrt-04.ll
@@ -4,14 +4,14 @@
 
 declare fp128 @llvm.sqrt.f128(fp128 %f)
 
-define void @f1(fp128 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfsqxb [[RES:%v[0-9]+]], [[REG]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %res = call fp128 @llvm.sqrt.f128(fp128 %f)
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-add-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-add-01.ll
index d95ab9331e88f..d3ff61c533873 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-add-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-add-01.ll
@@ -20,11 +20,11 @@ define float @f1(float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the AEB range.
-define float @f2(float %f1, float *%ptr) #0 {
+define float @f2(float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: aeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fadd.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define float @f2(float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned AEB range.
-define float @f3(float %f1, float *%base) #0 {
+define float @f3(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: aeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fadd.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define float @f3(float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) #0 {
+define float @f4(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: aeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fadd.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define float @f4(float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) #0 {
+define float @f5(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: aeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fadd.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define float @f5(float %f1, float *%base) #0 {
 }
 
 ; Check that AEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) #0 {
+define float @f6(float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: aeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = call float @llvm.experimental.constrained.fadd.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define float @f6(float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that additions of spilled values can use AEB rather than AEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: aeb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-add-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-add-02.ll
index 2693aef7c7ff4..77edf3c5f8c2f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-add-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-add-02.ll
@@ -19,11 +19,11 @@ define double @f1(double %f1, double %f2) #0 {
 }
 
 ; Check the low end of the ADB range.
-define double @f2(double %f1, double *%ptr) #0 {
+define double @f2(double %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: adb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fadd.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -32,12 +32,12 @@ define double @f2(double %f1, double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned ADB range.
-define double @f3(double %f1, double *%base) #0 {
+define double @f3(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: adb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fadd.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -47,13 +47,13 @@ define double @f3(double %f1, double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) #0 {
+define double @f4(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: adb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fadd.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -62,13 +62,13 @@ define double @f4(double %f1, double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) #0 {
+define double @f5(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: adb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fadd.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -77,14 +77,14 @@ define double @f5(double %f1, double *%base) #0 {
 }
 
 ; Check that ADB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) #0 {
+define double @f6(double %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: adb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = call double @llvm.experimental.constrained.fadd.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -93,33 +93,33 @@ define double @f6(double %f1, double *%base, i64 %index) #0 {
 }
 
 ; Check that additions of spilled values can use ADB rather than ADBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: adb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-add-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-add-03.ll
index 13710a1f0881f..bd9767d8800b4 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-add-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-add-03.ll
@@ -6,7 +6,7 @@ declare fp128 @llvm.experimental.constrained.fadd.f128(fp128, fp128, metadata, m
 declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata)
 
 ; There is no memory form of 128-bit addition.
-define void @f1(fp128 *%ptr, float %f2) strictfp {
+define void @f1(ptr %ptr, float %f2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -15,14 +15,14 @@ define void @f1(fp128 *%ptr, float %f2) strictfp {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %f2,
                                                metadata !"fpexcept.strict") #0
   %sum = call fp128 @llvm.experimental.constrained.fadd.f128(
                         fp128 %f1, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %sum, fp128 *%ptr
+  store fp128 %sum, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-add-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-add-04.ll
index 98a3454a8986e..d1eb933f9b9e7 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-add-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-add-04.ll
@@ -4,19 +4,19 @@
 
 declare fp128 @llvm.experimental.constrained.fadd.f128(fp128, fp128, metadata, metadata)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) strictfp {
+define void @f1(ptr %ptr1, ptr %ptr2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = call fp128 @llvm.experimental.constrained.fadd.f128(
                         fp128 %f1, fp128 %f2,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") strictfp
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-alias.ll b/llvm/test/CodeGen/SystemZ/fp-strict-alias.ll
index ae1f748d62514..32d05b7ebb160 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-alias.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-alias.ll
@@ -14,7 +14,7 @@ declare void @bar()
 
 ; We can move any FP operation across a (normal) store.
 
-define void @f1(float %f1, float %f2, float *%ptr1, float *%ptr2) {
+define void @f1(float %f1, float %f2, ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -25,13 +25,13 @@ define void @f1(float %f1, float %f2, float *%ptr1, float *%ptr2) {
   %sqrt1 = call float @llvm.sqrt.f32(float %f1)
   %sqrt2 = call float @llvm.sqrt.f32(float %f2)
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f2(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f2(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -48,13 +48,13 @@ define void @f2(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.ignore") #0
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f3(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f3(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -71,13 +71,13 @@ define void @f3(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.maytrap") #0
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f4(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f4(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -94,8 +94,8 @@ define void @f4(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
@@ -105,7 +105,7 @@ define void @f4(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
 ; operation even across a volatile store, but not a fpexcept.maytrap
 ; or fpexcept.strict operation.
 
-define void @f5(float %f1, float %f2, float *%ptr1, float *%ptr2) {
+define void @f5(float %f1, float %f2, ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f5:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -116,13 +116,13 @@ define void @f5(float %f1, float %f2, float *%ptr1, float *%ptr2) {
   %sqrt1 = call float @llvm.sqrt.f32(float %f1)
   %sqrt2 = call float @llvm.sqrt.f32(float %f2)
 
-  store volatile float %sqrt1, float *%ptr1
-  store volatile float %sqrt2, float *%ptr2
+  store volatile float %sqrt1, ptr %ptr1
+  store volatile float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f6(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f6(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -139,13 +139,13 @@ define void @f6(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.ignore") #0
 
-  store volatile float %sqrt1, float *%ptr1
-  store volatile float %sqrt2, float *%ptr2
+  store volatile float %sqrt1, ptr %ptr1
+  store volatile float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f7(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f7(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: sqebr
 ; CHECK: sqebr
@@ -162,13 +162,13 @@ define void @f7(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.maytrap") #0
 
-  store volatile float %sqrt1, float *%ptr1
-  store volatile float %sqrt2, float *%ptr2
+  store volatile float %sqrt1, ptr %ptr1
+  store volatile float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f8(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f8(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: sqebr
 ; CHECK: sqebr
@@ -185,8 +185,8 @@ define void @f8(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
 
-  store volatile float %sqrt1, float *%ptr1
-  store volatile float %sqrt2, float *%ptr2
+  store volatile float %sqrt1, ptr %ptr1
+  store volatile float %sqrt2, ptr %ptr2
 
   ret void
 }
@@ -194,7 +194,7 @@ define void @f8(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
 
 ; No variant of FP operations can be scheduled across a SPFC.
 
-define void @f9(float %f1, float %f2, float *%ptr1, float *%ptr2) {
+define void @f9(float %f1, float %f2, ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f9:
 ; CHECK: sqebr
 ; CHECK: sqebr
@@ -207,13 +207,13 @@ define void @f9(float %f1, float %f2, float *%ptr1, float *%ptr2) {
 
   call void @llvm.s390.sfpc(i32 0)
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f10(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f10(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f10:
 ; CHECK: sqebr
 ; CHECK: sqebr
@@ -232,13 +232,13 @@ define void @f10(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
 
   call void @llvm.s390.sfpc(i32 0) #0
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f11(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f11(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f11:
 ; CHECK: sqebr
 ; CHECK: sqebr
@@ -257,13 +257,13 @@ define void @f11(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
 
   call void @llvm.s390.sfpc(i32 0) #0
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
 
-define void @f12(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
+define void @f12(float %f1, float %f2, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f12:
 ; CHECK: sqebr
 ; CHECK: sqebr
@@ -282,8 +282,8 @@ define void @f12(float %f1, float %f2, float *%ptr1, float *%ptr2) #0 {
 
   call void @llvm.s390.sfpc(i32 0) #0
 
-  store float %sqrt1, float *%ptr1
-  store float %sqrt2, float *%ptr2
+  store float %sqrt1, ptr %ptr1
+  store float %sqrt2, ptr %ptr2
 
   ret void
 }
@@ -344,7 +344,7 @@ define void @f16(float %f1) #0 {
 ; Verify that constrained intrinsics and memory operations get their
 ; chains linked up properly.
 
-define void @f17(float %in, float* %out) #0 {
+define void @f17(float %in, ptr %out) #0 {
 ; CHECK-LABEL: f17:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -353,12 +353,12 @@ define void @f17(float %in, float* %out) #0 {
                         float %in,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.ignore") #0
-  store float %sqrt, float* %out, align 4
+  store float %sqrt, ptr %out, align 4
   tail call void @bar() #0
   ret void
 }
 
-define void @f18(float %in, float* %out) #0 {
+define void @f18(float %in, ptr %out) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -367,12 +367,12 @@ define void @f18(float %in, float* %out) #0 {
                         float %in,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.ignore") #0
-  store float %sqrt, float* %out, align 4
+  store float %sqrt, ptr %out, align 4
   tail call void @bar() #0
   ret void
 }
 
-define void @f19(float %in, float* %out) #0 {
+define void @f19(float %in, ptr %out) #0 {
 ; CHECK-LABEL: f19:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -381,12 +381,12 @@ define void @f19(float %in, float* %out) #0 {
                         float %in,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.maytrap") #0
-  store float %sqrt, float* %out, align 4
+  store float %sqrt, ptr %out, align 4
   tail call void @bar() #0
   ret void
 }
 
-define void @f20(float %in, float* %out) #0 {
+define void @f20(float %in, ptr %out) #0 {
 ; CHECK-LABEL: f20:
 ; CHECK: sqebr
 ; CHECK: ste
@@ -395,7 +395,7 @@ define void @f20(float %in, float* %out) #0 {
                         float %in,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store float %sqrt, float* %out, align 4
+  store float %sqrt, ptr %out, align 4
   tail call void @bar() #0
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-01.ll
index 3a815294a3127..6511536d5fc0d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-01.ll
@@ -25,14 +25,14 @@ define i64 @f1(i64 %a, i64 %b, float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the CEB range.
-define i64 @f2(i64 %a, i64 %b, float %f1, float *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -42,15 +42,15 @@ define i64 @f2(i64 %a, i64 %b, float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned CEB range.
-define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) #0 {
+define i64 @f3(i64 %a, i64 %b, float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: ceb %f0, 4092(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -61,7 +61,7 @@ define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) #0 {
+define i64 @f4(i64 %a, i64 %b, float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r4, 4096
 ; CHECK: ceb %f0, 0(%r4)
@@ -69,8 +69,8 @@ define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -80,7 +80,7 @@ define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) #0 {
+define i64 @f5(i64 %a, i64 %b, float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r4, -4
 ; CHECK: ceb %f0, 0(%r4)
@@ -88,8 +88,8 @@ define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -99,7 +99,7 @@ define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) #0 {
 }
 
 ; Check that CEB allows indices.
-define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) #0 {
+define i64 @f6(i64 %a, i64 %b, float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r5, 2
 ; CHECK: ceb %f0, 400(%r1,%r4)
@@ -107,9 +107,9 @@ define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -119,33 +119,33 @@ define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that comparisons of spilled values can use CEB rather than CEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: ceb {{%f[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo() #0
 
@@ -227,14 +227,14 @@ define i64 @f8(i64 %a, i64 %b, float %f) #0 {
 
 ; Check the comparison can be reversed if that allows CEB to be used,
 ; first with oeq.
-define i64 @f9(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f9(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -244,14 +244,14 @@ define i64 @f9(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then one.
-define i64 @f10(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f10(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f10:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnlh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"one",
@@ -261,14 +261,14 @@ define i64 @f10(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then olt.
-define i64 @f11(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f11(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f11:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"olt",
@@ -278,14 +278,14 @@ define i64 @f11(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ole.
-define i64 @f12(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f12(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f12:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bher %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnhe %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"ole",
@@ -295,14 +295,14 @@ define i64 @f12(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then oge.
-define i64 @f13(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f13(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f13:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bler %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnle %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"oge",
@@ -312,14 +312,14 @@ define i64 @f13(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ogt.
-define i64 @f14(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f14(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f14:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"ogt",
@@ -329,14 +329,14 @@ define i64 @f14(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ueq.
-define i64 @f15(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f15(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnlhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrlh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"ueq",
@@ -346,14 +346,14 @@ define i64 @f15(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then une.
-define i64 @f16(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f16(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f16:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bner %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgre %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"une",
@@ -363,14 +363,14 @@ define i64 @f16(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ult.
-define i64 @f17(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f17(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f17:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnler %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrle %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"ult",
@@ -380,14 +380,14 @@ define i64 @f17(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ule.
-define i64 @f18(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f18(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnlr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"ule",
@@ -397,14 +397,14 @@ define i64 @f18(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then uge.
-define i64 @f19(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f19(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f19:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"uge",
@@ -414,14 +414,14 @@ define i64 @f19(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ugt.
-define i64 @f20(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f20(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f20:
 ; CHECK: ceb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnher %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrhe %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %f1, float %f2,
                                                metadata !"ugt",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-02.ll
index 12a39951ffff1..86f6712ed4369 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-02.ll
@@ -25,14 +25,14 @@ define i64 @f1(i64 %a, i64 %b, double %f1, double %f2) #0 {
 }
 
 ; Check the low end of the CDB range.
-define i64 @f2(i64 %a, i64 %b, double %f1, double *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, double %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: cdb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -42,15 +42,15 @@ define i64 @f2(i64 %a, i64 %b, double %f1, double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned CDB range.
-define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) #0 {
+define i64 @f3(i64 %a, i64 %b, double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: cdb %f0, 4088(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -61,7 +61,7 @@ define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) #0 {
+define i64 @f4(i64 %a, i64 %b, double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r4, 4096
 ; CHECK: cdb %f0, 0(%r4)
@@ -69,8 +69,8 @@ define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -80,7 +80,7 @@ define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) #0 {
+define i64 @f5(i64 %a, i64 %b, double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r4, -8
 ; CHECK: cdb %f0, 0(%r4)
@@ -88,8 +88,8 @@ define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -99,7 +99,7 @@ define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) #0 {
 }
 
 ; Check that CDB allows indices.
-define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) #0 {
+define i64 @f6(i64 %a, i64 %b, double %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r5, 3
 ; CHECK: cdb %f0, 800(%r1,%r4)
@@ -107,9 +107,9 @@ define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %cond = call i1 @llvm.experimental.constrained.fcmp.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -119,33 +119,33 @@ define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) #0 {
 }
 
 ; Check that comparisons of spilled values can use CDB rather than CDBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: cdb {{%f[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
-
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
+
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo() #0
 
@@ -227,14 +227,14 @@ define i64 @f8(i64 %a, i64 %b, double %f) #0 {
 }
 
 ; Check the comparison can be reversed if that allows CDB to be used,
-define i64 @f9(i64 %a, i64 %b, double %f2, double *%ptr) #0 {
+define i64 @f9(i64 %a, i64 %b, double %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: cdb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load double, double *%ptr
+  %f1 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f64(
                                                double %f1, double %f2,
                                                metadata !"ogt",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-03.ll
index ae94572eb1611..61919b5e7121e 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-03.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; There is no memory form of 128-bit comparison.
-define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) #0 {
+define i64 @f1(i64 %a, i64 %b, ptr %ptr, float %f2) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r4)
@@ -14,7 +14,7 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) #0 {
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
   %f2x = fpext float %f2 to fp128
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f128(
                                                fp128 %f1, fp128 %f2x,
                                                metadata !"oeq",
@@ -24,7 +24,7 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) #0 {
 }
 
 ; Check comparison with zero.
-define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: ld %f0, 0(%r4)
 ; CHECK: ld %f2, 8(%r4)
@@ -32,7 +32,7 @@ define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) #0 {
 ; CHECK-NEXT: ber %r14
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f128(
                                                fp128 %f, fp128 0xL00000000000000000000000000000000,
                                                metadata !"oeq",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-04.ll
index de052935a41f9..bc6f3f469c3a2 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-04.ll
@@ -11,7 +11,7 @@
 declare float @llvm.fabs.f32(float %f)
 
 ; Test addition followed by EQ, which can use the CC result of the addition.
-define float @f1(float %a, float %b, float *%dest) #0 {
+define float @f1(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: ber %r14
@@ -28,7 +28,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -36,7 +36,7 @@ exit:
 }
 
 ; ...and again with LT.
-define float @f2(float %a, float %b, float *%dest) #0 {
+define float @f2(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: blr %r14
@@ -53,7 +53,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -61,7 +61,7 @@ exit:
 }
 
 ; ...and again with GT.
-define float @f3(float %a, float %b, float *%dest) #0 {
+define float @f3(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: bhr %r14
@@ -78,7 +78,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -86,7 +86,7 @@ exit:
 }
 
 ; ...and again with UEQ.
-define float @f4(float %a, float %b, float *%dest) #0 {
+define float @f4(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: bnlhr %r14
@@ -103,7 +103,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -111,13 +111,13 @@ exit:
 }
 
 ; Subtraction also provides a zero-based CC value.
-define float @f5(float %a, float %b, float *%dest) #0 {
+define float @f5(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK-NEXT: bnher %r14
 ; CHECK: br %r14
 entry:
-  %cur = load float, float *%dest
+  %cur = load float, ptr %dest
   %res = call float @llvm.experimental.constrained.fsub.f32(
                         float %a, float %cur,
                         metadata !"round.dynamic",
@@ -129,7 +129,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -137,7 +137,7 @@ exit:
 }
 
 ; Test the result of LOAD POSITIVE.  We cannot omit the LTEBR.
-define float @f6(float %dummy, float %a, float *%dest) #0 {
+define float @f6(float %dummy, float %a, ptr %dest) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: lpdfr %f0, %f2
 ; CHECK-NEXT: ltebr %f0, %f0
@@ -152,7 +152,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -160,7 +160,7 @@ exit:
 }
 
 ; Test the result of LOAD NEGATIVE.  We cannot omit the LTEBR.
-define float @f7(float %dummy, float %a, float *%dest) #0 {
+define float @f7(float %dummy, float %a, ptr %dest) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: lndfr %f0, %f2
 ; CHECK-NEXT: ltebr %f0, %f0
@@ -176,7 +176,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -184,7 +184,7 @@ exit:
 }
 
 ; Test the result of LOAD COMPLEMENT.  We cannot omit the LTEBR.
-define float @f8(float %dummy, float %a, float *%dest) #0 {
+define float @f8(float %dummy, float %a, ptr %dest) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: lcdfr %f0, %f2
 ; CHECK-NEXT: ltebr %f0, %f0
@@ -199,7 +199,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -207,7 +207,7 @@ exit:
 }
 
 ; Multiplication (for example) does not modify CC.
-define float @f9(float %a, float %b, float *%dest) #0 {
+define float @f9(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: meebr %f0, %f2
 ; CHECK-NEXT: ltebr %f0, %f0
@@ -225,7 +225,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -234,7 +234,7 @@ exit:
 
 ; Test a combination involving a CC-setting instruction followed by
 ; a non-CC-setting instruction.
-define float @f10(float %a, float %b, float %c, float *%dest) #0 {
+define float @f10(float %a, float %b, float %c, ptr %dest) #0 {
 ; CHECK-LABEL: f10:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: debr %f0, %f4
@@ -257,7 +257,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -266,7 +266,7 @@ exit:
 
 ; Test a case where CC is set based on a 
diff erent register from the
 ; compare input.
-define float @f11(float %a, float %b, float %c, float *%dest1, float *%dest2) #0 {
+define float @f11(float %a, float %b, float %c, ptr %dest1, ptr %dest2) #0 {
 ; CHECK-LABEL: f11:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: sebr %f4, %f0
@@ -283,7 +283,7 @@ entry:
                         float %c, float %add,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store float %sub, float *%dest1
+  store float %sub, ptr %dest1
   %cmp = call i1 @llvm.experimental.constrained.fcmp.f32(
                                                float %add, float 0.0,
                                                metadata !"oeq",
@@ -291,7 +291,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %sub, float *%dest2
+  store float %sub, ptr %dest2
   br label %exit
 
 exit:
@@ -349,7 +349,7 @@ exit:
 }
 
 ; Test that LXR gets converted to LTXBR where useful.
-define void @f14(fp128 *%ptr1, fp128 *%ptr2) #0 {
+define void @f14(ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f14:
 ; CHECK: ltxbr
 ; CHECK-NEXT: dxbr
@@ -361,12 +361,12 @@ define void @f14(fp128 *%ptr1, fp128 *%ptr2) #0 {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val1 = load fp128, fp128 *%ptr1
-  %val2 = load fp128, fp128 *%ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %div = fdiv fp128 %val1, %val2
-  store fp128 %div, fp128 *%ptr1
+  store fp128 %div, ptr %ptr1
   %mul = fmul fp128 %val1, %val2
-  store fp128 %mul, fp128 *%ptr2
+  store fp128 %mul, ptr %ptr2
   %cmp = call i1 @llvm.experimental.constrained.fcmp.f128(
                                                fp128 %val1, fp128 0xL00000000000000000000000000000000,
                                                metadata !"olt",
@@ -434,7 +434,7 @@ exit:
 }
 
 ; Repeat f2 with a comparison against -0.
-define float @f17(float %a, float %b, float *%dest) #0 {
+define float @f17(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f17:
 ; CHECK: aebr %f0, %f2
 ; CHECK-NEXT: blr %r14
@@ -451,7 +451,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -460,7 +460,7 @@ exit:
 
 ; Verify that we cannot omit the compare if there may be an intervening
 ; change to the exception flags.
-define float @f18(float %a, float %b, float *%dest) #0 {
+define float @f18(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: aebr %f0, %f2
 ; CHECK: ltebr %f0, %f0
@@ -479,7 +479,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-06.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-06.ll
index 5192ec6d134a3..d927ccbae2e3c 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmp-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmp-06.ll
@@ -3,15 +3,15 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
 ; There is no memory form of 128-bit comparison.
-define i64 @f1(i64 %a, i64 %b, fp128 *%ptr1, fp128 *%ptr2) #0 {
+define i64 @f1(i64 %a, i64 %b, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r4)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r5)
 ; CHECK: wfcxb [[REG1]], [[REG2]]
 ; CHECK-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %cond = call i1 @llvm.experimental.constrained.fcmp.f128(
                                                fp128 %f1, fp128 %f2,
                                                metadata !"oeq",
@@ -22,14 +22,14 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr1, fp128 *%ptr2) #0 {
 
 ; Check comparison with zero -- it is not worthwhile to copy to
 ; FP pairs just so we can use LTXBR, so simply load up a zero.
-define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r4)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfcxb [[REG1]], [[REG2]]
 ; CHECK-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmp.f128(
                                                fp128 %f, fp128 0xL00000000000000000000000000000000,
                                                metadata !"oeq",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-01.ll
index fa51e53a4b9aa..ac8894417921c 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-01.ll
@@ -25,14 +25,14 @@ define i64 @f1(i64 %a, i64 %b, float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the KEB range.
-define i64 @f2(i64 %a, i64 %b, float %f1, float *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -42,15 +42,15 @@ define i64 @f2(i64 %a, i64 %b, float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned KEB range.
-define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) #0 {
+define i64 @f3(i64 %a, i64 %b, float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: keb %f0, 4092(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -61,7 +61,7 @@ define i64 @f3(i64 %a, i64 %b, float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) #0 {
+define i64 @f4(i64 %a, i64 %b, float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r4, 4096
 ; CHECK: keb %f0, 0(%r4)
@@ -69,8 +69,8 @@ define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -80,7 +80,7 @@ define i64 @f4(i64 %a, i64 %b, float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) #0 {
+define i64 @f5(i64 %a, i64 %b, float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r4, -4
 ; CHECK: keb %f0, 0(%r4)
@@ -88,8 +88,8 @@ define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -99,7 +99,7 @@ define i64 @f5(i64 %a, i64 %b, float %f1, float *%base) #0 {
 }
 
 ; Check that KEB allows indices.
-define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) #0 {
+define i64 @f6(i64 %a, i64 %b, float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r5, 2
 ; CHECK: keb %f0, 400(%r1,%r4)
@@ -107,9 +107,9 @@ define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -119,33 +119,33 @@ define i64 @f6(i64 %a, i64 %b, float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that comparisons of spilled values can use KEB rather than KEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: keb {{%f[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo() #0
 
@@ -228,14 +228,14 @@ define i64 @f8(i64 %a, i64 %b, float %f) #0 {
 
 ; Check the comparison can be reversed if that allows KEB to be used,
 ; first with oeq.
-define i64 @f9(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f9(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oeq",
@@ -245,14 +245,14 @@ define i64 @f9(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then one.
-define i64 @f10(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f10(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f10:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnlh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"one",
@@ -262,14 +262,14 @@ define i64 @f10(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then olt.
-define i64 @f11(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f11(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f11:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"olt",
@@ -279,14 +279,14 @@ define i64 @f11(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ole.
-define i64 @f12(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f12(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f12:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bher %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnhe %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"ole",
@@ -296,14 +296,14 @@ define i64 @f12(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then oge.
-define i64 @f13(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f13(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f13:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bler %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnle %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"oge",
@@ -313,14 +313,14 @@ define i64 @f13(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ogt.
-define i64 @f14(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f14(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f14:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"ogt",
@@ -330,14 +330,14 @@ define i64 @f14(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ueq.
-define i64 @f15(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f15(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnlhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrlh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"ueq",
@@ -347,14 +347,14 @@ define i64 @f15(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then une.
-define i64 @f16(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f16(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f16:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bner %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgre %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"une",
@@ -364,14 +364,14 @@ define i64 @f16(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ult.
-define i64 @f17(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f17(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f17:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnler %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrle %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"ult",
@@ -381,14 +381,14 @@ define i64 @f17(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ule.
-define i64 @f18(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f18(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnlr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"ule",
@@ -398,14 +398,14 @@ define i64 @f18(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then uge.
-define i64 @f19(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f19(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f19:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnhr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrh %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"uge",
@@ -415,14 +415,14 @@ define i64 @f19(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
 }
 
 ; ...then ugt.
-define i64 @f20(i64 %a, i64 %b, float %f2, float *%ptr) #0 {
+define i64 @f20(i64 %a, i64 %b, float %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f20:
 ; CHECK: keb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: bnher %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrhe %r2, %r3
 ; CHECK: br %r14
-  %f1 = load float, float *%ptr
+  %f1 = load float, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f32(
                                                float %f1, float %f2,
                                                metadata !"ugt",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-02.ll
index 4d4b66b4fcdd2..8760996d15e05 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-02.ll
@@ -25,14 +25,14 @@ define i64 @f1(i64 %a, i64 %b, double %f1, double %f2) #0 {
 }
 
 ; Check the low end of the KDB range.
-define i64 @f2(i64 %a, i64 %b, double %f1, double *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, double %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: kdb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -42,15 +42,15 @@ define i64 @f2(i64 %a, i64 %b, double %f1, double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned KDB range.
-define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) #0 {
+define i64 @f3(i64 %a, i64 %b, double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: kdb %f0, 4088(%r4)
 ; CHECK-SCALAR-NEXT: ber %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -61,7 +61,7 @@ define i64 @f3(i64 %a, i64 %b, double %f1, double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) #0 {
+define i64 @f4(i64 %a, i64 %b, double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r4, 4096
 ; CHECK: kdb %f0, 0(%r4)
@@ -69,8 +69,8 @@ define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -80,7 +80,7 @@ define i64 @f4(i64 %a, i64 %b, double %f1, double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) #0 {
+define i64 @f5(i64 %a, i64 %b, double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r4, -8
 ; CHECK: kdb %f0, 0(%r4)
@@ -88,8 +88,8 @@ define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -99,7 +99,7 @@ define i64 @f5(i64 %a, i64 %b, double %f1, double *%base) #0 {
 }
 
 ; Check that KDB allows indices.
-define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) #0 {
+define i64 @f6(i64 %a, i64 %b, double %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r5, 3
 ; CHECK: kdb %f0, 800(%r1,%r4)
@@ -107,9 +107,9 @@ define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) #0 {
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %cond = call i1 @llvm.experimental.constrained.fcmps.f64(
                                                double %f1, double %f2,
                                                metadata !"oeq",
@@ -119,33 +119,33 @@ define i64 @f6(i64 %a, i64 %b, double %f1, double *%base, i64 %index) #0 {
 }
 
 ; Check that comparisons of spilled values can use KDB rather than KDBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: kdb {{%f[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
-
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
+
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo() #0
 
@@ -227,14 +227,14 @@ define i64 @f8(i64 %a, i64 %b, double %f) #0 {
 }
 
 ; Check the comparison can be reversed if that allows KDB to be used,
-define i64 @f9(i64 %a, i64 %b, double %f2, double *%ptr) #0 {
+define i64 @f9(i64 %a, i64 %b, double %f2, ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: kdb %f0, 0(%r4)
 ; CHECK-SCALAR-NEXT: blr %r14
 ; CHECK-SCALAR: lgr %r2, %r3
 ; CHECK-VECTOR-NEXT: locgrnl %r2, %r3
 ; CHECK: br %r14
-  %f1 = load double, double *%ptr
+  %f1 = load double, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f64(
                                                double %f1, double %f2,
                                                metadata !"ogt",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-03.ll
index 4c571b619bff1..d759311ff6551 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-03.ll
@@ -4,7 +4,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; There is no memory form of 128-bit comparison.
-define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) #0 {
+define i64 @f1(i64 %a, i64 %b, ptr %ptr, float %f2) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r4)
@@ -14,7 +14,7 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) #0 {
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
   %f2x = fpext float %f2 to fp128
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f128(
                                                fp128 %f1, fp128 %f2x,
                                                metadata !"oeq",
@@ -24,7 +24,7 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr, float %f2) #0 {
 }
 
 ; Check comparison with zero - cannot use LOAD AND TEST.
-define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: ld %f0, 0(%r4)
 ; CHECK-DAG: ld %f2, 8(%r4)
@@ -33,7 +33,7 @@ define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) #0 {
 ; CHECK-NEXT: ber %r14
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f128(
                                                fp128 %f, fp128 0xL00000000000000000000000000000000,
                                                metadata !"oeq",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-04.ll
index c251fd772d203..e178769f263e6 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-04.ll
@@ -11,7 +11,7 @@
 declare float @llvm.fabs.f32(float %f)
 
 ; Test addition followed by EQ, which could use the CC result of the addition.
-define float @f1(float %a, float %b, float *%dest) #0 {
+define float @f1(float %a, float %b, ptr %dest) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: aebr %f0, %f2
 ; CHECK-DAG: lzer [[REG:%f[0-9]+]]
@@ -30,7 +30,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %b, float *%dest
+  store float %b, ptr %dest
   br label %exit
 
 exit:
@@ -38,7 +38,7 @@ exit:
 }
 
 ; Test the result of LOAD POSITIVE.
-define float @f6(float %dummy, float %a, float *%dest) #0 {
+define float @f6(float %dummy, float %a, ptr %dest) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: lpdfr %f0, %f2
 ; CHECK-DAG: lzer [[REG:%f[0-9]+]]
@@ -54,7 +54,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -62,7 +62,7 @@ exit:
 }
 
 ; Test the result of LOAD NEGATIVE.
-define float @f7(float %dummy, float %a, float *%dest) #0 {
+define float @f7(float %dummy, float %a, ptr %dest) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK-DAG: lndfr %f0, %f2
 ; CHECK-DAG: lzer [[REG:%f[0-9]+]]
@@ -79,7 +79,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:
@@ -87,7 +87,7 @@ exit:
 }
 
 ; Test the result of LOAD COMPLEMENT.
-define float @f8(float %dummy, float %a, float *%dest) #0 {
+define float @f8(float %dummy, float %a, ptr %dest) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK-DAG: lcdfr %f0, %f2
 ; CHECK-DAG: lzer [[REG:%f[0-9]+]]
@@ -103,7 +103,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store float %res, float *%dest
+  store float %res, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-06.ll b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-06.ll
index 37c18d836804f..73afc69008e5a 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-cmps-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-cmps-06.ll
@@ -3,15 +3,15 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
 ; There is no memory form of 128-bit comparison.
-define i64 @f1(i64 %a, i64 %b, fp128 *%ptr1, fp128 *%ptr2) #0 {
+define i64 @f1(i64 %a, i64 %b, ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r4)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r5)
 ; CHECK: wfkxb [[REG1]], [[REG2]]
 ; CHECK-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %cond = call i1 @llvm.experimental.constrained.fcmps.f128(
                                                fp128 %f1, fp128 %f2,
                                                metadata !"oeq",
@@ -22,14 +22,14 @@ define i64 @f1(i64 %a, i64 %b, fp128 *%ptr1, fp128 *%ptr2) #0 {
 
 ; Check comparison with zero -- it is not worthwhile to copy to
 ; FP pairs just so we can use LTXBR, so simply load up a zero.
-define i64 @f2(i64 %a, i64 %b, fp128 *%ptr) #0 {
+define i64 @f2(i64 %a, i64 %b, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r4)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfkxb [[REG1]], [[REG2]]
 ; CHECK-NEXT: locgrne %r2, %r3
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %cond = call i1 @llvm.experimental.constrained.fcmps.f128(
                                                fp128 %f, fp128 0xL00000000000000000000000000000000,
                                                metadata !"oeq",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-01.ll
index 45dc51ea56b16..6b9db1569cf8c 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-01.ll
@@ -26,11 +26,11 @@ define float @f1(double %d1, double %d2) #0 {
 }
 
 ; Test f128->f32.
-define float @f2(fp128 *%ptr) #0 {
+define float @f2(ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: lexbr %f0, %f0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = call float @llvm.experimental.constrained.fptrunc.f32.f128(
                                                fp128 %val,
                                                metadata !"round.dynamic",
@@ -40,13 +40,13 @@ define float @f2(fp128 *%ptr) #0 {
 
 ; Make sure that we don't use %f0 as the destination of LEXBR when %f2
 ; is still live.
-define void @f3(float *%dst, fp128 *%ptr, float %d1, float %d2) #0 {
+define void @f3(ptr %dst, ptr %ptr, float %d1, float %d2) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: lexbr %f1, %f1
 ; CHECK: aebr %f1, %f2
 ; CHECK: ste %f1, 0(%r2)
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %conv = call float @llvm.experimental.constrained.fptrunc.f32.f128(
                                                fp128 %val,
                                                metadata !"round.dynamic",
@@ -55,16 +55,16 @@ define void @f3(float *%dst, fp128 *%ptr, float %d1, float %d2) #0 {
                         float %conv, float %d2,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store float %res, float *%dst
+  store float %res, ptr %dst
   ret void
 }
 
 ; Test f128->f64.
-define double @f4(fp128 *%ptr) #0 {
+define double @f4(ptr %ptr) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: ldxbr %f0, %f0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = call double @llvm.experimental.constrained.fptrunc.f64.f128(
                                                fp128 %val,
                                                metadata !"round.dynamic",
@@ -73,7 +73,7 @@ define double @f4(fp128 *%ptr) #0 {
 }
 
 ; Like f3, but for f128->f64.
-define void @f5(double *%dst, fp128 *%ptr, double %d1, double %d2) #0 {
+define void @f5(ptr %dst, ptr %ptr, double %d1, double %d2) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: ldxbr %f1, %f1
 ; CHECK-SCALAR: adbr %f1, %f2
@@ -81,7 +81,7 @@ define void @f5(double *%dst, fp128 *%ptr, double %d1, double %d2) #0 {
 ; CHECK-VECTOR: wfadb [[REG:%f[0-9]+]], %f1, %f2
 ; CHECK-VECTOR: std [[REG]], 0(%r2)
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %conv = call double @llvm.experimental.constrained.fptrunc.f64.f128(
                                                fp128 %val,
                                                metadata !"round.dynamic",
@@ -90,7 +90,7 @@ define void @f5(double *%dst, fp128 *%ptr, double %d1, double %d2) #0 {
                         double %conv, double %d2,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store double %res, double *%dst
+  store double %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-02.ll
index 4cada62d00329..c79f51dd1ae9e 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-02.ll
@@ -15,23 +15,23 @@ define double @f1(float %val) #0 {
 }
 
 ; Check the low end of the LDEB range.
-define double @f2(float *%ptr) #0 {
+define double @f2(ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: ldeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %res = call double @llvm.experimental.constrained.fpext.f64.f32(float %val,
                                                metadata !"fpexcept.strict") #0
   ret double %res
 }
 
 ; Check the high end of the aligned LDEB range.
-define double @f3(float *%base) #0 {
+define double @f3(ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: ldeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %val = load float, ptr %ptr
   %res = call double @llvm.experimental.constrained.fpext.f64.f32(float %val,
                                                metadata !"fpexcept.strict") #0
   ret double %res
@@ -39,40 +39,40 @@ define double @f3(float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(float *%base) #0 {
+define double @f4(ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: ldeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %val = load float, ptr %ptr
   %res = call double @llvm.experimental.constrained.fpext.f64.f32(float %val,
                                                metadata !"fpexcept.strict") #0
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(float *%base) #0 {
+define double @f5(ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: ldeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %val = load float, ptr %ptr
   %res = call double @llvm.experimental.constrained.fpext.f64.f32(float %val,
                                                metadata !"fpexcept.strict") #0
   ret double %res
 }
 
 ; Check that LDEB allows indices.
-define double @f6(float *%base, i64 %index) #0 {
+define double @f6(ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: ldeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %val = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %val = load float, ptr %ptr2
   %res = call double @llvm.experimental.constrained.fpext.f64.f32(float %val,
                                                metadata !"fpexcept.strict") #0
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-03.ll
index 7a8a7a88e28f3..c0dec7891b834 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-03.ll
@@ -5,7 +5,7 @@
 declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata)
 
 ; Check register extension.
-define void @f1(fp128 *%dst, float %val) #0 {
+define void @f1(ptr %dst, float %val) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: lxebr %f0, %f0
 ; CHECK: std %f0, 0(%r2)
@@ -13,86 +13,86 @@ define void @f1(fp128 *%dst, float %val) #0 {
 ; CHECK: br %r14
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the LXEB range.
-define void @f2(fp128 *%dst, float *%ptr) #0 {
+define void @f2(ptr %dst, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: lxeb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned LXEB range.
-define void @f3(fp128 *%dst, float *%base) #0 {
+define void @f3(ptr %dst, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: lxeb %f0, 4092(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %val = load float, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(fp128 *%dst, float *%base) #0 {
+define void @f4(ptr %dst, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r3, 4096
 ; CHECK: lxeb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %val = load float, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check negative displacements, which also need separate address logic.
-define void @f5(fp128 *%dst, float *%base) #0 {
+define void @f5(ptr %dst, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r3, -4
 ; CHECK: lxeb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %val = load float, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that LXEB allows indices.
-define void @f6(fp128 *%dst, float *%base, i64 %index) #0 {
+define void @f6(ptr %dst, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r4, 2
 ; CHECK: lxeb %f0, 400(%r1,%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %val = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %val = load float, ptr %ptr2
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-04.ll
index 4ddfe1031c322..f6e9a66892e7f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-04.ll
@@ -5,7 +5,7 @@
 declare fp128 @llvm.experimental.constrained.fpext.f128.f64(double, metadata)
 
 ; Check register extension.
-define void @f1(fp128 *%dst, double %val) #0 {
+define void @f1(ptr %dst, double %val) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: lxdbr %f0, %f0
 ; CHECK: std %f0, 0(%r2)
@@ -13,86 +13,86 @@ define void @f1(fp128 *%dst, double %val) #0 {
 ; CHECK: br %r14
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the LXDB range.
-define void @f2(fp128 *%dst, double *%ptr) #0 {
+define void @f2(ptr %dst, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: lxdb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned LXDB range.
-define void @f3(fp128 *%dst, double *%base) #0 {
+define void @f3(ptr %dst, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: lxdb %f0, 4088(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %val = load double, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(fp128 *%dst, double *%base) #0 {
+define void @f4(ptr %dst, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r3, 4096
 ; CHECK: lxdb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %val = load double, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check negative displacements, which also need separate address logic.
-define void @f5(fp128 *%dst, double *%base) #0 {
+define void @f5(ptr %dst, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r3, -8
 ; CHECK: lxdb %f0, 0(%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %val = load double, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that LXDB allows indices.
-define void @f6(fp128 *%dst, double *%base, i64 %index) #0 {
+define void @f6(ptr %dst, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r4, 3
 ; CHECK: lxdb %f0, 800(%r1,%r3)
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %val = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %val = load double, ptr %ptr2
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-05.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-05.ll
index ab3e5a72ee7ec..f2a66098d32e2 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-05.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-05.ll
@@ -29,7 +29,7 @@ define double @f2(i32 %i) #0 {
 }
 
 ; Check i32->f128.
-define void @f3(i32 %i, fp128 *%dst) #0 {
+define void @f3(i32 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: cxfbr %f0, %r2
 ; CHECK: std %f0, 0(%r3)
@@ -38,7 +38,7 @@ define void @f3(i32 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.sitofp.f128.i32(i32 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-06.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-06.ll
index 58970ba1e68d1..e23eaf3ab359a 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-06.ll
@@ -32,7 +32,7 @@ define double @f2(i32 %i) #0 {
 }
 
 ; Check i32->f128.
-define void @f3(i32 %i, fp128 *%dst) #0 {
+define void @f3(i32 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: llgfr [[REGISTER:%r[0-5]]], %r2
 ; CHECK: cxgbr %f0, [[REGISTER]]
@@ -42,7 +42,7 @@ define void @f3(i32 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.uitofp.f128.i32(i32 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-07.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-07.ll
index b1111237c6faf..d18aa38966009 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-07.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-07.ll
@@ -29,7 +29,7 @@ define double @f2(i64 %i) #0 {
 }
 
 ; Test i64->f128.
-define void @f3(i64 %i, fp128 *%dst) #0 {
+define void @f3(i64 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: cxgbr %f0, %r2
 ; CHECK: std %f0, 0(%r3)
@@ -38,7 +38,7 @@ define void @f3(i64 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-08.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-08.ll
index c323086b6e135..2cbcf2a2ef0a3 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-08.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-08.ll
@@ -32,7 +32,7 @@ define double @f2(i64 %i) #0 {
 }
 
 ; Test i64->f128.
-define void @f3(i64 %i, fp128 *%dst) #0 {
+define void @f3(i64 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: cxgbr
 ; CHECK: axbr
@@ -40,7 +40,7 @@ define void @f3(i64 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.uitofp.f128.i64(i64 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-09.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-09.ll
index abdb865d4df5b..a54055120f727 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-09.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-09.ll
@@ -27,13 +27,13 @@ define i32 @f2(double %f) #0 {
 }
 
 ; Test f128->i32.
-define i32 @f3(fp128 *%src) #0 {
+define i32 @f3(ptr %src) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
 ; CHECK: cfxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i32 @llvm.experimental.constrained.fptosi.i32.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i32 %conv

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-10.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-10.ll
index e40d90c2c0fbc..7cbcfeea8cf60 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-10.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-10.ll
@@ -62,7 +62,7 @@ define i32 @f2(double %f) #0 {
 }
 
 ; Test f128->i32.
-define i32 @f3(fp128 *%src) #0 {
+define i32 @f3(ptr %src) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    ld %f0, 0(%r2)
@@ -82,7 +82,7 @@ define i32 @f3(fp128 *%src) #0 {
 ; CHECK-NEXT:    cfxbr %r2, 5, %f0
 ; CHECK-NEXT:    xr %r2, %r0
 ; CHECK-NEXT:    br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i32 %conv

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-11.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-11.ll
index d9cc33700e7ae..27af314cff01b 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-11.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-11.ll
@@ -27,13 +27,13 @@ define i64 @f2(double %f) #0 {
 }
 
 ; Test f128->i64.
-define i64 @f3(fp128 *%src) #0 {
+define i64 @f3(ptr %src) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
 ; CHECK: cgxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i64 @llvm.experimental.constrained.fptosi.i64.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i64 %conv

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-12.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-12.ll
index a9de3ba6ec042..69bbd82e29898 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-12.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-12.ll
@@ -61,7 +61,7 @@ define i64 @f2(double %f) #0 {
 }
 
 ; Test f128->i64.
-define i64 @f3(fp128 *%src) #0 {
+define i64 @f3(ptr %src) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    ld %f0, 0(%r2)
@@ -81,7 +81,7 @@ define i64 @f3(fp128 *%src) #0 {
 ; CHECK-NEXT:    cgxbr %r2, 5, %f0
 ; CHECK-NEXT:    xgr %r2, %r0
 ; CHECK-NEXT:    br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i64 %conv

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-13.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-13.ll
index de87c8872babf..41913106f5340 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-13.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-13.ll
@@ -34,7 +34,7 @@ define double @f2(i32 %i) #0 {
 }
 
 ; Check i32->f128.
-define void @f3(i32 %i, fp128 *%dst) #0 {
+define void @f3(i32 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: cxlfbr %f0, 0, %r2, 0
 ; CHECK-DAG: std %f0, 0(%r3)
@@ -43,7 +43,7 @@ define void @f3(i32 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.uitofp.f128.i32(i32 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
@@ -70,7 +70,7 @@ define double @f5(i64 %i) #0 {
 }
 
 ; Check i64->f128.
-define void @f6(i64 %i, fp128 *%dst) #0 {
+define void @f6(i64 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: cxlgbr %f0, 0, %r2, 0
 ; CHECK-DAG: std %f0, 0(%r3)
@@ -79,7 +79,7 @@ define void @f6(i64 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.uitofp.f128.i64(i64 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-14.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-14.ll
index 83478bab74d7b..aa82a1d91c4a8 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-14.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-14.ll
@@ -31,13 +31,13 @@ define i32 @f2(double %f) #0 {
 }
 
 ; Test f128->i32.
-define i32 @f3(fp128 *%src) #0 {
+define i32 @f3(ptr %src) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: ld %f0, 0(%r2)
 ; CHECK-DAG: ld %f2, 8(%r2)
 ; CHECK: clfxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i32 %conv
@@ -64,13 +64,13 @@ define i64 @f5(double %f) #0 {
 }
 
 ; Test f128->i64.
-define i64 @f6(fp128 *%src) #0 {
+define i64 @f6(ptr %src) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: ld %f0, 0(%r2)
 ; CHECK-DAG: ld %f2, 8(%r2)
 ; CHECK: clgxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i64 %conv

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-15.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-15.ll
index 9b080c14e18a8..de93192b5f305 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-15.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-15.ll
@@ -9,12 +9,12 @@ declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata)
 declare fp128 @llvm.experimental.constrained.fpext.f128.f64(double, metadata)
 
 ; Test f128->f64.
-define double @f1(fp128 *%ptr) #0 {
+define double @f1(ptr %ptr) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wflrx %f0, [[REG]], 0, 0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = call double @llvm.experimental.constrained.fptrunc.f64.f128(
                                                fp128 %val,
                                                metadata !"round.dynamic",
@@ -23,13 +23,13 @@ define double @f1(fp128 *%ptr) #0 {
 }
 
 ; Test f128->f32.
-define float @f2(fp128 *%ptr) #0 {
+define float @f2(ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wflrx %f0, [[REG]], 0, 3
 ; CHECK: ledbra %f0, 0, %f0, 0
 ; CHECK: br %r14
-  %val = load fp128, fp128 *%ptr
+  %val = load fp128, ptr %ptr
   %res = call float @llvm.experimental.constrained.fptrunc.f32.f128(
                                                fp128 %val,
                                                metadata !"round.dynamic",
@@ -38,19 +38,19 @@ define float @f2(fp128 *%ptr) #0 {
 }
 
 ; Test f64->f128.
-define void @f3(fp128 *%dst, double %val) #0 {
+define void @f3(ptr %dst, double %val) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: wflld [[RES:%v[0-9]+]], %f0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f64(double %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test f32->f128.
-define void @f4(fp128 *%dst, float %val) #0 {
+define void @f4(ptr %dst, float %val) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: ldebr %f0, %f0
 ; CHECK: wflld [[RES:%v[0-9]+]], %f0
@@ -58,7 +58,7 @@ define void @f4(fp128 *%dst, float %val) #0 {
 ; CHECK: br %r14
   %res = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %val,
                                                metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-conv-16.ll b/llvm/test/CodeGen/SystemZ/fp-strict-conv-16.ll
index e7523534e8262..6ea32cbf135c9 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-conv-16.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-conv-16.ll
@@ -15,7 +15,7 @@ declare i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128, metadata)
 declare i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128, metadata)
 
 ; Test signed i32->f128.
-define void @f1(i32 %i, fp128 *%dst) #0 {
+define void @f1(i32 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: cxfbr %f0, %r2
 ; CHECK: vmrhg %v0, %v0, %v2
@@ -24,12 +24,12 @@ define void @f1(i32 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.sitofp.f128.i32(i32 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test signed i64->f128.
-define void @f2(i64 %i, fp128 *%dst) #0 {
+define void @f2(i64 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: cxgbr %f0, %r2
 ; CHECK: vmrhg %v0, %v0, %v2
@@ -38,12 +38,12 @@ define void @f2(i64 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.sitofp.f128.i64(i64 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test unsigned i32->f128.
-define void @f3(i32 %i, fp128 *%dst) #0 {
+define void @f3(i32 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: cxlfbr %f0, 0, %r2, 0
 ; CHECK: vmrhg %v0, %v0, %v2
@@ -52,12 +52,12 @@ define void @f3(i32 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.uitofp.f128.i32(i32 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test unsigned i64->f128.
-define void @f4(i64 %i, fp128 *%dst) #0 {
+define void @f4(i64 %i, ptr %dst) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: cxlgbr %f0, 0, %r2, 0
 ; CHECK: vmrhg %v0, %v0, %v2
@@ -66,57 +66,57 @@ define void @f4(i64 %i, fp128 *%dst) #0 {
   %conv = call fp128 @llvm.experimental.constrained.uitofp.f128.i64(i64 %i,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store fp128 %conv, fp128 *%dst
+  store fp128 %conv, ptr %dst
   ret void
 }
 
 ; Test signed f128->i32.
-define i32 @f5(fp128 *%src) #0 {
+define i32 @f5(ptr %src) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: cfxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i32 @llvm.experimental.constrained.fptosi.i32.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i32 %conv
 }
 
 ; Test signed f128->i64.
-define i64 @f6(fp128 *%src) #0 {
+define i64 @f6(ptr %src) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: cgxbr %r2, 5, %f0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i64 @llvm.experimental.constrained.fptosi.i64.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i64 %conv
 }
 
 ; Test unsigned f128->i32.
-define i32 @f7(fp128 *%src) #0 {
+define i32 @f7(ptr %src) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: clfxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i32 @llvm.experimental.constrained.fptoui.i32.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i32 %conv
 }
 
 ; Test unsigned f128->i64.
-define i64 @f8(fp128 *%src) #0 {
+define i64 @f8(ptr %src) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: vl %v0, 0(%r2)
 ; CHECK: vrepg %v2, %v0, 1
 ; CHECK: clgxbr %r2, 5, %f0, 0
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%src
+  %f = load fp128, ptr %src
   %conv = call i64 @llvm.experimental.constrained.fptoui.i64.f128(fp128 %f,
                                                metadata !"fpexcept.strict") #0
   ret i64 %conv

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-div-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-div-01.ll
index 27cb70cd06fb9..980df79481936 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-div-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-div-01.ll
@@ -20,11 +20,11 @@ define float @f1(float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the DEB range.
-define float @f2(float %f1, float *%ptr) #0 {
+define float @f2(float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: deb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fdiv.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define float @f2(float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned DEB range.
-define float @f3(float %f1, float *%base) #0 {
+define float @f3(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: deb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fdiv.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define float @f3(float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) #0 {
+define float @f4(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: deb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fdiv.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define float @f4(float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) #0 {
+define float @f5(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: deb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fdiv.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define float @f5(float %f1, float *%base) #0 {
 }
 
 ; Check that DEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) #0 {
+define float @f6(float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: deb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = call float @llvm.experimental.constrained.fdiv.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define float @f6(float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that divisions of spilled values can use DEB rather than DEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: deb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-div-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-div-02.ll
index d8fc2bd7430ab..b598389f6681f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-div-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-div-02.ll
@@ -20,11 +20,11 @@ define double @f1(double %f1, double %f2) #0 {
 }
 
 ; Check the low end of the DDB range.
-define double @f2(double %f1, double *%ptr) #0 {
+define double @f2(double %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: ddb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fdiv.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define double @f2(double %f1, double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned DDB range.
-define double @f3(double %f1, double *%base) #0 {
+define double @f3(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: ddb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fdiv.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define double @f3(double %f1, double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) #0 {
+define double @f4(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: ddb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fdiv.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define double @f4(double %f1, double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) #0 {
+define double @f5(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: ddb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fdiv.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define double @f5(double %f1, double *%base) #0 {
 }
 
 ; Check that DDB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) #0 {
+define double @f6(double %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: ddb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = call double @llvm.experimental.constrained.fdiv.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define double @f6(double %f1, double *%base, i64 %index) #0 {
 }
 
 ; Check that divisions of spilled values can use DDB rather than DDBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: ddb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-div-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-div-03.ll
index a53512eeb51e3..4a04a1f821d93 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-div-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-div-03.ll
@@ -6,7 +6,7 @@ declare fp128 @llvm.experimental.constrained.fdiv.f128(fp128, fp128, metadata, m
 declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata)
 
 ; There is no memory form of 128-bit division.
-define void @f1(fp128 *%ptr, float %f2) strictfp {
+define void @f1(ptr %ptr, float %f2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -15,14 +15,14 @@ define void @f1(fp128 *%ptr, float %f2) strictfp {
 ; CHECK: std %f1, 0(%r2)
 ; CHECK: std %f3, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %f2,
                                                metadata !"fpexcept.strict") #0
   %sum = call fp128 @llvm.experimental.constrained.fdiv.f128(
                         fp128 %f1, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %sum, fp128 *%ptr
+  store fp128 %sum, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-div-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-div-04.ll
index a43eebb5f0a8d..6e05308a397f3 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-div-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-div-04.ll
@@ -4,19 +4,19 @@
 
 declare fp128 @llvm.experimental.constrained.fdiv.f128(fp128, fp128, metadata, metadata)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) strictfp {
+define void @f1(ptr %ptr1, ptr %ptr2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfdxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = call fp128 @llvm.experimental.constrained.fdiv.f128(
                         fp128 %f1, fp128 %f2,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") strictfp
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-01.ll
index 623ef9007f610..872477f3a13b1 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-01.ll
@@ -20,11 +20,11 @@ define float @f1(float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the MEEB range.
-define float @f2(float %f1, float *%ptr) #0 {
+define float @f2(float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: meeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fmul.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define float @f2(float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned MEEB range.
-define float @f3(float %f1, float *%base) #0 {
+define float @f3(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: meeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fmul.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define float @f3(float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) #0 {
+define float @f4(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: meeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fmul.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define float @f4(float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) #0 {
+define float @f5(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: meeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fmul.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define float @f5(float %f1, float *%base) #0 {
 }
 
 ; Check that MEEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) #0 {
+define float @f6(float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: meeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = call float @llvm.experimental.constrained.fmul.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define float @f6(float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that multiplications of spilled values can use MEEB rather than MEEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: meeb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-02.ll
index a5cd0b8c0bc18..7fdc385248517 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-02.ll
@@ -27,11 +27,11 @@ define double @f1(float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the MDEB range.
-define double @f2(float %f1, float *%ptr) #0 {
+define double @f2(float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: mdeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %f1x = call double @llvm.experimental.constrained.fpext.f64.f32(
                         float %f1,
                         metadata !"fpexcept.strict") #0
@@ -46,12 +46,12 @@ define double @f2(float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned MDEB range.
-define double @f3(float %f1, float *%base) #0 {
+define double @f3(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: mdeb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %f1x = call double @llvm.experimental.constrained.fpext.f64.f32(
                         float %f1,
                         metadata !"fpexcept.strict") #0
@@ -67,13 +67,13 @@ define double @f3(float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(float %f1, float *%base) #0 {
+define double @f4(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: mdeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %f1x = call double @llvm.experimental.constrained.fpext.f64.f32(
                         float %f1,
                         metadata !"fpexcept.strict") #0
@@ -88,13 +88,13 @@ define double @f4(float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(float %f1, float *%base) #0 {
+define double @f5(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: mdeb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %f1x = call double @llvm.experimental.constrained.fpext.f64.f32(
                         float %f1,
                         metadata !"fpexcept.strict") #0
@@ -109,14 +109,14 @@ define double @f5(float %f1, float *%base) #0 {
 }
 
 ; Check that MDEB allows indices.
-define double @f6(float %f1, float *%base, i64 %index) #0 {
+define double @f6(float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: mdeb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %f1x = call double @llvm.experimental.constrained.fpext.f64.f32(
                         float %f1,
                         metadata !"fpexcept.strict") #0
@@ -131,33 +131,33 @@ define double @f6(float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that multiplications of spilled values can use MDEB rather than MDEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mdeb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %frob0 = call float @llvm.experimental.constrained.fadd.f32(
                         float %val0, float %val0,
@@ -204,17 +204,17 @@ define float @f7(float *%ptr0) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
 
-  store float %frob0, float *%ptr0
-  store float %frob1, float *%ptr1
-  store float %frob2, float *%ptr2
-  store float %frob3, float *%ptr3
-  store float %frob4, float *%ptr4
-  store float %frob5, float *%ptr5
-  store float %frob6, float *%ptr6
-  store float %frob7, float *%ptr7
-  store float %frob8, float *%ptr8
-  store float %frob9, float *%ptr9
-  store float %frob10, float *%ptr10
+  store float %frob0, ptr %ptr0
+  store float %frob1, ptr %ptr1
+  store float %frob2, ptr %ptr2
+  store float %frob3, ptr %ptr3
+  store float %frob4, ptr %ptr4
+  store float %frob5, ptr %ptr5
+  store float %frob6, ptr %ptr6
+  store float %frob7, ptr %ptr7
+  store float %frob8, ptr %ptr8
+  store float %frob9, ptr %ptr9
+  store float %frob10, ptr %ptr10
 
   %ret = call float @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-03.ll
index edfc5d46ba928..65fa493506a14 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-03.ll
@@ -20,11 +20,11 @@ define double @f1(double %f1, double %f2) #0 {
 }
 
 ; Check the low end of the MDB range.
-define double @f2(double %f1, double *%ptr) #0 {
+define double @f2(double %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: mdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fmul.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define double @f2(double %f1, double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned MDB range.
-define double @f3(double %f1, double *%base) #0 {
+define double @f3(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: mdb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fmul.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define double @f3(double %f1, double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) #0 {
+define double @f4(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: mdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fmul.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define double @f4(double %f1, double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) #0 {
+define double @f5(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: mdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fmul.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define double @f5(double %f1, double *%base) #0 {
 }
 
 ; Check that MDB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) #0 {
+define double @f6(double %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: mdb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = call double @llvm.experimental.constrained.fmul.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define double @f6(double %f1, double *%base, i64 %index) #0 {
 }
 
 ; Check that multiplications of spilled values can use MDB rather than MDBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: mdb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-04.ll
index fe41a6506ce59..732762e1ea6bc 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-04.ll
@@ -12,7 +12,7 @@ declare double @foo()
 ; Check register multiplication.  "mxdbr %f0, %f2" is not valid from LLVM's
 ; point of view, because %f2 is the low register of the FP128 %f0.  Pass the
 ; multiplier in %f4 instead.
-define void @f1(double %f1, double %dummy, double %f2, fp128 *%dst) #0 {
+define void @f1(double %f1, double %dummy, double %f2, ptr %dst) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: mxdbr %f0, %f4
 ; CHECK: std %f0, 0(%r2)
@@ -28,18 +28,18 @@ define void @f1(double %f1, double %dummy, double %f2, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the MXDB range.
-define void @f2(double %f1, double *%ptr, fp128 *%dst) #0 {
+define void @f2(double %f1, ptr %ptr, ptr %dst) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: mxdb %f0, 0(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %f1x = call fp128 @llvm.experimental.constrained.fpext.f128.f64(
                         double %f1,
                         metadata !"fpexcept.strict") #0
@@ -50,19 +50,19 @@ define void @f2(double %f1, double *%ptr, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned MXDB range.
-define void @f3(double %f1, double *%base, fp128 *%dst) #0 {
+define void @f3(double %f1, ptr %base, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: mxdb %f0, 4088(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %f1x = call fp128 @llvm.experimental.constrained.fpext.f128.f64(
                         double %f1,
                         metadata !"fpexcept.strict") #0
@@ -73,21 +73,21 @@ define void @f3(double %f1, double *%base, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f4(double %f1, double *%base, fp128 *%dst) #0 {
+define void @f4(double %f1, ptr %base, ptr %dst) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: mxdb %f0, 0(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %f1x = call fp128 @llvm.experimental.constrained.fpext.f128.f64(
                         double %f1,
                         metadata !"fpexcept.strict") #0
@@ -98,20 +98,20 @@ define void @f4(double %f1, double *%base, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check negative displacements, which also need separate address logic.
-define void @f5(double %f1, double *%base, fp128 *%dst) #0 {
+define void @f5(double %f1, ptr %base, ptr %dst) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: mxdb %f0, 0(%r2)
 ; CHECK: std %f0, 0(%r3)
 ; CHECK: std %f2, 8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %f1x = call fp128 @llvm.experimental.constrained.fpext.f128.f64(
                         double %f1,
                         metadata !"fpexcept.strict") #0
@@ -122,21 +122,21 @@ define void @f5(double %f1, double *%base, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that MXDB allows indices.
-define void @f6(double %f1, double *%base, i64 %index, fp128 *%dst) #0 {
+define void @f6(double %f1, ptr %base, i64 %index, ptr %dst) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: mxdb %f0, 800(%r1,%r2)
 ; CHECK: std %f0, 0(%r4)
 ; CHECK: std %f2, 8(%r4)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %f1x = call fp128 @llvm.experimental.constrained.fpext.f128.f64(
                         double %f1,
                         metadata !"fpexcept.strict") #0
@@ -147,38 +147,38 @@ define void @f6(double %f1, double *%base, i64 %index, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Check that multiplications of spilled values can use MXDB rather than MXDBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mxdb %f0, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %frob0 = call double @llvm.experimental.constrained.fadd.f64(
                         double %val0, double %val0,
@@ -225,17 +225,17 @@ define double @f7(double *%ptr0) #0 {
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
 
-  store double %frob0, double *%ptr0
-  store double %frob1, double *%ptr1
-  store double %frob2, double *%ptr2
-  store double %frob3, double *%ptr3
-  store double %frob4, double *%ptr4
-  store double %frob5, double *%ptr5
-  store double %frob6, double *%ptr6
-  store double %frob7, double *%ptr7
-  store double %frob8, double *%ptr8
-  store double %frob9, double *%ptr9
-  store double %frob10, double *%ptr10
+  store double %frob0, ptr %ptr0
+  store double %frob1, ptr %ptr1
+  store double %frob2, ptr %ptr2
+  store double %frob3, ptr %ptr3
+  store double %frob4, ptr %ptr4
+  store double %frob5, ptr %ptr5
+  store double %frob6, ptr %ptr6
+  store double %frob7, ptr %ptr7
+  store double %frob8, ptr %ptr8
+  store double %frob9, ptr %ptr9
+  store double %frob10, ptr %ptr10
 
   %ret = call double @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-05.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-05.ll
index 422566c8645b3..cda08261a5f56 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-05.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-05.ll
@@ -6,7 +6,7 @@ declare fp128 @llvm.experimental.constrained.fmul.f128(fp128, fp128, metadata, m
 declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata)
 
 ; There is no memory form of 128-bit multiplication.
-define void @f1(fp128 *%ptr, float %f2) strictfp {
+define void @f1(ptr %ptr, float %f2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -15,14 +15,14 @@ define void @f1(fp128 *%ptr, float %f2) strictfp {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %f2,
                                                metadata !"fpexcept.strict") #0
   %
diff  = call fp128 @llvm.experimental.constrained.fmul.f128(
                         fp128 %f1, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %
diff , fp128 *%ptr
+  store fp128 %
diff , ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-06.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-06.ll
index 0f6405459168b..4971375789407 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-06.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-06.ll
@@ -18,13 +18,13 @@ define float @f1(float %f1, float %f2, float %acc) #0 {
   ret float %res
 }
 
-define float @f2(float %f1, float *%ptr, float %acc) #0 {
+define float @f2(float %f1, ptr %ptr, float %acc) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: maeb %f2, %f0, 0(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",
@@ -32,14 +32,14 @@ define float @f2(float %f1, float *%ptr, float %acc) #0 {
   ret float %res
 }
 
-define float @f3(float %f1, float *%base, float %acc) #0 {
+define float @f3(float %f1, ptr %base, float %acc) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: maeb %f2, %f0, 4092(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",
@@ -47,7 +47,7 @@ define float @f3(float %f1, float *%base, float %acc) #0 {
   ret float %res
 }
 
-define float @f4(float %f1, float *%base, float %acc) #0 {
+define float @f4(float %f1, ptr %base, float %acc) #0 {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -57,8 +57,8 @@ define float @f4(float %f1, float *%base, float %acc) #0 {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",
@@ -66,7 +66,7 @@ define float @f4(float %f1, float *%base, float %acc) #0 {
   ret float %res
 }
 
-define float @f5(float %f1, float *%base, float %acc) #0 {
+define float @f5(float %f1, ptr %base, float %acc) #0 {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -76,8 +76,8 @@ define float @f5(float %f1, float *%base, float %acc) #0 {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",
@@ -85,15 +85,15 @@ define float @f5(float %f1, float *%base, float %acc) #0 {
   ret float %res
 }
 
-define float @f6(float %f1, float *%base, i64 %index, float %acc) #0 {
+define float @f6(float %f1, ptr %base, i64 %index, float %acc) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: maeb %f2, %f0, 0(%r1,%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 %index
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",
@@ -101,7 +101,7 @@ define float @f6(float %f1, float *%base, i64 %index, float %acc) #0 {
   ret float %res
 }
 
-define float @f7(float %f1, float *%base, i64 %index, float %acc) #0 {
+define float @f7(float %f1, ptr %base, i64 %index, float %acc) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: maeb %f2, %f0, 4092({{%r1,%r2|%r2,%r1}})
@@ -109,8 +109,8 @@ define float @f7(float %f1, float *%base, i64 %index, float %acc) #0 {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1023
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",
@@ -118,7 +118,7 @@ define float @f7(float %f1, float *%base, i64 %index, float %acc) #0 {
   ret float %res
 }
 
-define float @f8(float %f1, float *%base, i64 %index, float %acc) #0 {
+define float @f8(float %f1, ptr %base, i64 %index, float %acc) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -127,8 +127,8 @@ define float @f8(float %f1, float *%base, i64 %index, float %acc) #0 {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1024
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %acc,
                         metadata !"round.dynamic",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-07.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-07.ll
index d929fbba0ff49..c781e634d3dc7 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-07.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-07.ll
@@ -18,12 +18,12 @@ define double @f1(double %f1, double %f2, double %acc) #0 {
   ret double %res
 }
 
-define double @f2(double %f1, double *%ptr, double %acc) #0 {
+define double @f2(double %f1, ptr %ptr, double %acc) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: madb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",
@@ -31,13 +31,13 @@ define double @f2(double %f1, double *%ptr, double %acc) #0 {
   ret double %res
 }
 
-define double @f3(double %f1, double *%base, double %acc) #0 {
+define double @f3(double %f1, ptr %base, double %acc) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: madb %f2, %f0, 4088(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",
@@ -45,7 +45,7 @@ define double @f3(double %f1, double *%base, double %acc) #0 {
   ret double %res
 }
 
-define double @f4(double %f1, double *%base, double %acc) #0 {
+define double @f4(double %f1, ptr %base, double %acc) #0 {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -54,8 +54,8 @@ define double @f4(double %f1, double *%base, double %acc) #0 {
 ; CHECK: madb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",
@@ -63,7 +63,7 @@ define double @f4(double %f1, double *%base, double %acc) #0 {
   ret double %res
 }
 
-define double @f5(double %f1, double *%base, double %acc) #0 {
+define double @f5(double %f1, ptr %base, double %acc) #0 {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -72,8 +72,8 @@ define double @f5(double %f1, double *%base, double %acc) #0 {
 ; CHECK: madb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",
@@ -81,14 +81,14 @@ define double @f5(double %f1, double *%base, double %acc) #0 {
   ret double %res
 }
 
-define double @f6(double %f1, double *%base, i64 %index, double %acc) #0 {
+define double @f6(double %f1, ptr %base, i64 %index, double %acc) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: madb %f2, %f0, 0(%r1,%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 %index
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",
@@ -96,15 +96,15 @@ define double @f6(double %f1, double *%base, i64 %index, double %acc) #0 {
   ret double %res
 }
 
-define double @f7(double %f1, double *%base, i64 %index, double %acc) #0 {
+define double @f7(double %f1, ptr %base, i64 %index, double %acc) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: madb %f2, %f0, 4088({{%r1,%r2|%r2,%r1}})
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 511
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",
@@ -112,7 +112,7 @@ define double @f7(double %f1, double *%base, i64 %index, double %acc) #0 {
   ret double %res
 }
 
-define double @f8(double %f1, double *%base, i64 %index, double %acc) #0 {
+define double @f8(double %f1, ptr %base, i64 %index, double %acc) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -120,8 +120,8 @@ define double @f8(double %f1, double *%base, i64 %index, double %acc) #0 {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 512
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %acc,
                         metadata !"round.dynamic",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-08.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-08.ll
index a92191142562b..cdbd50afd83f9 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-08.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-08.ll
@@ -19,13 +19,13 @@ define float @f1(float %f1, float %f2, float %acc) #0 {
   ret float %res
 }
 
-define float @f2(float %f1, float *%ptr, float %acc) #0 {
+define float @f2(float %f1, ptr %ptr, float %acc) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: mseb %f2, %f0, 0(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,
@@ -34,14 +34,14 @@ define float @f2(float %f1, float *%ptr, float %acc) #0 {
   ret float %res
 }
 
-define float @f3(float %f1, float *%base, float %acc) #0 {
+define float @f3(float %f1, ptr %base, float %acc) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: mseb %f2, %f0, 4092(%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,
@@ -50,7 +50,7 @@ define float @f3(float %f1, float *%base, float %acc) #0 {
   ret float %res
 }
 
-define float @f4(float %f1, float *%base, float %acc) #0 {
+define float @f4(float %f1, ptr %base, float %acc) #0 {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -60,8 +60,8 @@ define float @f4(float %f1, float *%base, float %acc) #0 {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,
@@ -70,7 +70,7 @@ define float @f4(float %f1, float *%base, float %acc) #0 {
   ret float %res
 }
 
-define float @f5(float %f1, float *%base, float %acc) #0 {
+define float @f5(float %f1, ptr %base, float %acc) #0 {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -80,8 +80,8 @@ define float @f5(float %f1, float *%base, float %acc) #0 {
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,
@@ -90,15 +90,15 @@ define float @f5(float %f1, float *%base, float %acc) #0 {
   ret float %res
 }
 
-define float @f6(float %f1, float *%base, i64 %index, float %acc) #0 {
+define float @f6(float %f1, ptr %base, i64 %index, float %acc) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: mseb %f2, %f0, 0(%r1,%r2)
 ; CHECK-SCALAR: ler %f0, %f2
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 %index
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,
@@ -107,7 +107,7 @@ define float @f6(float %f1, float *%base, i64 %index, float %acc) #0 {
   ret float %res
 }
 
-define float @f7(float %f1, float *%base, i64 %index, float %acc) #0 {
+define float @f7(float %f1, ptr %base, i64 %index, float %acc) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: mseb %f2, %f0, 4092({{%r1,%r2|%r2,%r1}})
@@ -115,8 +115,8 @@ define float @f7(float %f1, float *%base, i64 %index, float %acc) #0 {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1023
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,
@@ -125,7 +125,7 @@ define float @f7(float %f1, float *%base, i64 %index, float %acc) #0 {
   ret float %res
 }
 
-define float @f8(float %f1, float *%base, i64 %index, float %acc) #0 {
+define float @f8(float %f1, ptr %base, i64 %index, float %acc) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -134,8 +134,8 @@ define float @f8(float %f1, float *%base, i64 %index, float %acc) #0 {
 ; CHECK-VECTOR: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 1024
-  %ptr = getelementptr float, float *%base, i64 %index2
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 %index2
+  %f2 = load float, ptr %ptr
   %negacc = fneg float %acc
   %res = call float @llvm.experimental.constrained.fma.f32 (
                         float %f1, float %f2, float %negacc,

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-09.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-09.ll
index ffa7ea8235eea..8d1caa10f0f79 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-09.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-09.ll
@@ -19,12 +19,12 @@ define double @f1(double %f1, double %f2, double %acc) #0 {
   ret double %res
 }
 
-define double @f2(double %f1, double *%ptr, double %acc) #0 {
+define double @f2(double %f1, ptr %ptr, double %acc) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: msdb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,
@@ -33,13 +33,13 @@ define double @f2(double %f1, double *%ptr, double %acc) #0 {
   ret double %res
 }
 
-define double @f3(double %f1, double *%base, double %acc) #0 {
+define double @f3(double %f1, ptr %base, double %acc) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: msdb %f2, %f0, 4088(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,
@@ -48,7 +48,7 @@ define double @f3(double %f1, double *%base, double %acc) #0 {
   ret double %res
 }
 
-define double @f4(double %f1, double *%base, double %acc) #0 {
+define double @f4(double %f1, ptr %base, double %acc) #0 {
 ; The important thing here is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -57,8 +57,8 @@ define double @f4(double %f1, double *%base, double %acc) #0 {
 ; CHECK: msdb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,
@@ -67,7 +67,7 @@ define double @f4(double %f1, double *%base, double %acc) #0 {
   ret double %res
 }
 
-define double @f5(double %f1, double *%base, double %acc) #0 {
+define double @f5(double %f1, ptr %base, double %acc) #0 {
 ; Here too the important thing is that we don't generate an out-of-range
 ; displacement.  Other sequences besides this one would be OK.
 ;
@@ -76,8 +76,8 @@ define double @f5(double %f1, double *%base, double %acc) #0 {
 ; CHECK: msdb %f2, %f0, 0(%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,
@@ -86,14 +86,14 @@ define double @f5(double %f1, double *%base, double %acc) #0 {
   ret double %res
 }
 
-define double @f6(double %f1, double *%base, i64 %index, double %acc) #0 {
+define double @f6(double %f1, ptr %base, i64 %index, double %acc) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: msdb %f2, %f0, 0(%r1,%r2)
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 %index
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,
@@ -102,15 +102,15 @@ define double @f6(double %f1, double *%base, i64 %index, double %acc) #0 {
   ret double %res
 }
 
-define double @f7(double %f1, double *%base, i64 %index, double %acc) #0 {
+define double @f7(double %f1, ptr %base, i64 %index, double %acc) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: msdb %f2, %f0, 4088({{%r1,%r2|%r2,%r1}})
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 511
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,
@@ -119,7 +119,7 @@ define double @f7(double %f1, double *%base, i64 %index, double %acc) #0 {
   ret double %res
 }
 
-define double @f8(double %f1, double *%base, i64 %index, double %acc) #0 {
+define double @f8(double %f1, ptr %base, i64 %index, double %acc) #0 {
 ; CHECK-LABEL: f8:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: lay %r1, 4096({{%r1,%r2|%r2,%r1}})
@@ -127,8 +127,8 @@ define double @f8(double %f1, double *%base, i64 %index, double %acc) #0 {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %index2 = add i64 %index, 512
-  %ptr = getelementptr double, double *%base, i64 %index2
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 %index2
+  %f2 = load double, ptr %ptr
   %negacc = fneg double %acc
   %res = call double @llvm.experimental.constrained.fma.f64 (
                         double %f1, double %f2, double %negacc,

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-11.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-11.ll
index 6ad75c302b2f8..573e1fa9f0614 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-11.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-11.ll
@@ -5,24 +5,24 @@
 declare fp128 @llvm.experimental.constrained.fmul.f128(fp128, fp128, metadata, metadata)
 declare fp128 @llvm.experimental.constrained.fpext.f128.f64(double, metadata)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) #0 {
+define void @f1(ptr %ptr1, ptr %ptr2) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = call fp128 @llvm.experimental.constrained.fmul.f128(
                         fp128 %f1, fp128 %f2,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }
 
-define void @f2(double %f1, double %f2, fp128 *%dst) #0 {
+define void @f2(double %f1, double %f2, ptr %dst) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: wflld [[REG1:%v[0-9]+]], %f0
 ; CHECK-DAG: wflld [[REG2:%v[0-9]+]], %f2
@@ -37,7 +37,7 @@ define void @f2(double %f1, double %f2, fp128 *%dst) #0 {
                         fp128 %f1x, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-12.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-12.ll
index 3af5efb6c9c8c..0fb5dfcbde61f 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-12.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-12.ll
@@ -2,7 +2,7 @@
 
 declare fp128 @llvm.experimental.constrained.fma.f128(fp128 %f1, fp128 %f2, fp128 %f3, metadata, metadata)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
+define void @f1(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -10,18 +10,18 @@ define void @f1(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
 ; CHECK: wfmaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %res = call fp128 @llvm.experimental.constrained.fma.f128 (
                         fp128 %f1, fp128 %f2, fp128 %f3,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
-define void @f2(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
+define void @f2(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -29,19 +29,19 @@ define void @f2(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
 ; CHECK: wfmsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %neg = fsub fp128 0xL00000000000000008000000000000000, %f3
   %res = call fp128 @llvm.experimental.constrained.fma.f128 (
                         fp128 %f1, fp128 %f2, fp128 %neg,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
-define void @f3(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
+define void @f3(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -49,19 +49,19 @@ define void @f3(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
 ; CHECK: wfnmaxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %res = call fp128 @llvm.experimental.constrained.fma.f128 (
                         fp128 %f1, fp128 %f2, fp128 %f3,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
   %negres = fsub fp128 0xL00000000000000008000000000000000, %res
-  store fp128 %negres, fp128 *%dst
+  store fp128 %negres, ptr %dst
   ret void
 }
 
-define void @f4(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
+define void @f4(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
@@ -69,16 +69,16 @@ define void @f4(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
 ; CHECK: wfnmsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], [[REG3]]
 ; CHECK: vst [[RES]], 0(%r5)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %neg = fsub fp128 0xL00000000000000008000000000000000, %f3
   %res = call fp128 @llvm.experimental.constrained.fma.f128 (
                         fp128 %f1, fp128 %f2, fp128 %neg,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
   %negres = fsub fp128 0xL00000000000000008000000000000000, %res
-  store fp128 %negres, fp128 *%dst
+  store fp128 %negres, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-mul-13.ll b/llvm/test/CodeGen/SystemZ/fp-strict-mul-13.ll
index 32f609bb26eb4..4247c97533746 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-mul-13.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-mul-13.ll
@@ -2,18 +2,18 @@
 
 declare fp128 @llvm.experimental.constrained.fma.f128(fp128 %f1, fp128 %f2, fp128 %f3, metadata, metadata)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2, fp128 *%ptr3, fp128 *%dst) #0 {
+define void @f1(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %dst) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: brasl %r14, fmal
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
-  %f3 = load fp128, fp128 *%ptr3
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
+  %f3 = load fp128, ptr %ptr3
   %res = call fp128 @llvm.experimental.constrained.fma.f128 (
                         fp128 %f1, fp128 %f2, fp128 %f3,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-round-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-round-01.ll
index 5b70054998dcb..1fbb1790c01dc 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-round-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-round-01.ll
@@ -30,16 +30,16 @@ define double @f2(double %f) #0 {
 
 ; Test rint for f128.
 declare fp128 @llvm.experimental.constrained.rint.f128(fp128, metadata, metadata)
-define void @f3(fp128 *%ptr) #0 {
+define void @f3(ptr %ptr) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: fixbr %f0, 0, %f0
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.rint.f128(
                         fp128 %src,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -71,16 +71,16 @@ define double @f5(double %f) #0 {
 
 ; Test nearbyint for f128.
 declare fp128 @llvm.experimental.constrained.nearbyint.f128(fp128, metadata, metadata)
-define void @f6(fp128 *%ptr) #0 {
+define void @f6(ptr %ptr) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: brasl %r14, nearbyintl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.nearbyint.f128(
                         fp128 %src,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -110,15 +110,15 @@ define double @f8(double %f) #0 {
 
 ; Test floor for f128.
 declare fp128 @llvm.experimental.constrained.floor.f128(fp128, metadata)
-define void @f9(fp128 *%ptr) #0 {
+define void @f9(ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, floorl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.floor.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -148,15 +148,15 @@ define double @f11(double %f) #0 {
 
 ; Test ceil for f128.
 declare fp128 @llvm.experimental.constrained.ceil.f128(fp128, metadata)
-define void @f12(fp128 *%ptr) #0 {
+define void @f12(ptr %ptr) #0 {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, ceill at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.ceil.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -186,15 +186,15 @@ define double @f14(double %f) #0 {
 
 ; Test trunc for f128.
 declare fp128 @llvm.experimental.constrained.trunc.f128(fp128, metadata)
-define void @f15(fp128 *%ptr) #0 {
+define void @f15(ptr %ptr) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK: brasl %r14, truncl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.trunc.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -224,15 +224,15 @@ define double @f17(double %f) #0 {
 
 ; Test round for f128.
 declare fp128 @llvm.experimental.constrained.round.f128(fp128, metadata)
-define void @f18(fp128 *%ptr) #0 {
+define void @f18(ptr %ptr) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: brasl %r14, roundl at PLT
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.round.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-round-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-round-02.ll
index c51e87bf5623e..bc304a3fb95fb 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-round-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-round-02.ll
@@ -34,16 +34,16 @@ define double @f2(double %f) #0 {
 
 ; Test rint for f128.
 declare fp128 @llvm.experimental.constrained.rint.f128(fp128, metadata, metadata)
-define void @f3(fp128 *%ptr) #0 {
+define void @f3(ptr %ptr) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: fixbr %f0, 0, %f0
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.rint.f128(
                         fp128 %src,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -75,16 +75,16 @@ define double @f5(double %f) #0 {
 
 ; Test nearbyint for f128.
 declare fp128 @llvm.experimental.constrained.nearbyint.f128(fp128, metadata, metadata)
-define void @f6(fp128 *%ptr) #0 {
+define void @f6(ptr %ptr) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: fixbra %f0, 0, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.nearbyint.f128(
                         fp128 %src,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -114,15 +114,15 @@ define double @f8(double %f) #0 {
 
 ; Test floor for f128.
 declare fp128 @llvm.experimental.constrained.floor.f128(fp128, metadata)
-define void @f9(fp128 *%ptr) #0 {
+define void @f9(ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: fixbra %f0, 7, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.floor.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -152,15 +152,15 @@ define double @f11(double %f) #0 {
 
 ; Test ceil for f128.
 declare fp128 @llvm.experimental.constrained.ceil.f128(fp128, metadata)
-define void @f12(fp128 *%ptr) #0 {
+define void @f12(ptr %ptr) #0 {
 ; CHECK-LABEL: f12:
 ; CHECK: fixbra %f0, 6, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.ceil.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -190,15 +190,15 @@ define double @f14(double %f) #0 {
 
 ; Test trunc for f128.
 declare fp128 @llvm.experimental.constrained.trunc.f128(fp128, metadata)
-define void @f15(fp128 *%ptr) #0 {
+define void @f15(ptr %ptr) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK: fixbra %f0, 5, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.trunc.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -228,15 +228,15 @@ define double @f17(double %f) #0 {
 
 ; Test round for f128.
 declare fp128 @llvm.experimental.constrained.round.f128(fp128, metadata)
-define void @f18(fp128 *%ptr) #0 {
+define void @f18(ptr %ptr) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: fixbra %f0, 1, %f0, 4
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.round.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-round-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-round-03.ll
index 4b452ceb15f22..2cdff7d5c425e 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-round-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-round-03.ll
@@ -30,18 +30,18 @@ define double @f2(double %f) #0 {
 
 ; Test rint for f128.
 declare fp128 @llvm.experimental.constrained.rint.f128(fp128, metadata, metadata)
-define void @f3(fp128 *%ptr) #0 {
+define void @f3(ptr %ptr) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 0, 0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.rint.f128(
                         fp128 %src,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -73,18 +73,18 @@ define double @f5(double %f) #0 {
 
 ; Test nearbyint for f128.
 declare fp128 @llvm.experimental.constrained.nearbyint.f128(fp128, metadata, metadata)
-define void @f6(fp128 *%ptr) #0 {
+define void @f6(ptr %ptr) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 0
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.nearbyint.f128(
                         fp128 %src,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -114,17 +114,17 @@ define double @f8(double %f) #0 {
 
 ; Test floor for f128.
 declare fp128 @llvm.experimental.constrained.floor.f128(fp128, metadata)
-define void @f9(fp128 *%ptr) #0 {
+define void @f9(ptr %ptr) #0 {
 ; CHECK-LABEL: f9:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 7
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.floor.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -154,17 +154,17 @@ define double @f11(double %f) #0 {
 
 ; Test ceil for f128.
 declare fp128 @llvm.experimental.constrained.ceil.f128(fp128, metadata)
-define void @f12(fp128 *%ptr) #0 {
+define void @f12(ptr %ptr) #0 {
 ; CHECK-LABEL: f12:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 6
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.ceil.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -194,17 +194,17 @@ define double @f14(double %f) #0 {
 
 ; Test trunc for f128.
 declare fp128 @llvm.experimental.constrained.trunc.f128(fp128, metadata)
-define void @f15(fp128 *%ptr) #0 {
+define void @f15(ptr %ptr) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 5
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.trunc.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 
@@ -234,17 +234,17 @@ define double @f17(double %f) #0 {
 
 ; Test round for f128.
 declare fp128 @llvm.experimental.constrained.round.f128(fp128, metadata)
-define void @f18(fp128 *%ptr) #0 {
+define void @f18(ptr %ptr) #0 {
 ; CHECK-LABEL: f18:
 ; CHECK: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfixb [[RES:%v[0-9]+]], [[REG]], 4, 1
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %src = load fp128, fp128 *%ptr
+  %src = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.round.f128(
                         fp128 %src,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-01.ll
index 23c4941c71a9e..88cdb71ff7d12 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-01.ll
@@ -22,12 +22,12 @@ define float @f1(float %val) #0 {
 }
 
 ; Check the low end of the SQEB range.
-define float @f2(float *%ptr) #0 {
+define float @f2(ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sqeb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.sqrt.f32(
                         float %val,
                         metadata !"round.dynamic",
@@ -36,13 +36,13 @@ define float @f2(float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned SQEB range.
-define float @f3(float *%base) #0 {
+define float @f3(ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sqeb %f0, 4092(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %val = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.sqrt.f32(
                         float %val,
                         metadata !"round.dynamic",
@@ -52,14 +52,14 @@ define float @f3(float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float *%base) #0 {
+define float @f4(ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, 4096
 ; CHECK-NEXT:    sqeb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %val = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.sqrt.f32(
                         float %val,
                         metadata !"round.dynamic",
@@ -68,14 +68,14 @@ define float @f4(float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float *%base) #0 {
+define float @f5(ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, -4
 ; CHECK-NEXT:    sqeb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %val = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %val = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.sqrt.f32(
                         float %val,
                         metadata !"round.dynamic",
@@ -84,15 +84,15 @@ define float @f5(float *%base) #0 {
 }
 
 ; Check that SQEB allows indices.
-define float @f6(float *%base, i64 %index) #0 {
+define float @f6(ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sllg %r1, %r3, 2
 ; CHECK-NEXT:    sqeb %f0, 400(%r1,%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %val = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %val = load float, ptr %ptr2
   %res = call float @llvm.experimental.constrained.sqrt.f32(
                         float %val,
                         metadata !"round.dynamic",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-02.ll
index d456a338629cf..25ba0b85a58e0 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-02.ll
@@ -22,12 +22,12 @@ define double @f1(double %val) #0 {
 }
 
 ; Check the low end of the SQDB range.
-define double @f2(double *%ptr) #0 {
+define double @f2(ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sqdb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.sqrt.f64(
                         double %val,
                         metadata !"round.dynamic",
@@ -36,13 +36,13 @@ define double @f2(double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned SQDB range.
-define double @f3(double *%base) #0 {
+define double @f3(ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sqdb %f0, 4088(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %val = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.sqrt.f64(
                         double %val,
                         metadata !"round.dynamic",
@@ -52,14 +52,14 @@ define double @f3(double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double *%base) #0 {
+define double @f4(ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, 4096
 ; CHECK-NEXT:    sqdb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %val = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.sqrt.f64(
                         double %val,
                         metadata !"round.dynamic",
@@ -68,14 +68,14 @@ define double @f4(double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double *%base) #0 {
+define double @f5(ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r2, -8
 ; CHECK-NEXT:    sqdb %f0, 0(%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %val = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %val = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.sqrt.f64(
                         double %val,
                         metadata !"round.dynamic",
@@ -84,15 +84,15 @@ define double @f5(double *%base) #0 {
 }
 
 ; Check that SQDB allows indices.
-define double @f6(double *%base, i64 %index) #0 {
+define double @f6(ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    sllg %r1, %r3, 3
 ; CHECK-NEXT:    sqdb %f0, 800(%r1,%r2)
 ; CHECK-NEXT:    br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %val = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %val = load double, ptr %ptr2
   %res = call double @llvm.experimental.constrained.sqrt.f64(
                         double %val,
                         metadata !"round.dynamic",

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-03.ll
index 0f2f2729362be..5f44f3f1fb1b9 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-03.ll
@@ -5,7 +5,7 @@
 declare fp128 @llvm.experimental.constrained.sqrt.f128(fp128, metadata, metadata)
 
 ; There's no memory form of SQXBR.
-define void @f1(fp128 *%ptr) strictfp {
+define void @f1(ptr %ptr) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK: ld %f0, 0(%r2)
 ; CHECK: ld %f2, 8(%r2)
@@ -13,11 +13,11 @@ define void @f1(fp128 *%ptr) strictfp {
 ; CHECK: std %f0, 0(%r2)
 ; CHECK: std %f2, 8(%r2)
 ; CHECK: br %r14
-  %orig = load fp128, fp128 *%ptr
+  %orig = load fp128, ptr %ptr
   %sqrt = call fp128 @llvm.experimental.constrained.sqrt.f128(
                         fp128 %orig,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") strictfp
-  store fp128 %sqrt, fp128 *%ptr
+  store fp128 %sqrt, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-04.ll
index 0667aeb281fb7..f8dc20bba967d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sqrt-04.ll
@@ -4,17 +4,17 @@
 
 declare fp128 @llvm.experimental.constrained.sqrt.f128(fp128, metadata, metadata)
 
-define void @f1(fp128 *%ptr) strictfp {
+define void @f1(ptr %ptr) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: wfsqxb [[RES:%v[0-9]+]], [[REG]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f = load fp128, fp128 *%ptr
+  %f = load fp128, ptr %ptr
   %res = call fp128 @llvm.experimental.constrained.sqrt.f128(
                         fp128 %f,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") strictfp
-  store fp128 %res, fp128 *%ptr
+  store fp128 %res, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sub-01.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sub-01.ll
index 82156e4856b5a..a677d471397f7 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sub-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sub-01.ll
@@ -20,11 +20,11 @@ define float @f1(float %f1, float %f2) #0 {
 }
 
 ; Check the low end of the SEB range.
-define float @f2(float %f1, float *%ptr) #0 {
+define float @f2(float %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fsub.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define float @f2(float %f1, float *%ptr) #0 {
 }
 
 ; Check the high end of the aligned SEB range.
-define float @f3(float %f1, float *%base) #0 {
+define float @f3(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: seb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fsub.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define float @f3(float %f1, float *%base) #0 {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) #0 {
+define float @f4(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fsub.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define float @f4(float %f1, float *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) #0 {
+define float @f5(float %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = call float @llvm.experimental.constrained.fsub.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define float @f5(float %f1, float *%base) #0 {
 }
 
 ; Check that SEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) #0 {
+define float @f6(float %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: seb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = call float @llvm.experimental.constrained.fsub.f32(
                         float %f1, float %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define float @f6(float %f1, float *%base, i64 %index) #0 {
 }
 
 ; Check that subtractions of spilled values can use SEB rather than SEBR.
-define float @f7(float *%ptr0) #0 {
+define float @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: seb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sub-02.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sub-02.ll
index 6184d88d83a77..c8ad61b39d2c2 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sub-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sub-02.ll
@@ -20,11 +20,11 @@ define double @f1(double %f1, double %f2) #0 {
 }
 
 ; Check the low end of the SDB range.
-define double @f2(double %f1, double *%ptr) #0 {
+define double @f2(double %f1, ptr %ptr) #0 {
 ; CHECK-LABEL: f2:
 ; CHECK: sdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fsub.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -33,12 +33,12 @@ define double @f2(double %f1, double *%ptr) #0 {
 }
 
 ; Check the high end of the aligned SDB range.
-define double @f3(double %f1, double *%base) #0 {
+define double @f3(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f3:
 ; CHECK: sdb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fsub.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -48,13 +48,13 @@ define double @f3(double %f1, double *%base) #0 {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) #0 {
+define double @f4(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: sdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fsub.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -63,13 +63,13 @@ define double @f4(double %f1, double *%base) #0 {
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) #0 {
+define double @f5(double %f1, ptr %base) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: sdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = call double @llvm.experimental.constrained.fsub.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -78,14 +78,14 @@ define double @f5(double %f1, double *%base) #0 {
 }
 
 ; Check that SDB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) #0 {
+define double @f6(double %f1, ptr %base, i64 %index) #0 {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: sdb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = call double @llvm.experimental.constrained.fsub.f64(
                         double %f1, double %f2,
                         metadata !"round.dynamic",
@@ -94,33 +94,33 @@ define double @f6(double %f1, double *%base, i64 %index) #0 {
 }
 
 ; Check that subtractions of spilled values can use SDB rather than SDBR.
-define double @f7(double *%ptr0) #0 {
+define double @f7(ptr %ptr0) #0 {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: sdb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo() #0
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sub-03.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sub-03.ll
index d5ab4caf0db82..d4eb5690ba82d 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sub-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sub-03.ll
@@ -6,7 +6,7 @@ declare fp128 @llvm.experimental.constrained.fsub.f128(fp128, fp128, metadata, m
 declare fp128 @llvm.experimental.constrained.fpext.f128.f32(float, metadata)
 
 ; There is no memory form of 128-bit subtraction.
-define void @f1(fp128 *%ptr, float %f2) strictfp {
+define void @f1(ptr %ptr, float %f2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -15,14 +15,14 @@ define void @f1(fp128 *%ptr, float %f2) strictfp {
 ; CHECK: std %f1, 0(%r2)
 ; CHECK: std %f3, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = call fp128 @llvm.experimental.constrained.fpext.f128.f32(float %f2,
                                                metadata !"fpexcept.strict") #0
   %sum = call fp128 @llvm.experimental.constrained.fsub.f128(
                         fp128 %f1, fp128 %f2x,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") #0
-  store fp128 %sum, fp128 *%ptr
+  store fp128 %sum, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-strict-sub-04.ll b/llvm/test/CodeGen/SystemZ/fp-strict-sub-04.ll
index 0eaf5f3afef20..31bee011da0d1 100644
--- a/llvm/test/CodeGen/SystemZ/fp-strict-sub-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-strict-sub-04.ll
@@ -4,19 +4,19 @@
 
 declare fp128 @llvm.experimental.constrained.fsub.f128(fp128, fp128, metadata, metadata)
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) strictfp {
+define void @f1(ptr %ptr1, ptr %ptr2) strictfp {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = call fp128 @llvm.experimental.constrained.fsub.f128(
                         fp128 %f1, fp128 %f2,
                         metadata !"round.dynamic",
                         metadata !"fpexcept.strict") strictfp
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sub-01.ll b/llvm/test/CodeGen/SystemZ/fp-sub-01.ll
index 63977a2389814..a6e01112619ee 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sub-01.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sub-01.ll
@@ -16,92 +16,92 @@ define float @f1(float %f1, float %f2) {
 }
 
 ; Check the low end of the SEB range.
-define float @f2(float %f1, float *%ptr) {
+define float @f2(float %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load float, float *%ptr
+  %f2 = load float, ptr %ptr
   %res = fsub float %f1, %f2
   ret float %res
 }
 
 ; Check the high end of the aligned SEB range.
-define float @f3(float %f1, float *%base) {
+define float @f3(float %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: seb %f0, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %f2 = load float, ptr %ptr
   %res = fsub float %f1, %f2
   ret float %res
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define float @f4(float %f1, float *%base) {
+define float @f4(float %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %f2 = load float, ptr %ptr
   %res = fsub float %f1, %f2
   ret float %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define float @f5(float %f1, float *%base) {
+define float @f5(float %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -4
 ; CHECK: seb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 -1
-  %f2 = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 -1
+  %f2 = load float, ptr %ptr
   %res = fsub float %f1, %f2
   ret float %res
 }
 
 ; Check that SEB allows indices.
-define float @f6(float %f1, float *%base, i64 %index) {
+define float @f6(float %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 2
 ; CHECK: seb %f0, 400(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%base, i64 %index
-  %ptr2 = getelementptr float, float *%ptr1, i64 100
-  %f2 = load float, float *%ptr2
+  %ptr1 = getelementptr float, ptr %base, i64 %index
+  %ptr2 = getelementptr float, ptr %ptr1, i64 100
+  %f2 = load float, ptr %ptr2
   %res = fsub float %f1, %f2
   ret float %res
 }
 
 ; Check that subtractions of spilled values can use SEB rather than SEBR.
-define float @f7(float *%ptr0) {
+define float @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: seb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-  %ptr10 = getelementptr float, float *%ptr0, i64 20
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+  %ptr10 = getelementptr float, ptr %ptr0, i64 20
 
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
-  %val10 = load float, float *%ptr10
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
+  %val10 = load float, ptr %ptr10
 
   %ret = call float @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sub-02.ll b/llvm/test/CodeGen/SystemZ/fp-sub-02.ll
index c16c894bb0404..c564c2de31887 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sub-02.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sub-02.ll
@@ -16,92 +16,92 @@ define double @f1(double %f1, double %f2) {
 }
 
 ; Check the low end of the SDB range.
-define double @f2(double %f1, double *%ptr) {
+define double @f2(double %f1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: sdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %f2 = load double, double *%ptr
+  %f2 = load double, ptr %ptr
   %res = fsub double %f1, %f2
   ret double %res
 }
 
 ; Check the high end of the aligned SDB range.
-define double @f3(double %f1, double *%base) {
+define double @f3(double %f1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: sdb %f0, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 511
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 511
+  %f2 = load double, ptr %ptr
   %res = fsub double %f1, %f2
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %f1, double *%base) {
+define double @f4(double %f1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: sdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 512
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 512
+  %f2 = load double, ptr %ptr
   %res = fsub double %f1, %f2
   ret double %res
 }
 
 ; Check negative displacements, which also need separate address logic.
-define double @f5(double %f1, double *%base) {
+define double @f5(double %f1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -8
 ; CHECK: sdb %f0, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i64 -1
-  %f2 = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i64 -1
+  %f2 = load double, ptr %ptr
   %res = fsub double %f1, %f2
   ret double %res
 }
 
 ; Check that SDB allows indices.
-define double @f6(double %f1, double *%base, i64 %index) {
+define double @f6(double %f1, ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r1, %r3, 3
 ; CHECK: sdb %f0, 800(%r1,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%base, i64 %index
-  %ptr2 = getelementptr double, double *%ptr1, i64 100
-  %f2 = load double, double *%ptr2
+  %ptr1 = getelementptr double, ptr %base, i64 %index
+  %ptr2 = getelementptr double, ptr %ptr1, i64 100
+  %f2 = load double, ptr %ptr2
   %res = fsub double %f1, %f2
   ret double %res
 }
 
 ; Check that subtractions of spilled values can use SDB rather than SDBR.
-define double @f7(double *%ptr0) {
+define double @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK-SCALAR: sdb %f0, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-  %ptr10 = getelementptr double, double *%ptr0, i64 20
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+  %ptr10 = getelementptr double, ptr %ptr0, i64 20
 
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
-  %val10 = load double, double *%ptr10
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
+  %val10 = load double, ptr %ptr10
 
   %ret = call double @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sub-03.ll b/llvm/test/CodeGen/SystemZ/fp-sub-03.ll
index 7deceebe9ca97..ba94b7df40899 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sub-03.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sub-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; There is no memory form of 128-bit subtraction.
-define void @f1(fp128 *%ptr, float %f2) {
+define void @f1(ptr %ptr, float %f2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lxebr %f0, %f0
 ; CHECK-DAG: ld %f1, 0(%r2)
@@ -12,9 +12,9 @@ define void @f1(fp128 *%ptr, float %f2) {
 ; CHECK: std %f1, 0(%r2)
 ; CHECK: std %f3, 8(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr
+  %f1 = load fp128, ptr %ptr
   %f2x = fpext float %f2 to fp128
   %sum = fsub fp128 %f1, %f2x
-  store fp128 %sum, fp128 *%ptr
+  store fp128 %sum, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fp-sub-04.ll b/llvm/test/CodeGen/SystemZ/fp-sub-04.ll
index 5f88132664ef3..3a2550a507ea1 100644
--- a/llvm/test/CodeGen/SystemZ/fp-sub-04.ll
+++ b/llvm/test/CodeGen/SystemZ/fp-sub-04.ll
@@ -2,16 +2,16 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
-define void @f1(fp128 *%ptr1, fp128 *%ptr2) {
+define void @f1(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfsxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]]
 ; CHECK: vst [[RES]], 0(%r2)
 ; CHECK: br %r14
-  %f1 = load fp128, fp128 *%ptr1
-  %f2 = load fp128, fp128 *%ptr2
+  %f1 = load fp128, ptr %ptr1
+  %f2 = load fp128, ptr %ptr2
   %sum = fsub fp128 %f1, %f2
-  store fp128 %sum, fp128 *%ptr1
+  store fp128 %sum, ptr %ptr1
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/fpc-intrinsics.ll b/llvm/test/CodeGen/SystemZ/fpc-intrinsics.ll
index fd8064b18fcf3..3257970d94740 100644
--- a/llvm/test/CodeGen/SystemZ/fpc-intrinsics.ll
+++ b/llvm/test/CodeGen/SystemZ/fpc-intrinsics.ll
@@ -24,44 +24,44 @@ define i32 @test_efpc() {
 }
 
 ; LFPC.
-define void @test_lfpc1(i32 *%ptr) {
+define void @test_lfpc1(ptr %ptr) {
 ; CHECK-LABEL: test_lfpc1:
 ; CHECK: lfpc 0(%r2)
 ; CHECK: br %r14
-  %fpc = load i32, i32 *%ptr
+  %fpc = load i32, ptr %ptr
   call void @llvm.s390.sfpc(i32 %fpc)
   ret void
 }
 
 ; LFPC with offset.
-define void @test_lfpc2(i32 *%ptr) {
+define void @test_lfpc2(ptr %ptr) {
 ; CHECK-LABEL: test_lfpc2:
 ; CHECK: lfpc 4092(%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr, i32 1023
-  %fpc = load i32, i32 *%ptr1
+  %ptr1 = getelementptr i32, ptr %ptr, i32 1023
+  %fpc = load i32, ptr %ptr1
   call void @llvm.s390.sfpc(i32 %fpc)
   ret void
 }
 
 ; STFPC.
-define void @test_stfpc1(i32 *%ptr) {
+define void @test_stfpc1(ptr %ptr) {
 ; CHECK-LABEL: test_stfpc1:
 ; CHECK: stfpc 0(%r2)
 ; CHECK: br %r14
   %fpc = call i32 @llvm.s390.efpc()
-  store i32 %fpc, i32 *%ptr
+  store i32 %fpc, ptr %ptr
   ret void
 }
 
 ; STFPC with offset.
-define void @test_stfpc2(i32 *%ptr) {
+define void @test_stfpc2(ptr %ptr) {
 ; CHECK-LABEL: test_stfpc2:
 ; CHECK: stfpc 4092(%r2)
 ; CHECK: br %r14
   %fpc = call i32 @llvm.s390.efpc()
-  %ptr1 = getelementptr i32, i32 *%ptr, i32 1023
-  store i32 %fpc, i32 *%ptr1
+  %ptr1 = getelementptr i32, ptr %ptr, i32 1023
+  store i32 %fpc, ptr %ptr1
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/frame-01.ll b/llvm/test/CodeGen/SystemZ/frame-01.ll
index 5afc4f1cef344..0d581560840dc 100644
--- a/llvm/test/CodeGen/SystemZ/frame-01.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-01.ll
@@ -3,7 +3,7 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @foo(i32 *)
+declare void @foo(ptr)
 
 ; The CFA offset is 160 (the caller-allocated part of the frame) + 168.
 define void @f1(i64 %x) {
@@ -14,7 +14,7 @@ define void @f1(i64 %x) {
 ; CHECK: aghi %r15, 168
 ; CHECK: br %r14
   %y = alloca i64, align 8
-  store volatile i64 %x, i64* %y
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -31,8 +31,7 @@ define void @f2(i64 %x) {
 ; CHECK: aghi %r15, 32760
 ; CHECK: br %r14
   %y = alloca [4073 x i64], align 8
-  %ptr = getelementptr inbounds [4073 x i64], [4073 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -46,8 +45,7 @@ define void @f3(i64 %x) {
 ; CHECK: agfi %r15, 32768
 ; CHECK: br %r14
   %y = alloca [4074 x i64], align 8
-  %ptr = getelementptr inbounds [4074 x i64], [4074 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -61,8 +59,7 @@ define void @f4(i64 %x) {
 ; CHECK: agfi %r15, 32776
 ; CHECK: br %r14
   %y = alloca [4075 x i64], align 8
-  %ptr = getelementptr inbounds [4075 x i64], [4075 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -75,8 +72,7 @@ define void @f5(i64 %x) {
 ; CHECK: agfi %r15, 2147483640
 ; CHECK: br %r14
   %y = alloca [268435433 x i64], align 8
-  %ptr = getelementptr inbounds [268435433 x i64], [268435433 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -90,8 +86,7 @@ define void @f6(i64 %x) {
 ; CHECK: aghi %r15, 8
 ; CHECK: br %r14
   %y = alloca [268435434 x i64], align 8
-  %ptr = getelementptr inbounds [268435434 x i64], [268435434 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -106,8 +101,7 @@ define void @f7(i64 %x) {
 ; CHECK: aghi %r15, 16
 ; CHECK: br %r14
   %y = alloca [268435435 x i64], align 8
-  %ptr = getelementptr inbounds [268435435 x i64], [268435435 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -120,7 +114,7 @@ define void @f8() {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %ptr = alloca i32
-  call void @foo(i32 *%ptr)
-  call void @foo(i32 *%ptr)
+  call void @foo(ptr %ptr)
+  call void @foo(ptr %ptr)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-02.ll b/llvm/test/CodeGen/SystemZ/frame-02.ll
index d7160483b532b..2545dc9193361 100644
--- a/llvm/test/CodeGen/SystemZ/frame-02.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-02.ll
@@ -6,7 +6,7 @@
 ; We need to save and restore 8 of the 16 FPRs, so the frame size
 ; should be exactly 8 * 8 = 64.  The CFA offset is 160
 ; (the caller-allocated part of the frame) + 64.
-define void @f1(float *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r15, -64
 ; CHECK: .cfi_def_cfa_offset 224
@@ -37,22 +37,22 @@ define void @f1(float *%ptr) {
 ; CHECK: ld %f15, 0(%r15)
 ; CHECK: aghi %r15, 64
 ; CHECK: br %r14
-  %l0 = load volatile float, float *%ptr
-  %l1 = load volatile float, float *%ptr
-  %l2 = load volatile float, float *%ptr
-  %l3 = load volatile float, float *%ptr
-  %l4 = load volatile float, float *%ptr
-  %l5 = load volatile float, float *%ptr
-  %l6 = load volatile float, float *%ptr
-  %l7 = load volatile float, float *%ptr
-  %l8 = load volatile float, float *%ptr
-  %l9 = load volatile float, float *%ptr
-  %l10 = load volatile float, float *%ptr
-  %l11 = load volatile float, float *%ptr
-  %l12 = load volatile float, float *%ptr
-  %l13 = load volatile float, float *%ptr
-  %l14 = load volatile float, float *%ptr
-  %l15 = load volatile float, float *%ptr
+  %l0 = load volatile float, ptr %ptr
+  %l1 = load volatile float, ptr %ptr
+  %l2 = load volatile float, ptr %ptr
+  %l3 = load volatile float, ptr %ptr
+  %l4 = load volatile float, ptr %ptr
+  %l5 = load volatile float, ptr %ptr
+  %l6 = load volatile float, ptr %ptr
+  %l7 = load volatile float, ptr %ptr
+  %l8 = load volatile float, ptr %ptr
+  %l9 = load volatile float, ptr %ptr
+  %l10 = load volatile float, ptr %ptr
+  %l11 = load volatile float, ptr %ptr
+  %l12 = load volatile float, ptr %ptr
+  %l13 = load volatile float, ptr %ptr
+  %l14 = load volatile float, ptr %ptr
+  %l15 = load volatile float, ptr %ptr
   %add0 = fadd float %l0, %l0
   %add1 = fadd float %l1, %add0
   %add2 = fadd float %l2, %add1
@@ -69,28 +69,28 @@ define void @f1(float *%ptr) {
   %add13 = fadd float %l13, %add12
   %add14 = fadd float %l14, %add13
   %add15 = fadd float %l15, %add14
-  store volatile float %add0, float *%ptr
-  store volatile float %add1, float *%ptr
-  store volatile float %add2, float *%ptr
-  store volatile float %add3, float *%ptr
-  store volatile float %add4, float *%ptr
-  store volatile float %add5, float *%ptr
-  store volatile float %add6, float *%ptr
-  store volatile float %add7, float *%ptr
-  store volatile float %add8, float *%ptr
-  store volatile float %add9, float *%ptr
-  store volatile float %add10, float *%ptr
-  store volatile float %add11, float *%ptr
-  store volatile float %add12, float *%ptr
-  store volatile float %add13, float *%ptr
-  store volatile float %add14, float *%ptr
-  store volatile float %add15, float *%ptr
+  store volatile float %add0, ptr %ptr
+  store volatile float %add1, ptr %ptr
+  store volatile float %add2, ptr %ptr
+  store volatile float %add3, ptr %ptr
+  store volatile float %add4, ptr %ptr
+  store volatile float %add5, ptr %ptr
+  store volatile float %add6, ptr %ptr
+  store volatile float %add7, ptr %ptr
+  store volatile float %add8, ptr %ptr
+  store volatile float %add9, ptr %ptr
+  store volatile float %add10, ptr %ptr
+  store volatile float %add11, ptr %ptr
+  store volatile float %add12, ptr %ptr
+  store volatile float %add13, ptr %ptr
+  store volatile float %add14, ptr %ptr
+  store volatile float %add15, ptr %ptr
   ret void
 }
 
 ; Like f1, but requires one fewer FPR.  We allocate in numerical order,
 ; so %f15 is the one that gets dropped.
-define void @f2(float *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r15, -56
 ; CHECK: .cfi_def_cfa_offset 216
@@ -119,21 +119,21 @@ define void @f2(float *%ptr) {
 ; CHECK: ld %f14, 0(%r15)
 ; CHECK: aghi %r15, 56
 ; CHECK: br %r14
-  %l0 = load volatile float, float *%ptr
-  %l1 = load volatile float, float *%ptr
-  %l2 = load volatile float, float *%ptr
-  %l3 = load volatile float, float *%ptr
-  %l4 = load volatile float, float *%ptr
-  %l5 = load volatile float, float *%ptr
-  %l6 = load volatile float, float *%ptr
-  %l7 = load volatile float, float *%ptr
-  %l8 = load volatile float, float *%ptr
-  %l9 = load volatile float, float *%ptr
-  %l10 = load volatile float, float *%ptr
-  %l11 = load volatile float, float *%ptr
-  %l12 = load volatile float, float *%ptr
-  %l13 = load volatile float, float *%ptr
-  %l14 = load volatile float, float *%ptr
+  %l0 = load volatile float, ptr %ptr
+  %l1 = load volatile float, ptr %ptr
+  %l2 = load volatile float, ptr %ptr
+  %l3 = load volatile float, ptr %ptr
+  %l4 = load volatile float, ptr %ptr
+  %l5 = load volatile float, ptr %ptr
+  %l6 = load volatile float, ptr %ptr
+  %l7 = load volatile float, ptr %ptr
+  %l8 = load volatile float, ptr %ptr
+  %l9 = load volatile float, ptr %ptr
+  %l10 = load volatile float, ptr %ptr
+  %l11 = load volatile float, ptr %ptr
+  %l12 = load volatile float, ptr %ptr
+  %l13 = load volatile float, ptr %ptr
+  %l14 = load volatile float, ptr %ptr
   %add0 = fadd float %l0, %l0
   %add1 = fadd float %l1, %add0
   %add2 = fadd float %l2, %add1
@@ -149,26 +149,26 @@ define void @f2(float *%ptr) {
   %add12 = fadd float %l12, %add11
   %add13 = fadd float %l13, %add12
   %add14 = fadd float %l14, %add13
-  store volatile float %add0, float *%ptr
-  store volatile float %add1, float *%ptr
-  store volatile float %add2, float *%ptr
-  store volatile float %add3, float *%ptr
-  store volatile float %add4, float *%ptr
-  store volatile float %add5, float *%ptr
-  store volatile float %add6, float *%ptr
-  store volatile float %add7, float *%ptr
-  store volatile float %add8, float *%ptr
-  store volatile float %add9, float *%ptr
-  store volatile float %add10, float *%ptr
-  store volatile float %add11, float *%ptr
-  store volatile float %add12, float *%ptr
-  store volatile float %add13, float *%ptr
-  store volatile float %add14, float *%ptr
+  store volatile float %add0, ptr %ptr
+  store volatile float %add1, ptr %ptr
+  store volatile float %add2, ptr %ptr
+  store volatile float %add3, ptr %ptr
+  store volatile float %add4, ptr %ptr
+  store volatile float %add5, ptr %ptr
+  store volatile float %add6, ptr %ptr
+  store volatile float %add7, ptr %ptr
+  store volatile float %add8, ptr %ptr
+  store volatile float %add9, ptr %ptr
+  store volatile float %add10, ptr %ptr
+  store volatile float %add11, ptr %ptr
+  store volatile float %add12, ptr %ptr
+  store volatile float %add13, ptr %ptr
+  store volatile float %add14, ptr %ptr
   ret void
 }
 
 ; Like f1, but should require only one call-saved FPR.
-define void @f3(float *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r15, -8
 ; CHECK: .cfi_def_cfa_offset 168
@@ -185,15 +185,15 @@ define void @f3(float *%ptr) {
 ; CHECK: ld %f8, 0(%r15)
 ; CHECK: aghi %r15, 8
 ; CHECK: br %r14
-  %l0 = load volatile float, float *%ptr
-  %l1 = load volatile float, float *%ptr
-  %l2 = load volatile float, float *%ptr
-  %l3 = load volatile float, float *%ptr
-  %l4 = load volatile float, float *%ptr
-  %l5 = load volatile float, float *%ptr
-  %l6 = load volatile float, float *%ptr
-  %l7 = load volatile float, float *%ptr
-  %l8 = load volatile float, float *%ptr
+  %l0 = load volatile float, ptr %ptr
+  %l1 = load volatile float, ptr %ptr
+  %l2 = load volatile float, ptr %ptr
+  %l3 = load volatile float, ptr %ptr
+  %l4 = load volatile float, ptr %ptr
+  %l5 = load volatile float, ptr %ptr
+  %l6 = load volatile float, ptr %ptr
+  %l7 = load volatile float, ptr %ptr
+  %l8 = load volatile float, ptr %ptr
   %add0 = fadd float %l0, %l0
   %add1 = fadd float %l1, %add0
   %add2 = fadd float %l2, %add1
@@ -203,21 +203,21 @@ define void @f3(float *%ptr) {
   %add6 = fadd float %l6, %add5
   %add7 = fadd float %l7, %add6
   %add8 = fadd float %l8, %add7
-  store volatile float %add0, float *%ptr
-  store volatile float %add1, float *%ptr
-  store volatile float %add2, float *%ptr
-  store volatile float %add3, float *%ptr
-  store volatile float %add4, float *%ptr
-  store volatile float %add5, float *%ptr
-  store volatile float %add6, float *%ptr
-  store volatile float %add7, float *%ptr
-  store volatile float %add8, float *%ptr
+  store volatile float %add0, ptr %ptr
+  store volatile float %add1, ptr %ptr
+  store volatile float %add2, ptr %ptr
+  store volatile float %add3, ptr %ptr
+  store volatile float %add4, ptr %ptr
+  store volatile float %add5, ptr %ptr
+  store volatile float %add6, ptr %ptr
+  store volatile float %add7, ptr %ptr
+  store volatile float %add8, ptr %ptr
   ret void
 }
 
 ; This function should use all call-clobbered FPRs but no call-saved ones.
 ; It shouldn't need to create a frame.
-define void @f4(float *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK-NOT: %f8
@@ -229,14 +229,14 @@ define void @f4(float *%ptr) {
 ; CHECK-NOT: %f14
 ; CHECK-NOT: %f15
 ; CHECK: br %r14
-  %l0 = load volatile float, float *%ptr
-  %l1 = load volatile float, float *%ptr
-  %l2 = load volatile float, float *%ptr
-  %l3 = load volatile float, float *%ptr
-  %l4 = load volatile float, float *%ptr
-  %l5 = load volatile float, float *%ptr
-  %l6 = load volatile float, float *%ptr
-  %l7 = load volatile float, float *%ptr
+  %l0 = load volatile float, ptr %ptr
+  %l1 = load volatile float, ptr %ptr
+  %l2 = load volatile float, ptr %ptr
+  %l3 = load volatile float, ptr %ptr
+  %l4 = load volatile float, ptr %ptr
+  %l5 = load volatile float, ptr %ptr
+  %l6 = load volatile float, ptr %ptr
+  %l7 = load volatile float, ptr %ptr
   %add0 = fadd float %l0, %l0
   %add1 = fadd float %l1, %add0
   %add2 = fadd float %l2, %add1
@@ -245,13 +245,13 @@ define void @f4(float *%ptr) {
   %add5 = fadd float %l5, %add4
   %add6 = fadd float %l6, %add5
   %add7 = fadd float %l7, %add6
-  store volatile float %add0, float *%ptr
-  store volatile float %add1, float *%ptr
-  store volatile float %add2, float *%ptr
-  store volatile float %add3, float *%ptr
-  store volatile float %add4, float *%ptr
-  store volatile float %add5, float *%ptr
-  store volatile float %add6, float *%ptr
-  store volatile float %add7, float *%ptr
+  store volatile float %add0, ptr %ptr
+  store volatile float %add1, ptr %ptr
+  store volatile float %add2, ptr %ptr
+  store volatile float %add3, ptr %ptr
+  store volatile float %add4, ptr %ptr
+  store volatile float %add5, ptr %ptr
+  store volatile float %add6, ptr %ptr
+  store volatile float %add7, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-03.ll b/llvm/test/CodeGen/SystemZ/frame-03.ll
index ce2e0244457dd..37db5f88f23a2 100644
--- a/llvm/test/CodeGen/SystemZ/frame-03.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-03.ll
@@ -8,7 +8,7 @@
 ; We need to save and restore 8 of the 16 FPRs, so the frame size
 ; should be exactly 8 * 8 = 64.  The CFA offset is 160
 ; (the caller-allocated part of the frame) + 64.
-define void @f1(double *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r15, -64
 ; CHECK: .cfi_def_cfa_offset 224
@@ -39,22 +39,22 @@ define void @f1(double *%ptr) {
 ; CHECK: ld %f15, 0(%r15)
 ; CHECK: aghi %r15, 64
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l15 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l15 = load volatile double, ptr %ptr
   %add0 = fadd double %l0, %l0
   %add1 = fadd double %l1, %add0
   %add2 = fadd double %l2, %add1
@@ -71,28 +71,28 @@ define void @f1(double *%ptr) {
   %add13 = fadd double %l13, %add12
   %add14 = fadd double %l14, %add13
   %add15 = fadd double %l15, %add14
-  store volatile double %add0, double *%ptr
-  store volatile double %add1, double *%ptr
-  store volatile double %add2, double *%ptr
-  store volatile double %add3, double *%ptr
-  store volatile double %add4, double *%ptr
-  store volatile double %add5, double *%ptr
-  store volatile double %add6, double *%ptr
-  store volatile double %add7, double *%ptr
-  store volatile double %add8, double *%ptr
-  store volatile double %add9, double *%ptr
-  store volatile double %add10, double *%ptr
-  store volatile double %add11, double *%ptr
-  store volatile double %add12, double *%ptr
-  store volatile double %add13, double *%ptr
-  store volatile double %add14, double *%ptr
-  store volatile double %add15, double *%ptr
+  store volatile double %add0, ptr %ptr
+  store volatile double %add1, ptr %ptr
+  store volatile double %add2, ptr %ptr
+  store volatile double %add3, ptr %ptr
+  store volatile double %add4, ptr %ptr
+  store volatile double %add5, ptr %ptr
+  store volatile double %add6, ptr %ptr
+  store volatile double %add7, ptr %ptr
+  store volatile double %add8, ptr %ptr
+  store volatile double %add9, ptr %ptr
+  store volatile double %add10, ptr %ptr
+  store volatile double %add11, ptr %ptr
+  store volatile double %add12, ptr %ptr
+  store volatile double %add13, ptr %ptr
+  store volatile double %add14, ptr %ptr
+  store volatile double %add15, ptr %ptr
   ret void
 }
 
 ; Like f1, but requires one fewer FPR.  We allocate in numerical order,
 ; so %f15 is the one that gets dropped.
-define void @f2(double *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r15, -56
 ; CHECK: .cfi_def_cfa_offset 216
@@ -121,21 +121,21 @@ define void @f2(double *%ptr) {
 ; CHECK: ld %f14, 0(%r15)
 ; CHECK: aghi %r15, 56
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
   %add0 = fadd double %l0, %l0
   %add1 = fadd double %l1, %add0
   %add2 = fadd double %l2, %add1
@@ -151,26 +151,26 @@ define void @f2(double *%ptr) {
   %add12 = fadd double %l12, %add11
   %add13 = fadd double %l13, %add12
   %add14 = fadd double %l14, %add13
-  store volatile double %add0, double *%ptr
-  store volatile double %add1, double *%ptr
-  store volatile double %add2, double *%ptr
-  store volatile double %add3, double *%ptr
-  store volatile double %add4, double *%ptr
-  store volatile double %add5, double *%ptr
-  store volatile double %add6, double *%ptr
-  store volatile double %add7, double *%ptr
-  store volatile double %add8, double *%ptr
-  store volatile double %add9, double *%ptr
-  store volatile double %add10, double *%ptr
-  store volatile double %add11, double *%ptr
-  store volatile double %add12, double *%ptr
-  store volatile double %add13, double *%ptr
-  store volatile double %add14, double *%ptr
+  store volatile double %add0, ptr %ptr
+  store volatile double %add1, ptr %ptr
+  store volatile double %add2, ptr %ptr
+  store volatile double %add3, ptr %ptr
+  store volatile double %add4, ptr %ptr
+  store volatile double %add5, ptr %ptr
+  store volatile double %add6, ptr %ptr
+  store volatile double %add7, ptr %ptr
+  store volatile double %add8, ptr %ptr
+  store volatile double %add9, ptr %ptr
+  store volatile double %add10, ptr %ptr
+  store volatile double %add11, ptr %ptr
+  store volatile double %add12, ptr %ptr
+  store volatile double %add13, ptr %ptr
+  store volatile double %add14, ptr %ptr
   ret void
 }
 
 ; Like f1, but should require only one call-saved FPR.
-define void @f3(double *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r15, -8
 ; CHECK: .cfi_def_cfa_offset 168
@@ -187,15 +187,15 @@ define void @f3(double *%ptr) {
 ; CHECK: ld %f8, 0(%r15)
 ; CHECK: aghi %r15, 8
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
   %add0 = fadd double %l0, %l0
   %add1 = fadd double %l1, %add0
   %add2 = fadd double %l2, %add1
@@ -205,21 +205,21 @@ define void @f3(double *%ptr) {
   %add6 = fadd double %l6, %add5
   %add7 = fadd double %l7, %add6
   %add8 = fadd double %l8, %add7
-  store volatile double %add0, double *%ptr
-  store volatile double %add1, double *%ptr
-  store volatile double %add2, double *%ptr
-  store volatile double %add3, double *%ptr
-  store volatile double %add4, double *%ptr
-  store volatile double %add5, double *%ptr
-  store volatile double %add6, double *%ptr
-  store volatile double %add7, double *%ptr
-  store volatile double %add8, double *%ptr
+  store volatile double %add0, ptr %ptr
+  store volatile double %add1, ptr %ptr
+  store volatile double %add2, ptr %ptr
+  store volatile double %add3, ptr %ptr
+  store volatile double %add4, ptr %ptr
+  store volatile double %add5, ptr %ptr
+  store volatile double %add6, ptr %ptr
+  store volatile double %add7, ptr %ptr
+  store volatile double %add8, ptr %ptr
   ret void
 }
 
 ; This function should use all call-clobbered FPRs but no call-saved ones.
 ; It shouldn't need to create a frame.
-define void @f4(double *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK-NOT: %f8
@@ -231,14 +231,14 @@ define void @f4(double *%ptr) {
 ; CHECK-NOT: %f14
 ; CHECK-NOT: %f15
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
   %add0 = fadd double %l0, %l0
   %add1 = fadd double %l1, %add0
   %add2 = fadd double %l2, %add1
@@ -247,13 +247,13 @@ define void @f4(double *%ptr) {
   %add5 = fadd double %l5, %add4
   %add6 = fadd double %l6, %add5
   %add7 = fadd double %l7, %add6
-  store volatile double %add0, double *%ptr
-  store volatile double %add1, double *%ptr
-  store volatile double %add2, double *%ptr
-  store volatile double %add3, double *%ptr
-  store volatile double %add4, double *%ptr
-  store volatile double %add5, double *%ptr
-  store volatile double %add6, double *%ptr
-  store volatile double %add7, double *%ptr
+  store volatile double %add0, ptr %ptr
+  store volatile double %add1, ptr %ptr
+  store volatile double %add2, ptr %ptr
+  store volatile double %add3, ptr %ptr
+  store volatile double %add4, ptr %ptr
+  store volatile double %add5, ptr %ptr
+  store volatile double %add6, ptr %ptr
+  store volatile double %add7, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-04.ll b/llvm/test/CodeGen/SystemZ/frame-04.ll
index ae9c53a7ddcfa..b22007060c63a 100644
--- a/llvm/test/CodeGen/SystemZ/frame-04.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-04.ll
@@ -7,7 +7,7 @@
 ; We need to save and restore 8 of the 16 FPRs, so the frame size
 ; should be exactly 8 * 8 = 64.  The CFA offset is 160
 ; (the caller-allocated part of the frame) + 64.
-define void @f1(fp128 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r15, -64
 ; CHECK: .cfi_def_cfa_offset 224
@@ -38,14 +38,14 @@ define void @f1(fp128 *%ptr) {
 ; CHECK: ld %f15, 0(%r15)
 ; CHECK: aghi %r15, 64
 ; CHECK: br %r14
-  %l0 = load volatile fp128, fp128 *%ptr
-  %l1 = load volatile fp128, fp128 *%ptr
-  %l4 = load volatile fp128, fp128 *%ptr
-  %l5 = load volatile fp128, fp128 *%ptr
-  %l8 = load volatile fp128, fp128 *%ptr
-  %l9 = load volatile fp128, fp128 *%ptr
-  %l12 = load volatile fp128, fp128 *%ptr
-  %l13 = load volatile fp128, fp128 *%ptr
+  %l0 = load volatile fp128, ptr %ptr
+  %l1 = load volatile fp128, ptr %ptr
+  %l4 = load volatile fp128, ptr %ptr
+  %l5 = load volatile fp128, ptr %ptr
+  %l8 = load volatile fp128, ptr %ptr
+  %l9 = load volatile fp128, ptr %ptr
+  %l12 = load volatile fp128, ptr %ptr
+  %l13 = load volatile fp128, ptr %ptr
   %add0 = fadd fp128 %l0, %l0
   %add1 = fadd fp128 %l1, %add0
   %add4 = fadd fp128 %l4, %add1
@@ -54,20 +54,20 @@ define void @f1(fp128 *%ptr) {
   %add9 = fadd fp128 %l9, %add8
   %add12 = fadd fp128 %l12, %add9
   %add13 = fadd fp128 %l13, %add12
-  store volatile fp128 %add0, fp128 *%ptr
-  store volatile fp128 %add1, fp128 *%ptr
-  store volatile fp128 %add4, fp128 *%ptr
-  store volatile fp128 %add5, fp128 *%ptr
-  store volatile fp128 %add8, fp128 *%ptr
-  store volatile fp128 %add9, fp128 *%ptr
-  store volatile fp128 %add12, fp128 *%ptr
-  store volatile fp128 %add13, fp128 *%ptr
+  store volatile fp128 %add0, ptr %ptr
+  store volatile fp128 %add1, ptr %ptr
+  store volatile fp128 %add4, ptr %ptr
+  store volatile fp128 %add5, ptr %ptr
+  store volatile fp128 %add8, ptr %ptr
+  store volatile fp128 %add9, ptr %ptr
+  store volatile fp128 %add12, ptr %ptr
+  store volatile fp128 %add13, ptr %ptr
   ret void
 }
 
 ; Like f1, but requires one fewer FPR pair.  We allocate in numerical order,
 ; so %f13+%f15 is the pair that gets dropped.
-define void @f2(fp128 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r15, -48
 ; CHECK: .cfi_def_cfa_offset 208
@@ -94,13 +94,13 @@ define void @f2(fp128 *%ptr) {
 ; CHECK: ld %f14, 0(%r15)
 ; CHECK: aghi %r15, 48
 ; CHECK: br %r14
-  %l0 = load volatile fp128, fp128 *%ptr
-  %l1 = load volatile fp128, fp128 *%ptr
-  %l4 = load volatile fp128, fp128 *%ptr
-  %l5 = load volatile fp128, fp128 *%ptr
-  %l8 = load volatile fp128, fp128 *%ptr
-  %l9 = load volatile fp128, fp128 *%ptr
-  %l12 = load volatile fp128, fp128 *%ptr
+  %l0 = load volatile fp128, ptr %ptr
+  %l1 = load volatile fp128, ptr %ptr
+  %l4 = load volatile fp128, ptr %ptr
+  %l5 = load volatile fp128, ptr %ptr
+  %l8 = load volatile fp128, ptr %ptr
+  %l9 = load volatile fp128, ptr %ptr
+  %l12 = load volatile fp128, ptr %ptr
   %add0 = fadd fp128 %l0, %l0
   %add1 = fadd fp128 %l1, %add0
   %add4 = fadd fp128 %l4, %add1
@@ -108,19 +108,19 @@ define void @f2(fp128 *%ptr) {
   %add8 = fadd fp128 %l8, %add5
   %add9 = fadd fp128 %l9, %add8
   %add12 = fadd fp128 %l12, %add9
-  store volatile fp128 %add0, fp128 *%ptr
-  store volatile fp128 %add1, fp128 *%ptr
-  store volatile fp128 %add4, fp128 *%ptr
-  store volatile fp128 %add5, fp128 *%ptr
-  store volatile fp128 %add8, fp128 *%ptr
-  store volatile fp128 %add9, fp128 *%ptr
-  store volatile fp128 %add12, fp128 *%ptr
+  store volatile fp128 %add0, ptr %ptr
+  store volatile fp128 %add1, ptr %ptr
+  store volatile fp128 %add4, ptr %ptr
+  store volatile fp128 %add5, ptr %ptr
+  store volatile fp128 %add8, ptr %ptr
+  store volatile fp128 %add9, ptr %ptr
+  store volatile fp128 %add12, ptr %ptr
   ret void
 }
 
 ; Like f1, but requires only one call-saved FPR pair.  We allocate in
 ; numerical order so the pair should be %f8+%f10.
-define void @f3(fp128 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r15, -16
 ; CHECK: .cfi_def_cfa_offset 176
@@ -139,27 +139,27 @@ define void @f3(fp128 *%ptr) {
 ; CHECK: ld %f10, 0(%r15)
 ; CHECK: aghi %r15, 16
 ; CHECK: br %r14
-  %l0 = load volatile fp128, fp128 *%ptr
-  %l1 = load volatile fp128, fp128 *%ptr
-  %l4 = load volatile fp128, fp128 *%ptr
-  %l5 = load volatile fp128, fp128 *%ptr
-  %l8 = load volatile fp128, fp128 *%ptr
+  %l0 = load volatile fp128, ptr %ptr
+  %l1 = load volatile fp128, ptr %ptr
+  %l4 = load volatile fp128, ptr %ptr
+  %l5 = load volatile fp128, ptr %ptr
+  %l8 = load volatile fp128, ptr %ptr
   %add0 = fadd fp128 %l0, %l0
   %add1 = fadd fp128 %l1, %add0
   %add4 = fadd fp128 %l4, %add1
   %add5 = fadd fp128 %l5, %add4
   %add8 = fadd fp128 %l8, %add5
-  store volatile fp128 %add0, fp128 *%ptr
-  store volatile fp128 %add1, fp128 *%ptr
-  store volatile fp128 %add4, fp128 *%ptr
-  store volatile fp128 %add5, fp128 *%ptr
-  store volatile fp128 %add8, fp128 *%ptr
+  store volatile fp128 %add0, ptr %ptr
+  store volatile fp128 %add1, ptr %ptr
+  store volatile fp128 %add4, ptr %ptr
+  store volatile fp128 %add5, ptr %ptr
+  store volatile fp128 %add8, ptr %ptr
   ret void
 }
 
 ; This function should use all call-clobbered FPRs but no call-saved ones.
 ; It shouldn't need to create a frame.
-define void @f4(fp128 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK-NOT: %f8
@@ -171,17 +171,17 @@ define void @f4(fp128 *%ptr) {
 ; CHECK-NOT: %f14
 ; CHECK-NOT: %f15
 ; CHECK: br %r14
-  %l0 = load volatile fp128, fp128 *%ptr
-  %l1 = load volatile fp128, fp128 *%ptr
-  %l4 = load volatile fp128, fp128 *%ptr
-  %l5 = load volatile fp128, fp128 *%ptr
+  %l0 = load volatile fp128, ptr %ptr
+  %l1 = load volatile fp128, ptr %ptr
+  %l4 = load volatile fp128, ptr %ptr
+  %l5 = load volatile fp128, ptr %ptr
   %add0 = fadd fp128 %l0, %l0
   %add1 = fadd fp128 %l1, %add0
   %add4 = fadd fp128 %l4, %add1
   %add5 = fadd fp128 %l5, %add4
-  store volatile fp128 %add0, fp128 *%ptr
-  store volatile fp128 %add1, fp128 *%ptr
-  store volatile fp128 %add4, fp128 *%ptr
-  store volatile fp128 %add5, fp128 *%ptr
+  store volatile fp128 %add0, ptr %ptr
+  store volatile fp128 %add1, ptr %ptr
+  store volatile fp128 %add4, ptr %ptr
+  store volatile fp128 %add5, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-05.ll b/llvm/test/CodeGen/SystemZ/frame-05.ll
index 55821bb1414e1..d7e41fb258337 100644
--- a/llvm/test/CodeGen/SystemZ/frame-05.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-05.ll
@@ -13,7 +13,7 @@
 ;
 ; Use a 
diff erent address for the final store, so that we can check that
 ; %r15 isn't referenced again until after that.
-define void @f1(i32 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK-NOT: %r15
@@ -32,20 +32,20 @@ define void @f1(i32 *%ptr) {
 ; CHECK: st {{.*}}, 4(%r2)
 ; CHECK: lmg %r6, %r15, 48(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l3 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l6 = load volatile i32, i32 *%ptr
-  %l7 = load volatile i32, i32 *%ptr
-  %l8 = load volatile i32, i32 *%ptr
-  %l9 = load volatile i32, i32 *%ptr
-  %l10 = load volatile i32, i32 *%ptr
-  %l11 = load volatile i32, i32 *%ptr
-  %l12 = load volatile i32, i32 *%ptr
-  %l13 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l3 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l6 = load volatile i32, ptr %ptr
+  %l7 = load volatile i32, ptr %ptr
+  %l8 = load volatile i32, ptr %ptr
+  %l9 = load volatile i32, ptr %ptr
+  %l10 = load volatile i32, ptr %ptr
+  %l11 = load volatile i32, ptr %ptr
+  %l12 = load volatile i32, ptr %ptr
+  %l13 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add3 = add i32 %l3, %add1
@@ -60,28 +60,28 @@ define void @f1(i32 *%ptr) {
   %add12 = add i32 %l12, %add11
   %add13 = add i32 %l13, %add12
   %add14 = add i32 %l14, %add13
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add3, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add6, i32 *%ptr
-  store volatile i32 %add7, i32 *%ptr
-  store volatile i32 %add8, i32 *%ptr
-  store volatile i32 %add9, i32 *%ptr
-  store volatile i32 %add10, i32 *%ptr
-  store volatile i32 %add11, i32 *%ptr
-  store volatile i32 %add12, i32 *%ptr
-  store volatile i32 %add13, i32 *%ptr
-  %final = getelementptr i32, i32 *%ptr, i32 1
-  store volatile i32 %add14, i32 *%final
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add3, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add6, ptr %ptr
+  store volatile i32 %add7, ptr %ptr
+  store volatile i32 %add8, ptr %ptr
+  store volatile i32 %add9, ptr %ptr
+  store volatile i32 %add10, ptr %ptr
+  store volatile i32 %add11, ptr %ptr
+  store volatile i32 %add12, ptr %ptr
+  store volatile i32 %add13, ptr %ptr
+  %final = getelementptr i32, ptr %ptr, i32 1
+  store volatile i32 %add14, ptr %final
   ret void
 }
 
 ; Like f1, but requires one fewer GPR.  We allocate the call-saved GPRs
 ; from %r14 down, so that the STMG/LMG sequences aren't any longer than
 ; they need to be.
-define void @f2(i32 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: stmg %r7, %r15, 56(%r15)
 ; CHECK-NOT: %r15
@@ -100,19 +100,19 @@ define void @f2(i32 *%ptr) {
 ; CHECK: st {{.*}}, 4(%r2)
 ; CHECK: lmg %r7, %r15, 56(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l3 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l7 = load volatile i32, i32 *%ptr
-  %l8 = load volatile i32, i32 *%ptr
-  %l9 = load volatile i32, i32 *%ptr
-  %l10 = load volatile i32, i32 *%ptr
-  %l11 = load volatile i32, i32 *%ptr
-  %l12 = load volatile i32, i32 *%ptr
-  %l13 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l3 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l7 = load volatile i32, ptr %ptr
+  %l8 = load volatile i32, ptr %ptr
+  %l9 = load volatile i32, ptr %ptr
+  %l10 = load volatile i32, ptr %ptr
+  %l11 = load volatile i32, ptr %ptr
+  %l12 = load volatile i32, ptr %ptr
+  %l13 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add3 = add i32 %l3, %add1
@@ -126,25 +126,25 @@ define void @f2(i32 *%ptr) {
   %add12 = add i32 %l12, %add11
   %add13 = add i32 %l13, %add12
   %add14 = add i32 %l14, %add13
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add3, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add7, i32 *%ptr
-  store volatile i32 %add8, i32 *%ptr
-  store volatile i32 %add9, i32 *%ptr
-  store volatile i32 %add10, i32 *%ptr
-  store volatile i32 %add11, i32 *%ptr
-  store volatile i32 %add12, i32 *%ptr
-  store volatile i32 %add13, i32 *%ptr
-  %final = getelementptr i32, i32 *%ptr, i32 1
-  store volatile i32 %add14, i32 *%final
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add3, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add7, ptr %ptr
+  store volatile i32 %add8, ptr %ptr
+  store volatile i32 %add9, ptr %ptr
+  store volatile i32 %add10, ptr %ptr
+  store volatile i32 %add11, ptr %ptr
+  store volatile i32 %add12, ptr %ptr
+  store volatile i32 %add13, ptr %ptr
+  %final = getelementptr i32, ptr %ptr, i32 1
+  store volatile i32 %add14, ptr %final
   ret void
 }
 
 ; Like f1, but only needs one call-saved GPR, which ought to be %r14.
-define void @f3(i32 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK-NOT: %r15
@@ -163,31 +163,31 @@ define void @f3(i32 *%ptr) {
 ; CHECK: st {{.*}}, 4(%r2)
 ; CHECK: lmg %r14, %r15, 112(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l3 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l3 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add3 = add i32 %l3, %add1
   %add4 = add i32 %l4, %add3
   %add5 = add i32 %l5, %add4
   %add14 = add i32 %l14, %add5
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add3, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  %final = getelementptr i32, i32 *%ptr, i32 1
-  store volatile i32 %add14, i32 *%final
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add3, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  %final = getelementptr i32, ptr %ptr, i32 1
+  store volatile i32 %add14, ptr %final
   ret void
 }
 
 ; This function should use all call-clobbered GPRs but no call-saved ones.
 ; It shouldn't need to touch the stack at all.
-define void @f4(i32 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK-NOT: %r6
@@ -199,21 +199,21 @@ define void @f4(i32 *%ptr) {
 ; CHECK-NOT: %r12
 ; CHECK-NOT: %r13
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l3 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l3 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add3 = add i32 %l3, %add1
   %add4 = add i32 %l4, %add3
   %add5 = add i32 %l5, %add4
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add3, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  %final = getelementptr i32, i32 *%ptr, i32 1
-  store volatile i32 %add5, i32 *%final
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add3, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  %final = getelementptr i32, ptr %ptr, i32 1
+  store volatile i32 %add5, ptr %final
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-06.ll b/llvm/test/CodeGen/SystemZ/frame-06.ll
index 2267ed819c87f..98b06698c60b1 100644
--- a/llvm/test/CodeGen/SystemZ/frame-06.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-06.ll
@@ -10,7 +10,7 @@
 ;
 ; Use a 
diff erent address for the final store, so that we can check that
 ; %r15 isn't referenced again until after that.
-define void @f1(i64 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK-NOT: %r15
@@ -29,20 +29,20 @@ define void @f1(i64 *%ptr) {
 ; CHECK: stg {{.*}}, 8(%r2)
 ; CHECK: lmg %r6, %r15, 48(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i64, i64 *%ptr
-  %l1 = load volatile i64, i64 *%ptr
-  %l3 = load volatile i64, i64 *%ptr
-  %l4 = load volatile i64, i64 *%ptr
-  %l5 = load volatile i64, i64 *%ptr
-  %l6 = load volatile i64, i64 *%ptr
-  %l7 = load volatile i64, i64 *%ptr
-  %l8 = load volatile i64, i64 *%ptr
-  %l9 = load volatile i64, i64 *%ptr
-  %l10 = load volatile i64, i64 *%ptr
-  %l11 = load volatile i64, i64 *%ptr
-  %l12 = load volatile i64, i64 *%ptr
-  %l13 = load volatile i64, i64 *%ptr
-  %l14 = load volatile i64, i64 *%ptr
+  %l0 = load volatile i64, ptr %ptr
+  %l1 = load volatile i64, ptr %ptr
+  %l3 = load volatile i64, ptr %ptr
+  %l4 = load volatile i64, ptr %ptr
+  %l5 = load volatile i64, ptr %ptr
+  %l6 = load volatile i64, ptr %ptr
+  %l7 = load volatile i64, ptr %ptr
+  %l8 = load volatile i64, ptr %ptr
+  %l9 = load volatile i64, ptr %ptr
+  %l10 = load volatile i64, ptr %ptr
+  %l11 = load volatile i64, ptr %ptr
+  %l12 = load volatile i64, ptr %ptr
+  %l13 = load volatile i64, ptr %ptr
+  %l14 = load volatile i64, ptr %ptr
   %add0 = add i64 %l0, %l0
   %add1 = add i64 %l1, %add0
   %add3 = add i64 %l3, %add1
@@ -57,28 +57,28 @@ define void @f1(i64 *%ptr) {
   %add12 = add i64 %l12, %add11
   %add13 = add i64 %l13, %add12
   %add14 = add i64 %l14, %add13
-  store volatile i64 %add0, i64 *%ptr
-  store volatile i64 %add1, i64 *%ptr
-  store volatile i64 %add3, i64 *%ptr
-  store volatile i64 %add4, i64 *%ptr
-  store volatile i64 %add5, i64 *%ptr
-  store volatile i64 %add6, i64 *%ptr
-  store volatile i64 %add7, i64 *%ptr
-  store volatile i64 %add8, i64 *%ptr
-  store volatile i64 %add9, i64 *%ptr
-  store volatile i64 %add10, i64 *%ptr
-  store volatile i64 %add11, i64 *%ptr
-  store volatile i64 %add12, i64 *%ptr
-  store volatile i64 %add13, i64 *%ptr
-  %final = getelementptr i64, i64 *%ptr, i64 1
-  store volatile i64 %add14, i64 *%final
+  store volatile i64 %add0, ptr %ptr
+  store volatile i64 %add1, ptr %ptr
+  store volatile i64 %add3, ptr %ptr
+  store volatile i64 %add4, ptr %ptr
+  store volatile i64 %add5, ptr %ptr
+  store volatile i64 %add6, ptr %ptr
+  store volatile i64 %add7, ptr %ptr
+  store volatile i64 %add8, ptr %ptr
+  store volatile i64 %add9, ptr %ptr
+  store volatile i64 %add10, ptr %ptr
+  store volatile i64 %add11, ptr %ptr
+  store volatile i64 %add12, ptr %ptr
+  store volatile i64 %add13, ptr %ptr
+  %final = getelementptr i64, ptr %ptr, i64 1
+  store volatile i64 %add14, ptr %final
   ret void
 }
 
 ; Like f1, but requires one fewer GPR.  We allocate the call-saved GPRs
 ; from %r14 down, so that the STMG/LMG sequences aren't any longer than
 ; they need to be.
-define void @f2(i64 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: stmg %r7, %r15, 56(%r15)
 ; CHECK-NOT: %r15
@@ -97,19 +97,19 @@ define void @f2(i64 *%ptr) {
 ; CHECK: stg {{.*}}, 8(%r2)
 ; CHECK: lmg %r7, %r15, 56(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i64, i64 *%ptr
-  %l1 = load volatile i64, i64 *%ptr
-  %l3 = load volatile i64, i64 *%ptr
-  %l4 = load volatile i64, i64 *%ptr
-  %l5 = load volatile i64, i64 *%ptr
-  %l7 = load volatile i64, i64 *%ptr
-  %l8 = load volatile i64, i64 *%ptr
-  %l9 = load volatile i64, i64 *%ptr
-  %l10 = load volatile i64, i64 *%ptr
-  %l11 = load volatile i64, i64 *%ptr
-  %l12 = load volatile i64, i64 *%ptr
-  %l13 = load volatile i64, i64 *%ptr
-  %l14 = load volatile i64, i64 *%ptr
+  %l0 = load volatile i64, ptr %ptr
+  %l1 = load volatile i64, ptr %ptr
+  %l3 = load volatile i64, ptr %ptr
+  %l4 = load volatile i64, ptr %ptr
+  %l5 = load volatile i64, ptr %ptr
+  %l7 = load volatile i64, ptr %ptr
+  %l8 = load volatile i64, ptr %ptr
+  %l9 = load volatile i64, ptr %ptr
+  %l10 = load volatile i64, ptr %ptr
+  %l11 = load volatile i64, ptr %ptr
+  %l12 = load volatile i64, ptr %ptr
+  %l13 = load volatile i64, ptr %ptr
+  %l14 = load volatile i64, ptr %ptr
   %add0 = add i64 %l0, %l0
   %add1 = add i64 %l1, %add0
   %add3 = add i64 %l3, %add1
@@ -123,25 +123,25 @@ define void @f2(i64 *%ptr) {
   %add12 = add i64 %l12, %add11
   %add13 = add i64 %l13, %add12
   %add14 = add i64 %l14, %add13
-  store volatile i64 %add0, i64 *%ptr
-  store volatile i64 %add1, i64 *%ptr
-  store volatile i64 %add3, i64 *%ptr
-  store volatile i64 %add4, i64 *%ptr
-  store volatile i64 %add5, i64 *%ptr
-  store volatile i64 %add7, i64 *%ptr
-  store volatile i64 %add8, i64 *%ptr
-  store volatile i64 %add9, i64 *%ptr
-  store volatile i64 %add10, i64 *%ptr
-  store volatile i64 %add11, i64 *%ptr
-  store volatile i64 %add12, i64 *%ptr
-  store volatile i64 %add13, i64 *%ptr
-  %final = getelementptr i64, i64 *%ptr, i64 1
-  store volatile i64 %add14, i64 *%final
+  store volatile i64 %add0, ptr %ptr
+  store volatile i64 %add1, ptr %ptr
+  store volatile i64 %add3, ptr %ptr
+  store volatile i64 %add4, ptr %ptr
+  store volatile i64 %add5, ptr %ptr
+  store volatile i64 %add7, ptr %ptr
+  store volatile i64 %add8, ptr %ptr
+  store volatile i64 %add9, ptr %ptr
+  store volatile i64 %add10, ptr %ptr
+  store volatile i64 %add11, ptr %ptr
+  store volatile i64 %add12, ptr %ptr
+  store volatile i64 %add13, ptr %ptr
+  %final = getelementptr i64, ptr %ptr, i64 1
+  store volatile i64 %add14, ptr %final
   ret void
 }
 
 ; Like f1, but only needs one call-saved GPR, which ought to be %r14.
-define void @f3(i64 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK-NOT: %r15
@@ -160,31 +160,31 @@ define void @f3(i64 *%ptr) {
 ; CHECK: stg {{.*}}, 8(%r2)
 ; CHECK: lmg %r14, %r15, 112(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i64, i64 *%ptr
-  %l1 = load volatile i64, i64 *%ptr
-  %l3 = load volatile i64, i64 *%ptr
-  %l4 = load volatile i64, i64 *%ptr
-  %l5 = load volatile i64, i64 *%ptr
-  %l14 = load volatile i64, i64 *%ptr
+  %l0 = load volatile i64, ptr %ptr
+  %l1 = load volatile i64, ptr %ptr
+  %l3 = load volatile i64, ptr %ptr
+  %l4 = load volatile i64, ptr %ptr
+  %l5 = load volatile i64, ptr %ptr
+  %l14 = load volatile i64, ptr %ptr
   %add0 = add i64 %l0, %l0
   %add1 = add i64 %l1, %add0
   %add3 = add i64 %l3, %add1
   %add4 = add i64 %l4, %add3
   %add5 = add i64 %l5, %add4
   %add14 = add i64 %l14, %add5
-  store volatile i64 %add0, i64 *%ptr
-  store volatile i64 %add1, i64 *%ptr
-  store volatile i64 %add3, i64 *%ptr
-  store volatile i64 %add4, i64 *%ptr
-  store volatile i64 %add5, i64 *%ptr
-  %final = getelementptr i64, i64 *%ptr, i64 1
-  store volatile i64 %add14, i64 *%final
+  store volatile i64 %add0, ptr %ptr
+  store volatile i64 %add1, ptr %ptr
+  store volatile i64 %add3, ptr %ptr
+  store volatile i64 %add4, ptr %ptr
+  store volatile i64 %add5, ptr %ptr
+  %final = getelementptr i64, ptr %ptr, i64 1
+  store volatile i64 %add14, ptr %final
   ret void
 }
 
 ; This function should use all call-clobbered GPRs but no call-saved ones.
 ; It shouldn't need to touch the stack at all.
-define void @f4(i64 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK-NOT: %r6
@@ -196,21 +196,21 @@ define void @f4(i64 *%ptr) {
 ; CHECK-NOT: %r12
 ; CHECK-NOT: %r13
 ; CHECK: br %r14
-  %l0 = load volatile i64, i64 *%ptr
-  %l1 = load volatile i64, i64 *%ptr
-  %l3 = load volatile i64, i64 *%ptr
-  %l4 = load volatile i64, i64 *%ptr
-  %l5 = load volatile i64, i64 *%ptr
+  %l0 = load volatile i64, ptr %ptr
+  %l1 = load volatile i64, ptr %ptr
+  %l3 = load volatile i64, ptr %ptr
+  %l4 = load volatile i64, ptr %ptr
+  %l5 = load volatile i64, ptr %ptr
   %add0 = add i64 %l0, %l0
   %add1 = add i64 %l1, %add0
   %add3 = add i64 %l3, %add1
   %add4 = add i64 %l4, %add3
   %add5 = add i64 %l5, %add4
-  store volatile i64 %add0, i64 *%ptr
-  store volatile i64 %add1, i64 *%ptr
-  store volatile i64 %add3, i64 *%ptr
-  store volatile i64 %add4, i64 *%ptr
-  %final = getelementptr i64, i64 *%ptr, i64 1
-  store volatile i64 %add5, i64 *%final
+  store volatile i64 %add0, ptr %ptr
+  store volatile i64 %add1, ptr %ptr
+  store volatile i64 %add3, ptr %ptr
+  store volatile i64 %add4, ptr %ptr
+  %final = getelementptr i64, ptr %ptr, i64 1
+  store volatile i64 %add5, ptr %final
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-07.ll b/llvm/test/CodeGen/SystemZ/frame-07.ll
index c5c36a6a5de48..290d824bfd075 100644
--- a/llvm/test/CodeGen/SystemZ/frame-07.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-07.ll
@@ -8,7 +8,7 @@
 ; The frame is big enough to require two emergency spill slots at 160(%r15),
 ; as well as the 8 FPR save slots.  Get a frame of size 4128 by allocating
 ; (4128 - 176 - 8 * 8) / 8 = 486 extra doublewords.
-define void @f1(double *%ptr, i64 %x) {
+define void @f1(ptr %ptr, i64 %x) {
 ; CHECK-NOFP-LABEL: f1:
 ; CHECK-NOFP: aghi %r15, -4128
 ; CHECK-NOFP: .cfi_def_cfa_offset 4288
@@ -66,24 +66,23 @@ define void @f1(double *%ptr, i64 %x) {
 ; CHECK-FP: lmg %r11, %r15, 4216(%r11)
 ; CHECK-FP: br %r14
   %y = alloca [486 x i64], align 8
-  %elem = getelementptr inbounds [486 x i64], [486 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %elem
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l15 = load volatile double, double *%ptr
+  store volatile i64 %x, ptr %y
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l15 = load volatile double, ptr %ptr
   %add0 = fadd double %l0, %l0
   %add1 = fadd double %l1, %add0
   %add2 = fadd double %l2, %add1
@@ -100,22 +99,22 @@ define void @f1(double *%ptr, i64 %x) {
   %add13 = fadd double %l13, %add12
   %add14 = fadd double %l14, %add13
   %add15 = fadd double %l15, %add14
-  store volatile double %add0, double *%ptr
-  store volatile double %add1, double *%ptr
-  store volatile double %add2, double *%ptr
-  store volatile double %add3, double *%ptr
-  store volatile double %add4, double *%ptr
-  store volatile double %add5, double *%ptr
-  store volatile double %add6, double *%ptr
-  store volatile double %add7, double *%ptr
-  store volatile double %add8, double *%ptr
-  store volatile double %add9, double *%ptr
-  store volatile double %add10, double *%ptr
-  store volatile double %add11, double *%ptr
-  store volatile double %add12, double *%ptr
-  store volatile double %add13, double *%ptr
-  store volatile double %add14, double *%ptr
-  store volatile double %add15, double *%ptr
+  store volatile double %add0, ptr %ptr
+  store volatile double %add1, ptr %ptr
+  store volatile double %add2, ptr %ptr
+  store volatile double %add3, ptr %ptr
+  store volatile double %add4, ptr %ptr
+  store volatile double %add5, ptr %ptr
+  store volatile double %add6, ptr %ptr
+  store volatile double %add7, ptr %ptr
+  store volatile double %add8, ptr %ptr
+  store volatile double %add9, ptr %ptr
+  store volatile double %add10, ptr %ptr
+  store volatile double %add11, ptr %ptr
+  store volatile double %add12, ptr %ptr
+  store volatile double %add13, ptr %ptr
+  store volatile double %add14, ptr %ptr
+  store volatile double %add15, ptr %ptr
   ret void
 }
 
@@ -128,7 +127,7 @@ define void @f1(double *%ptr, i64 %x) {
 ;
 ; As above, get a frame of size 524320 by allocating
 ; (524320 - 176 - 8 * 8) / 8 = 65510 extra doublewords.
-define void @f2(double *%ptr, i64 %x) {
+define void @f2(ptr %ptr, i64 %x) {
 ; CHECK-NOFP-LABEL: f2:
 ; CHECK-NOFP: agfi %r15, -524320
 ; CHECK-NOFP: .cfi_def_cfa_offset 524480
@@ -195,24 +194,23 @@ define void @f2(double *%ptr, i64 %x) {
 ; CHECK-FP: lmg %r11, %r15, 524280(%r11)
 ; CHECK-FP: br %r14
   %y = alloca [65510 x i64], align 8
-  %elem = getelementptr inbounds [65510 x i64], [65510 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %elem
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l15 = load volatile double, double *%ptr
+  store volatile i64 %x, ptr %y
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l15 = load volatile double, ptr %ptr
   %add0 = fadd double %l0, %l0
   %add1 = fadd double %l1, %add0
   %add2 = fadd double %l2, %add1
@@ -229,21 +227,21 @@ define void @f2(double *%ptr, i64 %x) {
   %add13 = fadd double %l13, %add12
   %add14 = fadd double %l14, %add13
   %add15 = fadd double %l15, %add14
-  store volatile double %add0, double *%ptr
-  store volatile double %add1, double *%ptr
-  store volatile double %add2, double *%ptr
-  store volatile double %add3, double *%ptr
-  store volatile double %add4, double *%ptr
-  store volatile double %add5, double *%ptr
-  store volatile double %add6, double *%ptr
-  store volatile double %add7, double *%ptr
-  store volatile double %add8, double *%ptr
-  store volatile double %add9, double *%ptr
-  store volatile double %add10, double *%ptr
-  store volatile double %add11, double *%ptr
-  store volatile double %add12, double *%ptr
-  store volatile double %add13, double *%ptr
-  store volatile double %add14, double *%ptr
-  store volatile double %add15, double *%ptr
+  store volatile double %add0, ptr %ptr
+  store volatile double %add1, ptr %ptr
+  store volatile double %add2, ptr %ptr
+  store volatile double %add3, ptr %ptr
+  store volatile double %add4, ptr %ptr
+  store volatile double %add5, ptr %ptr
+  store volatile double %add6, ptr %ptr
+  store volatile double %add7, ptr %ptr
+  store volatile double %add8, ptr %ptr
+  store volatile double %add9, ptr %ptr
+  store volatile double %add10, ptr %ptr
+  store volatile double %add11, ptr %ptr
+  store volatile double %add12, ptr %ptr
+  store volatile double %add13, ptr %ptr
+  store volatile double %add14, ptr %ptr
+  store volatile double %add15, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-08.ll b/llvm/test/CodeGen/SystemZ/frame-08.ll
index bb9b9beab2552..0df6c9ebb1ef6 100644
--- a/llvm/test/CodeGen/SystemZ/frame-08.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-08.ll
@@ -6,7 +6,7 @@
 ; It is big enough to require two emergency spill slots at 160(%r15),
 ; so get a frame of size 524232 by allocating (524232 - 176) / 8 = 65507
 ; extra doublewords.
-define void @f1(i32 *%ptr, i64 %x) {
+define void @f1(ptr %ptr, i64 %x) {
 ; CHECK-LABEL: f1:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK: .cfi_offset %r6, -112
@@ -25,19 +25,19 @@ define void @f1(i32 *%ptr, i64 %x) {
 ; CHECK-NOT: ag
 ; CHECK: lmg %r6, %r15, 524280(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l6 = load volatile i32, i32 *%ptr
-  %l7 = load volatile i32, i32 *%ptr
-  %l8 = load volatile i32, i32 *%ptr
-  %l9 = load volatile i32, i32 *%ptr
-  %l10 = load volatile i32, i32 *%ptr
-  %l11 = load volatile i32, i32 *%ptr
-  %l12 = load volatile i32, i32 *%ptr
-  %l13 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l6 = load volatile i32, ptr %ptr
+  %l7 = load volatile i32, ptr %ptr
+  %l8 = load volatile i32, ptr %ptr
+  %l9 = load volatile i32, ptr %ptr
+  %l10 = load volatile i32, ptr %ptr
+  %l11 = load volatile i32, ptr %ptr
+  %l12 = load volatile i32, ptr %ptr
+  %l13 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add4 = add i32 %l4, %add1
@@ -51,22 +51,21 @@ define void @f1(i32 *%ptr, i64 %x) {
   %add12 = add i32 %l12, %add11
   %add13 = add i32 %l13, %add12
   %add14 = add i32 %l14, %add13
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add6, i32 *%ptr
-  store volatile i32 %add7, i32 *%ptr
-  store volatile i32 %add8, i32 *%ptr
-  store volatile i32 %add9, i32 *%ptr
-  store volatile i32 %add10, i32 *%ptr
-  store volatile i32 %add11, i32 *%ptr
-  store volatile i32 %add12, i32 *%ptr
-  store volatile i32 %add13, i32 *%ptr
-  store volatile i32 %add14, i32 *%ptr
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add6, ptr %ptr
+  store volatile i32 %add7, ptr %ptr
+  store volatile i32 %add8, ptr %ptr
+  store volatile i32 %add9, ptr %ptr
+  store volatile i32 %add10, ptr %ptr
+  store volatile i32 %add11, ptr %ptr
+  store volatile i32 %add12, ptr %ptr
+  store volatile i32 %add13, ptr %ptr
+  store volatile i32 %add14, ptr %ptr
   %y = alloca [65507 x i64], align 8
-  %entry = getelementptr inbounds [65507 x i64], [65507 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %entry
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -74,7 +73,7 @@ define void @f1(i32 *%ptr, i64 %x) {
 ; It is big enough to require two emergency spill slots at 160(%r15),
 ; so get a frame of size 524168 by allocating (524168 - 176) / 8 = 65499
 ; extra doublewords.
-define void @f2(i32 *%ptr, i64 %x) {
+define void @f2(ptr %ptr, i64 %x) {
 ; CHECK-LABEL: f2:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK: .cfi_offset %r14, -48
@@ -85,31 +84,30 @@ define void @f2(i32 *%ptr, i64 %x) {
 ; CHECK-NOT: ag
 ; CHECK: lmg %r14, %r15, 524280(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add4 = add i32 %l4, %add1
   %add5 = add i32 %l5, %add4
   %add14 = add i32 %l14, %add5
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add14, i32 *%ptr
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add14, ptr %ptr
   %y = alloca [65499 x i64], align 8
-  %entry = getelementptr inbounds [65499 x i64], [65499 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %entry
+  store volatile i64 %x, ptr %y
   ret void
 }
 
 ; Like f1 but with a frame that is 8 bytes bigger.  This is the smallest
 ; frame size that needs two instructions to perform the final LMG for
 ; %r6 and above.
-define void @f3(i32 *%ptr, i64 %x) {
+define void @f3(ptr %ptr, i64 %x) {
 ; CHECK-LABEL: f3:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK: .cfi_offset %r6, -112
@@ -128,19 +126,19 @@ define void @f3(i32 *%ptr, i64 %x) {
 ; CHECK: aghi %r15, 8
 ; CHECK: lmg %r6, %r15, 524280(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l6 = load volatile i32, i32 *%ptr
-  %l7 = load volatile i32, i32 *%ptr
-  %l8 = load volatile i32, i32 *%ptr
-  %l9 = load volatile i32, i32 *%ptr
-  %l10 = load volatile i32, i32 *%ptr
-  %l11 = load volatile i32, i32 *%ptr
-  %l12 = load volatile i32, i32 *%ptr
-  %l13 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l6 = load volatile i32, ptr %ptr
+  %l7 = load volatile i32, ptr %ptr
+  %l8 = load volatile i32, ptr %ptr
+  %l9 = load volatile i32, ptr %ptr
+  %l10 = load volatile i32, ptr %ptr
+  %l11 = load volatile i32, ptr %ptr
+  %l12 = load volatile i32, ptr %ptr
+  %l13 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add4 = add i32 %l4, %add1
@@ -154,29 +152,28 @@ define void @f3(i32 *%ptr, i64 %x) {
   %add12 = add i32 %l12, %add11
   %add13 = add i32 %l13, %add12
   %add14 = add i32 %l14, %add13
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add6, i32 *%ptr
-  store volatile i32 %add7, i32 *%ptr
-  store volatile i32 %add8, i32 *%ptr
-  store volatile i32 %add9, i32 *%ptr
-  store volatile i32 %add10, i32 *%ptr
-  store volatile i32 %add11, i32 *%ptr
-  store volatile i32 %add12, i32 *%ptr
-  store volatile i32 %add13, i32 *%ptr
-  store volatile i32 %add14, i32 *%ptr
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add6, ptr %ptr
+  store volatile i32 %add7, ptr %ptr
+  store volatile i32 %add8, ptr %ptr
+  store volatile i32 %add9, ptr %ptr
+  store volatile i32 %add10, ptr %ptr
+  store volatile i32 %add11, ptr %ptr
+  store volatile i32 %add12, ptr %ptr
+  store volatile i32 %add13, ptr %ptr
+  store volatile i32 %add14, ptr %ptr
   %y = alloca [65508 x i64], align 8
-  %entry = getelementptr inbounds [65508 x i64], [65508 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %entry
+  store volatile i64 %x, ptr %y
   ret void
 }
 
 ; Like f2 but with a frame that is 8 bytes bigger.  This is the smallest
 ; frame size that needs two instructions to perform the final LMG for
 ; %r14 and %r15.
-define void @f4(i32 *%ptr, i64 %x) {
+define void @f4(ptr %ptr, i64 %x) {
 ; CHECK-LABEL: f4:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK: .cfi_offset %r14, -48
@@ -187,30 +184,29 @@ define void @f4(i32 *%ptr, i64 %x) {
 ; CHECK: aghi %r15, 8
 ; CHECK: lmg %r14, %r15, 524280(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add4 = add i32 %l4, %add1
   %add5 = add i32 %l5, %add4
   %add14 = add i32 %l14, %add5
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add14, i32 *%ptr
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add14, ptr %ptr
   %y = alloca [65500 x i64], align 8
-  %entry = getelementptr inbounds [65500 x i64], [65500 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %entry
+  store volatile i64 %x, ptr %y
   ret void
 }
 
 ; This is the largest frame size for which the preparatory increment for
 ; "lmg %r14, %r15, ..." can be done using AGHI.
-define void @f5(i32 *%ptr, i64 %x) {
+define void @f5(ptr %ptr, i64 %x) {
 ; CHECK-LABEL: f5:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK: .cfi_offset %r14, -48
@@ -221,30 +217,29 @@ define void @f5(i32 *%ptr, i64 %x) {
 ; CHECK: aghi %r15, 32760
 ; CHECK: lmg %r14, %r15, 524280(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add4 = add i32 %l4, %add1
   %add5 = add i32 %l5, %add4
   %add14 = add i32 %l14, %add5
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add14, i32 *%ptr
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add14, ptr %ptr
   %y = alloca [69594 x i64], align 8
-  %entry = getelementptr inbounds [69594 x i64], [69594 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %entry
+  store volatile i64 %x, ptr %y
   ret void
 }
 
 ; This is the smallest frame size for which the preparatory increment for
 ; "lmg %r14, %r15, ..." needs to be done using AGFI.
-define void @f6(i32 *%ptr, i64 %x) {
+define void @f6(ptr %ptr, i64 %x) {
 ; CHECK-LABEL: f6:
 ; CHECK: stmg %r14, %r15, 112(%r15)
 ; CHECK: .cfi_offset %r14, -48
@@ -255,23 +250,22 @@ define void @f6(i32 *%ptr, i64 %x) {
 ; CHECK: agfi %r15, 32768
 ; CHECK: lmg %r14, %r15, 524280(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add4 = add i32 %l4, %add1
   %add5 = add i32 %l5, %add4
   %add14 = add i32 %l14, %add5
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add14, i32 *%ptr
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add14, ptr %ptr
   %y = alloca [69595 x i64], align 8
-  %entry = getelementptr inbounds [69595 x i64], [69595 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %entry
+  store volatile i64 %x, ptr %y
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-09.ll b/llvm/test/CodeGen/SystemZ/frame-09.ll
index 8dbd47aa9fa03..7e3baddfe623b 100644
--- a/llvm/test/CodeGen/SystemZ/frame-09.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-09.ll
@@ -34,13 +34,13 @@ define void @f2(i64 %x) {
 ; CHECK: lmg %r11, %r15, 256(%r11)
 ; CHECK: br %r14
   %y = alloca i64, align 8
-  store volatile i64 %x, i64* %y
+  store volatile i64 %x, ptr %y
   ret void
 }
 
 ; This function should require all GPRs but no other spill slots.
 ; It shouldn't need to allocate its own frame.
-define void @f3(i32 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK-NOT: %r15
@@ -64,19 +64,19 @@ define void @f3(i32 *%ptr) {
 ; CHECK: st {{.*}}, 4(%r2)
 ; CHECK: lmg %r6, %r15, 48(%r11)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l3 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l6 = load volatile i32, i32 *%ptr
-  %l7 = load volatile i32, i32 *%ptr
-  %l8 = load volatile i32, i32 *%ptr
-  %l9 = load volatile i32, i32 *%ptr
-  %l10 = load volatile i32, i32 *%ptr
-  %l12 = load volatile i32, i32 *%ptr
-  %l13 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l3 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l6 = load volatile i32, ptr %ptr
+  %l7 = load volatile i32, ptr %ptr
+  %l8 = load volatile i32, ptr %ptr
+  %l9 = load volatile i32, ptr %ptr
+  %l10 = load volatile i32, ptr %ptr
+  %l12 = load volatile i32, ptr %ptr
+  %l13 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
   %add0 = add i32 %l0, %l0
   %add1 = add i32 %l1, %add0
   %add3 = add i32 %l3, %add1
@@ -90,20 +90,20 @@ define void @f3(i32 *%ptr) {
   %add12 = add i32 %l12, %add10
   %add13 = add i32 %l13, %add12
   %add14 = add i32 %l14, %add13
-  store volatile i32 %add0, i32 *%ptr
-  store volatile i32 %add1, i32 *%ptr
-  store volatile i32 %add3, i32 *%ptr
-  store volatile i32 %add4, i32 *%ptr
-  store volatile i32 %add5, i32 *%ptr
-  store volatile i32 %add6, i32 *%ptr
-  store volatile i32 %add7, i32 *%ptr
-  store volatile i32 %add8, i32 *%ptr
-  store volatile i32 %add9, i32 *%ptr
-  store volatile i32 %add10, i32 *%ptr
-  store volatile i32 %add12, i32 *%ptr
-  store volatile i32 %add13, i32 *%ptr
-  %final = getelementptr i32, i32 *%ptr, i32 1
-  store volatile i32 %add14, i32 *%final
+  store volatile i32 %add0, ptr %ptr
+  store volatile i32 %add1, ptr %ptr
+  store volatile i32 %add3, ptr %ptr
+  store volatile i32 %add4, ptr %ptr
+  store volatile i32 %add5, ptr %ptr
+  store volatile i32 %add6, ptr %ptr
+  store volatile i32 %add7, ptr %ptr
+  store volatile i32 %add8, ptr %ptr
+  store volatile i32 %add9, ptr %ptr
+  store volatile i32 %add10, ptr %ptr
+  store volatile i32 %add12, ptr %ptr
+  store volatile i32 %add13, ptr %ptr
+  %final = getelementptr i32, ptr %ptr, i32 1
+  store volatile i32 %add14, ptr %final
   ret void
 }
 
@@ -124,8 +124,7 @@ define void @f4(i64 %x) {
 ; CHECK: lmg %r11, %r15, 524280(%r11)
 ; CHECK: br %r14
   %y = alloca [65502 x i64], align 8
-  %ptr = getelementptr inbounds [65502 x i64], [65502 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -144,8 +143,7 @@ define void @f5(i64 %x) {
 ; CHECK: lmg %r11, %r15, 524280(%r11)
 ; CHECK: br %r14
   %y = alloca [65503 x i64], align 8
-  %ptr = getelementptr inbounds [65503 x i64], [65503 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/frame-10.ll b/llvm/test/CodeGen/SystemZ/frame-10.ll
index b96973a9cb9df..9134fcc50a3e5 100644
--- a/llvm/test/CodeGen/SystemZ/frame-10.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-10.ll
@@ -2,13 +2,13 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i8 *@llvm.stacksave()
+declare ptr at llvm.stacksave()
 
-define void @f1(i8 **%dest) {
+define void @f1(ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: stg %r15, 0(%r2)
 ; CHECK: br %r14
-  %addr = call i8 *@llvm.stacksave()
-  store volatile i8 *%addr, i8 **%dest
+  %addr = call ptr at llvm.stacksave()
+  store volatile ptr %addr, ptr %dest
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-11.ll b/llvm/test/CodeGen/SystemZ/frame-11.ll
index 575a4335d5da8..0c4b2c8c473df 100644
--- a/llvm/test/CodeGen/SystemZ/frame-11.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-11.ll
@@ -2,8 +2,8 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i8 *@llvm.stacksave()
-declare void @llvm.stackrestore(i8 *)
+declare ptr at llvm.stacksave()
+declare void @llvm.stackrestore(ptr)
 
 ; we should use a frame pointer and tear down the frame based on %r11
 ; rather than %r15.
@@ -15,11 +15,11 @@ define void @f1(i32 %count1, i32 %count2) {
 ; CHECK: lgr %r15, %r{{[0-5]}}
 ; CHECK: lmg %r11, %r15, 248(%r11)
 ; CHECK: br %r14
-  %src = call i8 *@llvm.stacksave()
+  %src = call ptr at llvm.stacksave()
   %array1 = alloca i8, i32 %count1
-  store volatile i8 0, i8 *%array1
-  call void @llvm.stackrestore(i8 *%src)
+  store volatile i8 0, ptr %array1
+  call void @llvm.stackrestore(ptr %src)
   %array2 = alloca i8, i32 %count2
-  store volatile i8 0, i8 *%array2
+  store volatile i8 0, ptr %array2
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-13.ll b/llvm/test/CodeGen/SystemZ/frame-13.ll
index 1fb840bc5ba98..e5f261f1b1fcd 100644
--- a/llvm/test/CodeGen/SystemZ/frame-13.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-13.ll
@@ -34,10 +34,10 @@ define void @f1() {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x i32], align 8
   %region2 = alloca [978 x i32], align 8
-  %ptr1 = getelementptr inbounds [978 x i32], [978 x i32]* %region1, i64 0, i64 1
-  %ptr2 = getelementptr inbounds [978 x i32], [978 x i32]* %region2, i64 0, i64 1
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [978 x i32], ptr %region1, i64 0, i64 1
+  %ptr2 = getelementptr inbounds [978 x i32], ptr %region2, i64 0, i64 1
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -54,10 +54,10 @@ define void @f2() {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x i32], align 8
   %region2 = alloca [978 x i32], align 8
-  %ptr1 = getelementptr inbounds [978 x i32], [978 x i32]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [978 x i32], [978 x i32]* %region2, i64 0, i64 2
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [978 x i32], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [978 x i32], ptr %region2, i64 0, i64 2
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -74,10 +74,10 @@ define void @f3() {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x i32], align 8
   %region2 = alloca [978 x i32], align 8
-  %ptr1 = getelementptr inbounds [978 x i32], [978 x i32]* %region1, i64 0, i64 3
-  %ptr2 = getelementptr inbounds [978 x i32], [978 x i32]* %region2, i64 0, i64 3
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [978 x i32], ptr %region1, i64 0, i64 3
+  %ptr2 = getelementptr inbounds [978 x i32], ptr %region2, i64 0, i64 3
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -94,10 +94,10 @@ define void @f4() {
 ; CHECK-FP: br %r14
   %region1 = alloca [2002 x i32], align 8
   %region2 = alloca [2002 x i32], align 8
-  %ptr1 = getelementptr inbounds [2002 x i32], [2002 x i32]* %region1, i64 0, i64 1
-  %ptr2 = getelementptr inbounds [2002 x i32], [2002 x i32]* %region2, i64 0, i64 1
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [2002 x i32], ptr %region1, i64 0, i64 1
+  %ptr2 = getelementptr inbounds [2002 x i32], ptr %region2, i64 0, i64 1
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -114,10 +114,10 @@ define void @f5() {
 ; CHECK-FP: br %r14
   %region1 = alloca [2002 x i32], align 8
   %region2 = alloca [2002 x i32], align 8
-  %ptr1 = getelementptr inbounds [2002 x i32], [2002 x i32]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [2002 x i32], [2002 x i32]* %region2, i64 0, i64 2
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [2002 x i32], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [2002 x i32], ptr %region2, i64 0, i64 2
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -134,10 +134,10 @@ define void @f6() {
 ; CHECK-FP: br %r14
   %region1 = alloca [2002 x i32], align 8
   %region2 = alloca [2002 x i32], align 8
-  %ptr1 = getelementptr inbounds [2002 x i32], [2002 x i32]* %region1, i64 0, i64 3
-  %ptr2 = getelementptr inbounds [2002 x i32], [2002 x i32]* %region2, i64 0, i64 3
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [2002 x i32], ptr %region1, i64 0, i64 3
+  %ptr2 = getelementptr inbounds [2002 x i32], ptr %region2, i64 0, i64 3
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -156,10 +156,10 @@ define void @f7() {
 ; CHECK-FP: br %r14
   %region1 = alloca [2004 x i32], align 8
   %region2 = alloca [2004 x i32], align 8
-  %ptr1 = getelementptr inbounds [2004 x i32], [2004 x i32]* %region1, i64 0, i64 1023
-  %ptr2 = getelementptr inbounds [2004 x i32], [2004 x i32]* %region2, i64 0, i64 1023
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [2004 x i32], ptr %region1, i64 0, i64 1023
+  %ptr2 = getelementptr inbounds [2004 x i32], ptr %region2, i64 0, i64 1023
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -177,10 +177,10 @@ define void @f8() {
 ; CHECK-FP: br %r14
   %region1 = alloca [2006 x i32], align 8
   %region2 = alloca [2006 x i32], align 8
-  %ptr1 = getelementptr inbounds [2006 x i32], [2006 x i32]* %region1, i64 0, i64 1023
-  %ptr2 = getelementptr inbounds [2006 x i32], [2006 x i32]* %region2, i64 0, i64 1023
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [2006 x i32], ptr %region1, i64 0, i64 1023
+  %ptr2 = getelementptr inbounds [2006 x i32], ptr %region2, i64 0, i64 1023
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
@@ -198,17 +198,17 @@ define void @f9() {
 ; CHECK-FP: br %r14
   %region1 = alloca [2006 x i32], align 8
   %region2 = alloca [2006 x i32], align 8
-  %ptr1 = getelementptr inbounds [2006 x i32], [2006 x i32]* %region1, i64 0, i64 1024
-  %ptr2 = getelementptr inbounds [2006 x i32], [2006 x i32]* %region2, i64 0, i64 1024
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
+  %ptr1 = getelementptr inbounds [2006 x i32], ptr %region1, i64 0, i64 1024
+  %ptr2 = getelementptr inbounds [2006 x i32], ptr %region2, i64 0, i64 1024
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
   ret void
 }
 
 ; Repeat f2 in a case that needs the emergency spill slots (because all
 ; call-clobbered registers are live and no call-saved ones have been
 ; allocated).
-define void @f10(i32 *%vptr) {
+define void @f10(ptr %vptr) {
 ; CHECK-NOFP-LABEL: f10:
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
 ; CHECK-NOFP: lay [[REGISTER]], 4096(%r15)
@@ -222,22 +222,22 @@ define void @f10(i32 *%vptr) {
 ; CHECK-FP: mvhi 0([[REGISTER]]), 42
 ; CHECK-FP: lg [[REGISTER]], [[OFFSET]](%r11)
 ; CHECK-FP: br %r14
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i3 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i3 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
   %region1 = alloca [978 x i32], align 8
   %region2 = alloca [978 x i32], align 8
-  %ptr1 = getelementptr inbounds [978 x i32], [978 x i32]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [978 x i32], [978 x i32]* %region2, i64 0, i64 2
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i3, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
+  %ptr1 = getelementptr inbounds [978 x i32], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [978 x i32], ptr %region2, i64 0, i64 2
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i3, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
   ret void
 }
 
@@ -245,7 +245,7 @@ define void @f10(i32 *%vptr) {
 ; NOFP case needs are the emergency ones, so the offsets are the same as for f2.
 ; The FP case needs to spill an extra register and is too dependent on
 ; register allocation heuristics for a stable test.
-define void @f11(i32 *%vptr) {
+define void @f11(ptr %vptr) {
 ; CHECK-NOFP-LABEL: f11:
 ; CHECK-NOFP: stmg %r6, %r15,
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
@@ -254,39 +254,39 @@ define void @f11(i32 *%vptr) {
 ; CHECK-NOFP: lg [[REGISTER]], [[OFFSET]](%r15)
 ; CHECK-NOFP: lmg %r6, %r15,
 ; CHECK-NOFP: br %r14
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i3 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
-  %i6 = load volatile i32, i32 *%vptr
-  %i7 = load volatile i32, i32 *%vptr
-  %i8 = load volatile i32, i32 *%vptr
-  %i9 = load volatile i32, i32 *%vptr
-  %i10 = load volatile i32, i32 *%vptr
-  %i11 = load volatile i32, i32 *%vptr
-  %i12 = load volatile i32, i32 *%vptr
-  %i13 = load volatile i32, i32 *%vptr
-  %i14 = load volatile i32, i32 *%vptr
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i3 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
+  %i6 = load volatile i32, ptr %vptr
+  %i7 = load volatile i32, ptr %vptr
+  %i8 = load volatile i32, ptr %vptr
+  %i9 = load volatile i32, ptr %vptr
+  %i10 = load volatile i32, ptr %vptr
+  %i11 = load volatile i32, ptr %vptr
+  %i12 = load volatile i32, ptr %vptr
+  %i13 = load volatile i32, ptr %vptr
+  %i14 = load volatile i32, ptr %vptr
   %region1 = alloca [978 x i32], align 8
   %region2 = alloca [978 x i32], align 8
-  %ptr1 = getelementptr inbounds [978 x i32], [978 x i32]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [978 x i32], [978 x i32]* %region2, i64 0, i64 2
-  store volatile i32 42, i32 *%ptr1
-  store volatile i32 42, i32 *%ptr2
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i3, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
-  store volatile i32 %i6, i32 *%vptr
-  store volatile i32 %i7, i32 *%vptr
-  store volatile i32 %i8, i32 *%vptr
-  store volatile i32 %i9, i32 *%vptr
-  store volatile i32 %i10, i32 *%vptr
-  store volatile i32 %i11, i32 *%vptr
-  store volatile i32 %i12, i32 *%vptr
-  store volatile i32 %i13, i32 *%vptr
-  store volatile i32 %i14, i32 *%vptr
+  %ptr1 = getelementptr inbounds [978 x i32], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [978 x i32], ptr %region2, i64 0, i64 2
+  store volatile i32 42, ptr %ptr1
+  store volatile i32 42, ptr %ptr2
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i3, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
+  store volatile i32 %i6, ptr %vptr
+  store volatile i32 %i7, ptr %vptr
+  store volatile i32 %i8, ptr %vptr
+  store volatile i32 %i9, ptr %vptr
+  store volatile i32 %i10, ptr %vptr
+  store volatile i32 %i11, ptr %vptr
+  store volatile i32 %i12, ptr %vptr
+  store volatile i32 %i13, ptr %vptr
+  store volatile i32 %i14, ptr %vptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-14.ll b/llvm/test/CodeGen/SystemZ/frame-14.ll
index 193ff81123c5e..86113d56c9563 100644
--- a/llvm/test/CodeGen/SystemZ/frame-14.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-14.ll
@@ -33,10 +33,10 @@ define void @f1() {
 ; CHECK-FP: br %r14
   %region1 = alloca [3912 x i8], align 8
   %region2 = alloca [3912 x i8], align 8
-  %ptr1 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region1, i64 0, i64 7
-  %ptr2 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region2, i64 0, i64 7
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [3912 x i8], ptr %region1, i64 0, i64 7
+  %ptr2 = getelementptr inbounds [3912 x i8], ptr %region2, i64 0, i64 7
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -51,10 +51,10 @@ define void @f2() {
 ; CHECK-FP: br %r14
   %region1 = alloca [3912 x i8], align 8
   %region2 = alloca [3912 x i8], align 8
-  %ptr1 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region2, i64 0, i64 8
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [3912 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [3912 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -72,10 +72,10 @@ define void @f3() {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 7
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 7
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 7
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 7
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -96,10 +96,10 @@ define void @f4() {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 8
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -119,10 +119,10 @@ define void @f5() {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 4103
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 4103
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 4103
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 4103
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -141,10 +141,10 @@ define void @f6() {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 4104
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 4104
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 4104
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 4104
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -166,10 +166,10 @@ define void @f7() {
 ; CHECK-FP: br %r14
   %region1 = alloca [1048400 x i8], align 8
   %region2 = alloca [1048400 x i8], align 8
-  %ptr1 = getelementptr inbounds [1048400 x i8], [1048400 x i8]* %region1, i64 0, i64 524287
-  %ptr2 = getelementptr inbounds [1048400 x i8], [1048400 x i8]* %region2, i64 0, i64 524287
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [1048400 x i8], ptr %region1, i64 0, i64 524287
+  %ptr2 = getelementptr inbounds [1048400 x i8], ptr %region2, i64 0, i64 524287
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -189,10 +189,10 @@ define void @f8() {
 ; CHECK-FP: br %r14
   %region1 = alloca [1048408 x i8], align 8
   %region2 = alloca [1048408 x i8], align 8
-  %ptr1 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region1, i64 0, i64 524287
-  %ptr2 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region2, i64 0, i64 524287
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [1048408 x i8], ptr %region1, i64 0, i64 524287
+  %ptr2 = getelementptr inbounds [1048408 x i8], ptr %region2, i64 0, i64 524287
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
@@ -219,17 +219,17 @@ define void @f9() {
 ; CHECK-FP: br %r14
   %region1 = alloca [1048408 x i8], align 8
   %region2 = alloca [1048408 x i8], align 8
-  %ptr1 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region1, i64 0, i64 524288
-  %ptr2 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region2, i64 0, i64 524288
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [1048408 x i8], ptr %region1, i64 0, i64 524288
+  %ptr2 = getelementptr inbounds [1048408 x i8], ptr %region2, i64 0, i64 524288
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
   ret void
 }
 
 ; Repeat f4 in a case that needs the emergency spill slots (because all
 ; call-clobbered registers are live and no call-saved ones have been
 ; allocated).
-define void @f10(i32 *%vptr) {
+define void @f10(ptr %vptr) {
 ; CHECK-NOFP-LABEL: f10:
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
 ; CHECK-NOFP: llilh [[REGISTER]], 8
@@ -245,22 +245,22 @@ define void @f10(i32 *%vptr) {
 ; CHECK-FP: mvi 0([[REGISTER]]), 42
 ; CHECK-FP: lg [[REGISTER]], [[OFFSET]](%r11)
 ; CHECK-FP: br %r14
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i3 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i3 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 8
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i3, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i3, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
   ret void
 }
 
@@ -268,7 +268,7 @@ define void @f10(i32 *%vptr) {
 ; NOFP case needs are the emergency ones, so the offsets are the same as for f4.
 ; The FP case needs to spill an extra register and is too dependent on
 ; register allocation heuristics for a stable test.
-define void @f11(i32 *%vptr) {
+define void @f11(ptr %vptr) {
 ; CHECK-NOFP-LABEL: f11:
 ; CHECK-NOFP: stmg %r6, %r15,
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
@@ -278,39 +278,39 @@ define void @f11(i32 *%vptr) {
 ; CHECK-NOFP: lg [[REGISTER]], [[OFFSET]](%r15)
 ; CHECK-NOFP: lmg %r6, %r15,
 ; CHECK-NOFP: br %r14
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i3 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
-  %i6 = load volatile i32, i32 *%vptr
-  %i7 = load volatile i32, i32 *%vptr
-  %i8 = load volatile i32, i32 *%vptr
-  %i9 = load volatile i32, i32 *%vptr
-  %i10 = load volatile i32, i32 *%vptr
-  %i11 = load volatile i32, i32 *%vptr
-  %i12 = load volatile i32, i32 *%vptr
-  %i13 = load volatile i32, i32 *%vptr
-  %i14 = load volatile i32, i32 *%vptr
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i3 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
+  %i6 = load volatile i32, ptr %vptr
+  %i7 = load volatile i32, ptr %vptr
+  %i8 = load volatile i32, ptr %vptr
+  %i9 = load volatile i32, ptr %vptr
+  %i10 = load volatile i32, ptr %vptr
+  %i11 = load volatile i32, ptr %vptr
+  %i12 = load volatile i32, ptr %vptr
+  %i13 = load volatile i32, ptr %vptr
+  %i14 = load volatile i32, ptr %vptr
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 8
-  store volatile i8 42, i8 *%ptr1
-  store volatile i8 42, i8 *%ptr2
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i3, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
-  store volatile i32 %i6, i32 *%vptr
-  store volatile i32 %i7, i32 *%vptr
-  store volatile i32 %i8, i32 *%vptr
-  store volatile i32 %i9, i32 *%vptr
-  store volatile i32 %i10, i32 *%vptr
-  store volatile i32 %i11, i32 *%vptr
-  store volatile i32 %i12, i32 *%vptr
-  store volatile i32 %i13, i32 *%vptr
-  store volatile i32 %i14, i32 *%vptr
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 42, ptr %ptr1
+  store volatile i8 42, ptr %ptr2
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i3, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
+  store volatile i32 %i6, ptr %vptr
+  store volatile i32 %i7, ptr %vptr
+  store volatile i32 %i8, ptr %vptr
+  store volatile i32 %i9, ptr %vptr
+  store volatile i32 %i10, ptr %vptr
+  store volatile i32 %i11, ptr %vptr
+  store volatile i32 %i12, ptr %vptr
+  store volatile i32 %i13, ptr %vptr
+  store volatile i32 %i14, ptr %vptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-15.ll b/llvm/test/CodeGen/SystemZ/frame-15.ll
index 0595b5403b05c..5b51a0efa7142 100644
--- a/llvm/test/CodeGen/SystemZ/frame-15.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-15.ll
@@ -7,7 +7,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 -frame-pointer=all | \
 ; RUN:   FileCheck -check-prefix=CHECK-FP %s
 
-declare void @foo(float *%ptr1, float *%ptr2)
+declare void @foo(ptr %ptr1, ptr %ptr2)
 
 ; This file tests what happens when a displacement is converted from
 ; being relative to the start of a frame object to being relative to
@@ -26,7 +26,7 @@ declare void @foo(float *%ptr1, float *%ptr2)
 ; emergency spill slots at 160(%r15), the amount that we need to allocate
 ; in order to put another object at offset 4088 is (4088 - 176) / 4 = 978
 ; words.
-define void @f1(double *%dst) {
+define void @f1(ptr %dst) {
 ; CHECK-NOFP-LABEL: f1:
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 4092(%r15)
 ; CHECK-NOFP: br %r14
@@ -36,22 +36,20 @@ define void @f1(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x float], align 8
   %region2 = alloca [978 x float], align 8
-  %start1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 1
-  %ptr2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 1
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [978 x float], ptr %region1, i64 0, i64 1
+  %ptr2 = getelementptr inbounds [978 x float], ptr %region2, i64 0, i64 1
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; Test the first out-of-range offset.
-define void @f2(double *%dst) {
+define void @f2(ptr %dst) {
 ; CHECK-NOFP-LABEL: f2:
 ; CHECK-NOFP: lghi %r1, 4096
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 0(%r1,%r15)
@@ -63,22 +61,20 @@ define void @f2(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x float], align 8
   %region2 = alloca [978 x float], align 8
-  %start1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 2
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [978 x float], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [978 x float], ptr %region2, i64 0, i64 2
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; Test the next offset after that.
-define void @f3(double *%dst) {
+define void @f3(ptr %dst) {
 ; CHECK-NOFP-LABEL: f3:
 ; CHECK-NOFP: lghi %r1, 4096
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 4(%r1,%r15)
@@ -90,22 +86,20 @@ define void @f3(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x float], align 8
   %region2 = alloca [978 x float], align 8
-  %start1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 3
-  %ptr2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 3
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [978 x float], ptr %region1, i64 0, i64 3
+  %ptr2 = getelementptr inbounds [978 x float], ptr %region2, i64 0, i64 3
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; Add 4096 bytes (1024 words) to the size of each object and repeat.
-define void @f4(double *%dst) {
+define void @f4(ptr %dst) {
 ; CHECK-NOFP-LABEL: f4:
 ; CHECK-NOFP: lghi %r1, 4096
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 4092(%r1,%r15)
@@ -117,22 +111,20 @@ define void @f4(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [2002 x float], align 8
   %region2 = alloca [2002 x float], align 8
-  %start1 = getelementptr inbounds [2002 x float], [2002 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [2002 x float], [2002 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [2002 x float], [2002 x float]* %region1, i64 0, i64 1
-  %ptr2 = getelementptr inbounds [2002 x float], [2002 x float]* %region2, i64 0, i64 1
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [2002 x float], ptr %region1, i64 0, i64 1
+  %ptr2 = getelementptr inbounds [2002 x float], ptr %region2, i64 0, i64 1
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; ...as above.
-define void @f5(double *%dst) {
+define void @f5(ptr %dst) {
 ; CHECK-NOFP-LABEL: f5:
 ; CHECK-NOFP: lghi %r1, 8192
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 0(%r1,%r15)
@@ -144,22 +136,20 @@ define void @f5(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [2002 x float], align 8
   %region2 = alloca [2002 x float], align 8
-  %start1 = getelementptr inbounds [2002 x float], [2002 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [2002 x float], [2002 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [2002 x float], [2002 x float]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [2002 x float], [2002 x float]* %region2, i64 0, i64 2
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [2002 x float], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [2002 x float], ptr %region2, i64 0, i64 2
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; ...as above.
-define void @f6(double *%dst) {
+define void @f6(ptr %dst) {
 ; CHECK-NOFP-LABEL: f6:
 ; CHECK-NOFP: lghi %r1, 8192
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 4(%r1,%r15)
@@ -171,24 +161,22 @@ define void @f6(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [2002 x float], align 8
   %region2 = alloca [2002 x float], align 8
-  %start1 = getelementptr inbounds [2002 x float], [2002 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [2002 x float], [2002 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [2002 x float], [2002 x float]* %region1, i64 0, i64 3
-  %ptr2 = getelementptr inbounds [2002 x float], [2002 x float]* %region2, i64 0, i64 3
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [2002 x float], ptr %region1, i64 0, i64 3
+  %ptr2 = getelementptr inbounds [2002 x float], ptr %region2, i64 0, i64 3
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; Now try an offset of 4092 from the start of the object, with the object
 ; being at offset 8192.  This time we need objects of (8192 - 168) / 4 = 2004
 ; words.
-define void @f7(double *%dst) {
+define void @f7(ptr %dst) {
 ; CHECK-NOFP-LABEL: f7:
 ; CHECK-NOFP: lghi %r1, 8192
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 4092(%r1,%r15)
@@ -200,23 +188,21 @@ define void @f7(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [2004 x float], align 8
   %region2 = alloca [2004 x float], align 8
-  %start1 = getelementptr inbounds [2004 x float], [2004 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [2004 x float], [2004 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [2004 x float], [2004 x float]* %region1, i64 0, i64 1023
-  %ptr2 = getelementptr inbounds [2004 x float], [2004 x float]* %region2, i64 0, i64 1023
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [2004 x float], ptr %region1, i64 0, i64 1023
+  %ptr2 = getelementptr inbounds [2004 x float], ptr %region2, i64 0, i64 1023
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; Keep the object-relative offset the same but bump the size of the
 ; objects by one doubleword.
-define void @f8(double *%dst) {
+define void @f8(ptr %dst) {
 ; CHECK-NOFP-LABEL: f8:
 ; CHECK-NOFP: lghi %r1, 12288
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 4(%r1,%r15)
@@ -228,24 +214,22 @@ define void @f8(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [2006 x float], align 8
   %region2 = alloca [2006 x float], align 8
-  %start1 = getelementptr inbounds [2006 x float], [2006 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [2006 x float], [2006 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [2006 x float], [2006 x float]* %region1, i64 0, i64 1023
-  %ptr2 = getelementptr inbounds [2006 x float], [2006 x float]* %region2, i64 0, i64 1023
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [2006 x float], ptr %region1, i64 0, i64 1023
+  %ptr2 = getelementptr inbounds [2006 x float], ptr %region2, i64 0, i64 1023
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
 ; Check a case where the original displacement is out of range.  The backend
 ; should force an LAY from the outset.  We don't yet do any kind of anchor
 ; optimization, so there should be no offset on the LDEB itself.
-define void @f9(double *%dst) {
+define void @f9(ptr %dst) {
 ; CHECK-NOFP-LABEL: f9:
 ; CHECK-NOFP: lay %r1, 12296(%r15)
 ; CHECK-NOFP: ldeb {{%f[0-7]}}, 0(%r1)
@@ -257,17 +241,15 @@ define void @f9(double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [2006 x float], align 8
   %region2 = alloca [2006 x float], align 8
-  %start1 = getelementptr inbounds [2006 x float], [2006 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [2006 x float], [2006 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [2006 x float], [2006 x float]* %region1, i64 0, i64 1024
-  %ptr2 = getelementptr inbounds [2006 x float], [2006 x float]* %region2, i64 0, i64 1024
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [2006 x float], ptr %region1, i64 0, i64 1024
+  %ptr2 = getelementptr inbounds [2006 x float], ptr %region2, i64 0, i64 1024
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }
 
@@ -275,7 +257,7 @@ define void @f9(double *%dst) {
 ; call-clobbered and allocated call-saved registers are live.  Note that
 ; %vptr and %dst are copied to call-saved registers, freeing up %r2 and
 ; %r3 during the main test.
-define void @f10(i32 *%vptr, double *%dst) {
+define void @f10(ptr %vptr, ptr %dst) {
 ; CHECK-NOFP-LABEL: f10:
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
 ; CHECK-NOFP: lghi [[REGISTER]], 4096
@@ -291,36 +273,34 @@ define void @f10(i32 *%vptr, double *%dst) {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x float], align 8
   %region2 = alloca [978 x float], align 8
-  %start1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %ptr1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 2
-  %ptr2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 2
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i2 = load volatile i32, i32 *%vptr
-  %i3 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
-  %i14 = load volatile i32, i32 *%vptr
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  call void @foo(ptr %region1, ptr %region2)
+  %ptr1 = getelementptr inbounds [978 x float], ptr %region1, i64 0, i64 2
+  %ptr2 = getelementptr inbounds [978 x float], ptr %region2, i64 0, i64 2
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i2 = load volatile i32, ptr %vptr
+  %i3 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
+  %i14 = load volatile i32, ptr %vptr
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i2, i32 *%vptr
-  store volatile i32 %i3, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
-  store volatile i32 %i14, i32 *%vptr
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i2, ptr %vptr
+  store volatile i32 %i3, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
+  store volatile i32 %i14, ptr %vptr
   ret void
 }
 
 ; Repeat f2 in a case where the index register is already occupied.
-define void @f11(double *%dst, i64 %index) {
+define void @f11(ptr %dst, i64 %index) {
 ; CHECK-NOFP-LABEL: f11:
 ; CHECK-NOFP: lgr [[REGISTER:%r[1-9][0-5]?]], %r3
 ; CHECK-NOFP: lay %r1, 4096(%r15)
@@ -334,22 +314,20 @@ define void @f11(double *%dst, i64 %index) {
 ; CHECK-FP: br %r14
   %region1 = alloca [978 x float], align 8
   %region2 = alloca [978 x float], align 8
-  %start1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 0
-  %start2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 0
-  call void @foo(float *%start1, float *%start2)
-  %elem1 = getelementptr inbounds [978 x float], [978 x float]* %region1, i64 0, i64 2
-  %elem2 = getelementptr inbounds [978 x float], [978 x float]* %region2, i64 0, i64 2
-  %base1 = ptrtoint float *%elem1 to i64
-  %base2 = ptrtoint float *%elem2 to i64
+  call void @foo(ptr %region1, ptr %region2)
+  %elem1 = getelementptr inbounds [978 x float], ptr %region1, i64 0, i64 2
+  %elem2 = getelementptr inbounds [978 x float], ptr %region2, i64 0, i64 2
+  %base1 = ptrtoint ptr %elem1 to i64
+  %base2 = ptrtoint ptr %elem2 to i64
   %addr1 = add i64 %base1, %index
   %addr2 = add i64 %base2, %index
-  %ptr1 = inttoptr i64 %addr1 to float *
-  %ptr2 = inttoptr i64 %addr2 to float *
-  %float1 = load float, float *%ptr1
-  %float2 = load float, float *%ptr2
+  %ptr1 = inttoptr i64 %addr1 to ptr
+  %ptr2 = inttoptr i64 %addr2 to ptr
+  %float1 = load float, ptr %ptr1
+  %float2 = load float, ptr %ptr2
   %double1 = fpext float %float1 to double
   %double2 = fpext float %float2 to double
-  store volatile double %double1, double *%dst
-  store volatile double %double2, double *%dst
+  store volatile double %double1, ptr %dst
+  store volatile double %double2, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-16.ll b/llvm/test/CodeGen/SystemZ/frame-16.ll
index a95c58207afb6..989f10e50869a 100644
--- a/llvm/test/CodeGen/SystemZ/frame-16.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-16.ll
@@ -33,10 +33,10 @@ define void @f1(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [3912 x i8], align 8
   %region2 = alloca [3912 x i8], align 8
-  %ptr1 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region1, i64 0, i64 7
-  %ptr2 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region2, i64 0, i64 7
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [3912 x i8], ptr %region1, i64 0, i64 7
+  %ptr2 = getelementptr inbounds [3912 x i8], ptr %region2, i64 0, i64 7
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -51,10 +51,10 @@ define void @f2(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [3912 x i8], align 8
   %region2 = alloca [3912 x i8], align 8
-  %ptr1 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [3912 x i8], [3912 x i8]* %region2, i64 0, i64 8
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [3912 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [3912 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -72,10 +72,10 @@ define void @f3(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 7
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 7
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 7
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 7
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -94,10 +94,10 @@ define void @f4(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 8
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -115,10 +115,10 @@ define void @f5(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 4103
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 4103
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 4103
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 4103
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -135,10 +135,10 @@ define void @f6(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 4104
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 4104
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 4104
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 4104
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -158,10 +158,10 @@ define void @f7(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [1048400 x i8], align 8
   %region2 = alloca [1048400 x i8], align 8
-  %ptr1 = getelementptr inbounds [1048400 x i8], [1048400 x i8]* %region1, i64 0, i64 524287
-  %ptr2 = getelementptr inbounds [1048400 x i8], [1048400 x i8]* %region2, i64 0, i64 524287
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [1048400 x i8], ptr %region1, i64 0, i64 524287
+  %ptr2 = getelementptr inbounds [1048400 x i8], ptr %region2, i64 0, i64 524287
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -179,10 +179,10 @@ define void @f8(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [1048408 x i8], align 8
   %region2 = alloca [1048408 x i8], align 8
-  %ptr1 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region1, i64 0, i64 524287
-  %ptr2 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region2, i64 0, i64 524287
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [1048408 x i8], ptr %region1, i64 0, i64 524287
+  %ptr2 = getelementptr inbounds [1048408 x i8], ptr %region2, i64 0, i64 524287
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
@@ -209,17 +209,17 @@ define void @f9(i8 %byte) {
 ; CHECK-FP: br %r14
   %region1 = alloca [1048408 x i8], align 8
   %region2 = alloca [1048408 x i8], align 8
-  %ptr1 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region1, i64 0, i64 524288
-  %ptr2 = getelementptr inbounds [1048408 x i8], [1048408 x i8]* %region2, i64 0, i64 524288
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [1048408 x i8], ptr %region1, i64 0, i64 524288
+  %ptr2 = getelementptr inbounds [1048408 x i8], ptr %region2, i64 0, i64 524288
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }
 
 ; Repeat f4 in a case that needs the emergency spill slots (because all
 ; call-clobbered registers are live and no call-saved ones have been
 ; allocated).
-define void @f10(i32 *%vptr, i8 %byte) {
+define void @f10(ptr %vptr, i8 %byte) {
 ; CHECK-NOFP-LABEL: f10:
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
 ; CHECK-NOFP: llilh [[REGISTER]], 8
@@ -233,20 +233,20 @@ define void @f10(i32 *%vptr, i8 %byte) {
 ; CHECK-FP: stc %r3, 0([[REGISTER]],%r11)
 ; CHECK-FP: lg [[REGISTER]], [[OFFSET]](%r11)
 ; CHECK-FP: br %r14
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 8
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
   ret void
 }
 
@@ -254,7 +254,7 @@ define void @f10(i32 *%vptr, i8 %byte) {
 ; NOFP case needs are the emergency ones, so the offsets are the same as for f4.
 ; However, the FP case uses %r11 as the frame pointer and must therefore
 ; spill a second register.  This leads to an extra displacement of 8.
-define void @f11(i32 *%vptr, i8 %byte) {
+define void @f11(ptr %vptr, i8 %byte) {
 ; CHECK-NOFP-LABEL: f11:
 ; CHECK-NOFP: stmg %r6, %r15,
 ; CHECK-NOFP: stg [[REGISTER:%r[1-9][0-4]?]], [[OFFSET:160|168]](%r15)
@@ -272,38 +272,38 @@ define void @f11(i32 *%vptr, i8 %byte) {
 ; CHECK-FP: lg [[REGISTER]], [[OFFSET]](%r11)
 ; CHECK-FP: lmg %r6, %r15,
 ; CHECK-FP: br %r14
-  %i0 = load volatile i32, i32 *%vptr
-  %i1 = load volatile i32, i32 *%vptr
-  %i4 = load volatile i32, i32 *%vptr
-  %i5 = load volatile i32, i32 *%vptr
-  %i6 = load volatile i32, i32 *%vptr
-  %i7 = load volatile i32, i32 *%vptr
-  %i8 = load volatile i32, i32 *%vptr
-  %i9 = load volatile i32, i32 *%vptr
-  %i10 = load volatile i32, i32 *%vptr
-  %i11 = load volatile i32, i32 *%vptr
-  %i12 = load volatile i32, i32 *%vptr
-  %i13 = load volatile i32, i32 *%vptr
-  %i14 = load volatile i32, i32 *%vptr
+  %i0 = load volatile i32, ptr %vptr
+  %i1 = load volatile i32, ptr %vptr
+  %i4 = load volatile i32, ptr %vptr
+  %i5 = load volatile i32, ptr %vptr
+  %i6 = load volatile i32, ptr %vptr
+  %i7 = load volatile i32, ptr %vptr
+  %i8 = load volatile i32, ptr %vptr
+  %i9 = load volatile i32, ptr %vptr
+  %i10 = load volatile i32, ptr %vptr
+  %i11 = load volatile i32, ptr %vptr
+  %i12 = load volatile i32, ptr %vptr
+  %i13 = load volatile i32, ptr %vptr
+  %i14 = load volatile i32, ptr %vptr
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 8
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 8
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
-  store volatile i32 %i0, i32 *%vptr
-  store volatile i32 %i1, i32 *%vptr
-  store volatile i32 %i4, i32 *%vptr
-  store volatile i32 %i5, i32 *%vptr
-  store volatile i32 %i6, i32 *%vptr
-  store volatile i32 %i7, i32 *%vptr
-  store volatile i32 %i8, i32 *%vptr
-  store volatile i32 %i9, i32 *%vptr
-  store volatile i32 %i10, i32 *%vptr
-  store volatile i32 %i11, i32 *%vptr
-  store volatile i32 %i12, i32 *%vptr
-  store volatile i32 %i13, i32 *%vptr
-  store volatile i32 %i14, i32 *%vptr
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 8
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 8
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
+  store volatile i32 %i0, ptr %vptr
+  store volatile i32 %i1, ptr %vptr
+  store volatile i32 %i4, ptr %vptr
+  store volatile i32 %i5, ptr %vptr
+  store volatile i32 %i6, ptr %vptr
+  store volatile i32 %i7, ptr %vptr
+  store volatile i32 %i8, ptr %vptr
+  store volatile i32 %i9, ptr %vptr
+  store volatile i32 %i10, ptr %vptr
+  store volatile i32 %i11, ptr %vptr
+  store volatile i32 %i12, ptr %vptr
+  store volatile i32 %i13, ptr %vptr
+  store volatile i32 %i14, ptr %vptr
   ret void
 }
 
@@ -323,9 +323,9 @@ define void @f12(i8 %byte, i64 %index) {
   %region1 = alloca [524104 x i8], align 8
   %region2 = alloca [524104 x i8], align 8
   %index1 = add i64 %index, 8
-  %ptr1 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region1, i64 0, i64 %index1
-  %ptr2 = getelementptr inbounds [524104 x i8], [524104 x i8]* %region2, i64 0, i64 %index1
-  store volatile i8 %byte, i8 *%ptr1
-  store volatile i8 %byte, i8 *%ptr2
+  %ptr1 = getelementptr inbounds [524104 x i8], ptr %region1, i64 0, i64 %index1
+  %ptr2 = getelementptr inbounds [524104 x i8], ptr %region2, i64 0, i64 %index1
+  store volatile i8 %byte, ptr %ptr1
+  store volatile i8 %byte, ptr %ptr2
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-17.ll b/llvm/test/CodeGen/SystemZ/frame-17.ll
index 50250afae3795..b7e03d1d7c34c 100644
--- a/llvm/test/CodeGen/SystemZ/frame-17.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-17.ll
@@ -5,7 +5,7 @@
 ; We need to save and restore 8 of the 16 FPRs and allocate an additional
 ; 4-byte spill slot, rounded to 8 bytes.  The frame size should be exactly
 ; 160 + 8 * 8 = 232.
-define void @f1(float *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r15, -232
 ; CHECK: std %f8, 224(%r15)
@@ -31,45 +31,45 @@ define void @f1(float *%ptr) {
 ; CHECK: ld %f15, 168(%r15)
 ; CHECK: aghi %r15, 232
 ; CHECK: br %r14
-  %l0 = load volatile float, float *%ptr
-  %l1 = load volatile float, float *%ptr
-  %l2 = load volatile float, float *%ptr
-  %l3 = load volatile float, float *%ptr
-  %l4 = load volatile float, float *%ptr
-  %l5 = load volatile float, float *%ptr
-  %l6 = load volatile float, float *%ptr
-  %l7 = load volatile float, float *%ptr
-  %l8 = load volatile float, float *%ptr
-  %l9 = load volatile float, float *%ptr
-  %l10 = load volatile float, float *%ptr
-  %l11 = load volatile float, float *%ptr
-  %l12 = load volatile float, float *%ptr
-  %l13 = load volatile float, float *%ptr
-  %l14 = load volatile float, float *%ptr
-  %l15 = load volatile float, float *%ptr
-  %lx = load volatile float, float *%ptr
-  store volatile float %lx, float *%ptr
-  store volatile float %l15, float *%ptr
-  store volatile float %l14, float *%ptr
-  store volatile float %l13, float *%ptr
-  store volatile float %l12, float *%ptr
-  store volatile float %l11, float *%ptr
-  store volatile float %l10, float *%ptr
-  store volatile float %l9, float *%ptr
-  store volatile float %l8, float *%ptr
-  store volatile float %l7, float *%ptr
-  store volatile float %l6, float *%ptr
-  store volatile float %l5, float *%ptr
-  store volatile float %l4, float *%ptr
-  store volatile float %l3, float *%ptr
-  store volatile float %l2, float *%ptr
-  store volatile float %l1, float *%ptr
-  store volatile float %l0, float *%ptr
+  %l0 = load volatile float, ptr %ptr
+  %l1 = load volatile float, ptr %ptr
+  %l2 = load volatile float, ptr %ptr
+  %l3 = load volatile float, ptr %ptr
+  %l4 = load volatile float, ptr %ptr
+  %l5 = load volatile float, ptr %ptr
+  %l6 = load volatile float, ptr %ptr
+  %l7 = load volatile float, ptr %ptr
+  %l8 = load volatile float, ptr %ptr
+  %l9 = load volatile float, ptr %ptr
+  %l10 = load volatile float, ptr %ptr
+  %l11 = load volatile float, ptr %ptr
+  %l12 = load volatile float, ptr %ptr
+  %l13 = load volatile float, ptr %ptr
+  %l14 = load volatile float, ptr %ptr
+  %l15 = load volatile float, ptr %ptr
+  %lx = load volatile float, ptr %ptr
+  store volatile float %lx, ptr %ptr
+  store volatile float %l15, ptr %ptr
+  store volatile float %l14, ptr %ptr
+  store volatile float %l13, ptr %ptr
+  store volatile float %l12, ptr %ptr
+  store volatile float %l11, ptr %ptr
+  store volatile float %l10, ptr %ptr
+  store volatile float %l9, ptr %ptr
+  store volatile float %l8, ptr %ptr
+  store volatile float %l7, ptr %ptr
+  store volatile float %l6, ptr %ptr
+  store volatile float %l5, ptr %ptr
+  store volatile float %l4, ptr %ptr
+  store volatile float %l3, ptr %ptr
+  store volatile float %l2, ptr %ptr
+  store volatile float %l1, ptr %ptr
+  store volatile float %l0, ptr %ptr
   ret void
 }
 
 ; Same for doubles, except that the full spill slot is used.
-define void @f2(double *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r15, -232
 ; CHECK: std %f8, 224(%r15)
@@ -92,45 +92,45 @@ define void @f2(double *%ptr) {
 ; CHECK: ld %f15, 168(%r15)
 ; CHECK: aghi %r15, 232
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l15 = load volatile double, double *%ptr
-  %lx = load volatile double, double *%ptr
-  store volatile double %lx, double *%ptr
-  store volatile double %l15, double *%ptr
-  store volatile double %l14, double *%ptr
-  store volatile double %l13, double *%ptr
-  store volatile double %l12, double *%ptr
-  store volatile double %l11, double *%ptr
-  store volatile double %l10, double *%ptr
-  store volatile double %l9, double *%ptr
-  store volatile double %l8, double *%ptr
-  store volatile double %l7, double *%ptr
-  store volatile double %l6, double *%ptr
-  store volatile double %l5, double *%ptr
-  store volatile double %l4, double *%ptr
-  store volatile double %l3, double *%ptr
-  store volatile double %l2, double *%ptr
-  store volatile double %l1, double *%ptr
-  store volatile double %l0, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l15 = load volatile double, ptr %ptr
+  %lx = load volatile double, ptr %ptr
+  store volatile double %lx, ptr %ptr
+  store volatile double %l15, ptr %ptr
+  store volatile double %l14, ptr %ptr
+  store volatile double %l13, ptr %ptr
+  store volatile double %l12, ptr %ptr
+  store volatile double %l11, ptr %ptr
+  store volatile double %l10, ptr %ptr
+  store volatile double %l9, ptr %ptr
+  store volatile double %l8, ptr %ptr
+  store volatile double %l7, ptr %ptr
+  store volatile double %l6, ptr %ptr
+  store volatile double %l5, ptr %ptr
+  store volatile double %l4, ptr %ptr
+  store volatile double %l3, ptr %ptr
+  store volatile double %l2, ptr %ptr
+  store volatile double %l1, ptr %ptr
+  store volatile double %l0, ptr %ptr
   ret void
 }
 
 ; The long double case needs a 16-byte spill slot.
-define void @f3(fp128 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r15, -240
 ; CHECK: std %f8, 232(%r15)
@@ -155,23 +155,23 @@ define void @f3(fp128 *%ptr) {
 ; CHECK: ld %f15, 176(%r15)
 ; CHECK: aghi %r15, 240
 ; CHECK: br %r14
-  %l0 = load volatile fp128, fp128 *%ptr
-  %l1 = load volatile fp128, fp128 *%ptr
-  %l4 = load volatile fp128, fp128 *%ptr
-  %l5 = load volatile fp128, fp128 *%ptr
-  %l8 = load volatile fp128, fp128 *%ptr
-  %l9 = load volatile fp128, fp128 *%ptr
-  %l12 = load volatile fp128, fp128 *%ptr
-  %l13 = load volatile fp128, fp128 *%ptr
-  %lx = load volatile fp128, fp128 *%ptr
-  store volatile fp128 %lx, fp128 *%ptr
-  store volatile fp128 %l13, fp128 *%ptr
-  store volatile fp128 %l12, fp128 *%ptr
-  store volatile fp128 %l9, fp128 *%ptr
-  store volatile fp128 %l8, fp128 *%ptr
-  store volatile fp128 %l5, fp128 *%ptr
-  store volatile fp128 %l4, fp128 *%ptr
-  store volatile fp128 %l1, fp128 *%ptr
-  store volatile fp128 %l0, fp128 *%ptr
+  %l0 = load volatile fp128, ptr %ptr
+  %l1 = load volatile fp128, ptr %ptr
+  %l4 = load volatile fp128, ptr %ptr
+  %l5 = load volatile fp128, ptr %ptr
+  %l8 = load volatile fp128, ptr %ptr
+  %l9 = load volatile fp128, ptr %ptr
+  %l12 = load volatile fp128, ptr %ptr
+  %l13 = load volatile fp128, ptr %ptr
+  %lx = load volatile fp128, ptr %ptr
+  store volatile fp128 %lx, ptr %ptr
+  store volatile fp128 %l13, ptr %ptr
+  store volatile fp128 %l12, ptr %ptr
+  store volatile fp128 %l9, ptr %ptr
+  store volatile fp128 %l8, ptr %ptr
+  store volatile fp128 %l5, ptr %ptr
+  store volatile fp128 %l4, ptr %ptr
+  store volatile fp128 %l1, ptr %ptr
+  store volatile fp128 %l0, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-18.ll b/llvm/test/CodeGen/SystemZ/frame-18.ll
index 6335fc576f94d..405886dd88ddc 100644
--- a/llvm/test/CodeGen/SystemZ/frame-18.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-18.ll
@@ -5,7 +5,7 @@
 
 ; We need to allocate a 4-byte spill slot, rounded to 8 bytes.  The frame
 ; size should be exactly 160 + 8 = 168.
-define void @f1(i32 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK: aghi %r15, -168
@@ -16,41 +16,41 @@ define void @f1(i32 *%ptr) {
 ; CHECK-NOT: 160(%r15)
 ; CHECK: lmg %r6, %r15, 216(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i32, i32 *%ptr
-  %l1 = load volatile i32, i32 *%ptr
-  %l3 = load volatile i32, i32 *%ptr
-  %l4 = load volatile i32, i32 *%ptr
-  %l5 = load volatile i32, i32 *%ptr
-  %l6 = load volatile i32, i32 *%ptr
-  %l7 = load volatile i32, i32 *%ptr
-  %l8 = load volatile i32, i32 *%ptr
-  %l9 = load volatile i32, i32 *%ptr
-  %l10 = load volatile i32, i32 *%ptr
-  %l11 = load volatile i32, i32 *%ptr
-  %l12 = load volatile i32, i32 *%ptr
-  %l13 = load volatile i32, i32 *%ptr
-  %l14 = load volatile i32, i32 *%ptr
-  %lx = load volatile i32, i32 *%ptr
-  store volatile i32 %lx, i32 *%ptr
-  store volatile i32 %l14, i32 *%ptr
-  store volatile i32 %l13, i32 *%ptr
-  store volatile i32 %l12, i32 *%ptr
-  store volatile i32 %l11, i32 *%ptr
-  store volatile i32 %l10, i32 *%ptr
-  store volatile i32 %l9, i32 *%ptr
-  store volatile i32 %l8, i32 *%ptr
-  store volatile i32 %l7, i32 *%ptr
-  store volatile i32 %l6, i32 *%ptr
-  store volatile i32 %l5, i32 *%ptr
-  store volatile i32 %l4, i32 *%ptr
-  store volatile i32 %l3, i32 *%ptr
-  store volatile i32 %l1, i32 *%ptr
-  store volatile i32 %l0, i32 *%ptr
+  %l0 = load volatile i32, ptr %ptr
+  %l1 = load volatile i32, ptr %ptr
+  %l3 = load volatile i32, ptr %ptr
+  %l4 = load volatile i32, ptr %ptr
+  %l5 = load volatile i32, ptr %ptr
+  %l6 = load volatile i32, ptr %ptr
+  %l7 = load volatile i32, ptr %ptr
+  %l8 = load volatile i32, ptr %ptr
+  %l9 = load volatile i32, ptr %ptr
+  %l10 = load volatile i32, ptr %ptr
+  %l11 = load volatile i32, ptr %ptr
+  %l12 = load volatile i32, ptr %ptr
+  %l13 = load volatile i32, ptr %ptr
+  %l14 = load volatile i32, ptr %ptr
+  %lx = load volatile i32, ptr %ptr
+  store volatile i32 %lx, ptr %ptr
+  store volatile i32 %l14, ptr %ptr
+  store volatile i32 %l13, ptr %ptr
+  store volatile i32 %l12, ptr %ptr
+  store volatile i32 %l11, ptr %ptr
+  store volatile i32 %l10, ptr %ptr
+  store volatile i32 %l9, ptr %ptr
+  store volatile i32 %l8, ptr %ptr
+  store volatile i32 %l7, ptr %ptr
+  store volatile i32 %l6, ptr %ptr
+  store volatile i32 %l5, ptr %ptr
+  store volatile i32 %l4, ptr %ptr
+  store volatile i32 %l3, ptr %ptr
+  store volatile i32 %l1, ptr %ptr
+  store volatile i32 %l0, ptr %ptr
   ret void
 }
 
 ; Same for i64, except that the full spill slot is used.
-define void @f2(i64 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: stmg %r6, %r15, 48(%r15)
 ; CHECK: aghi %r15, -168
@@ -58,35 +58,35 @@ define void @f2(i64 *%ptr) {
 ; CHECK: lg [[REGISTER]], 160(%r15)
 ; CHECK: lmg %r6, %r15, 216(%r15)
 ; CHECK: br %r14
-  %l0 = load volatile i64, i64 *%ptr
-  %l1 = load volatile i64, i64 *%ptr
-  %l3 = load volatile i64, i64 *%ptr
-  %l4 = load volatile i64, i64 *%ptr
-  %l5 = load volatile i64, i64 *%ptr
-  %l6 = load volatile i64, i64 *%ptr
-  %l7 = load volatile i64, i64 *%ptr
-  %l8 = load volatile i64, i64 *%ptr
-  %l9 = load volatile i64, i64 *%ptr
-  %l10 = load volatile i64, i64 *%ptr
-  %l11 = load volatile i64, i64 *%ptr
-  %l12 = load volatile i64, i64 *%ptr
-  %l13 = load volatile i64, i64 *%ptr
-  %l14 = load volatile i64, i64 *%ptr
-  %lx = load volatile i64, i64 *%ptr
-  store volatile i64 %lx, i64 *%ptr
-  store volatile i64 %l14, i64 *%ptr
-  store volatile i64 %l13, i64 *%ptr
-  store volatile i64 %l12, i64 *%ptr
-  store volatile i64 %l11, i64 *%ptr
-  store volatile i64 %l10, i64 *%ptr
-  store volatile i64 %l9, i64 *%ptr
-  store volatile i64 %l8, i64 *%ptr
-  store volatile i64 %l7, i64 *%ptr
-  store volatile i64 %l6, i64 *%ptr
-  store volatile i64 %l5, i64 *%ptr
-  store volatile i64 %l4, i64 *%ptr
-  store volatile i64 %l3, i64 *%ptr
-  store volatile i64 %l1, i64 *%ptr
-  store volatile i64 %l0, i64 *%ptr
+  %l0 = load volatile i64, ptr %ptr
+  %l1 = load volatile i64, ptr %ptr
+  %l3 = load volatile i64, ptr %ptr
+  %l4 = load volatile i64, ptr %ptr
+  %l5 = load volatile i64, ptr %ptr
+  %l6 = load volatile i64, ptr %ptr
+  %l7 = load volatile i64, ptr %ptr
+  %l8 = load volatile i64, ptr %ptr
+  %l9 = load volatile i64, ptr %ptr
+  %l10 = load volatile i64, ptr %ptr
+  %l11 = load volatile i64, ptr %ptr
+  %l12 = load volatile i64, ptr %ptr
+  %l13 = load volatile i64, ptr %ptr
+  %l14 = load volatile i64, ptr %ptr
+  %lx = load volatile i64, ptr %ptr
+  store volatile i64 %lx, ptr %ptr
+  store volatile i64 %l14, ptr %ptr
+  store volatile i64 %l13, ptr %ptr
+  store volatile i64 %l12, ptr %ptr
+  store volatile i64 %l11, ptr %ptr
+  store volatile i64 %l10, ptr %ptr
+  store volatile i64 %l9, ptr %ptr
+  store volatile i64 %l8, ptr %ptr
+  store volatile i64 %l7, ptr %ptr
+  store volatile i64 %l6, ptr %ptr
+  store volatile i64 %l5, ptr %ptr
+  store volatile i64 %l4, ptr %ptr
+  store volatile i64 %l3, ptr %ptr
+  store volatile i64 %l1, ptr %ptr
+  store volatile i64 %l0, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-19.ll b/llvm/test/CodeGen/SystemZ/frame-19.ll
index c6a26600683f6..f0c55aa4a2f31 100644
--- a/llvm/test/CodeGen/SystemZ/frame-19.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-19.ll
@@ -4,7 +4,7 @@
 
 ; We need to allocate a 16-byte spill slot and save the 8 call-saved FPRs.
 ; The frame size should be exactly 160 + 16 + 8 * 8 = 240.
-define void @f1(<16 x i8> *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r15, -240
 ; CHECK-DAG: std %f8,
@@ -27,78 +27,78 @@ define void @f1(<16 x i8> *%ptr) {
 ; CHECK-DAG: ld %f15,
 ; CHECK: aghi %r15, 240
 ; CHECK: br %r14
-  %v0 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v1 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v2 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v3 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v4 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v5 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v6 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v7 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v8 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v9 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v10 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v11 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v12 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v13 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v14 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v15 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v16 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v17 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v18 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v19 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v20 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v21 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v22 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v23 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v24 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v25 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v26 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v27 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v28 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v29 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v30 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v31 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %vx = load volatile <16 x i8>, <16 x i8> *%ptr
-  store volatile <16 x i8> %vx, <16 x i8> *%ptr
-  store volatile <16 x i8> %v31, <16 x i8> *%ptr
-  store volatile <16 x i8> %v30, <16 x i8> *%ptr
-  store volatile <16 x i8> %v29, <16 x i8> *%ptr
-  store volatile <16 x i8> %v28, <16 x i8> *%ptr
-  store volatile <16 x i8> %v27, <16 x i8> *%ptr
-  store volatile <16 x i8> %v26, <16 x i8> *%ptr
-  store volatile <16 x i8> %v25, <16 x i8> *%ptr
-  store volatile <16 x i8> %v24, <16 x i8> *%ptr
-  store volatile <16 x i8> %v23, <16 x i8> *%ptr
-  store volatile <16 x i8> %v22, <16 x i8> *%ptr
-  store volatile <16 x i8> %v21, <16 x i8> *%ptr
-  store volatile <16 x i8> %v20, <16 x i8> *%ptr
-  store volatile <16 x i8> %v19, <16 x i8> *%ptr
-  store volatile <16 x i8> %v18, <16 x i8> *%ptr
-  store volatile <16 x i8> %v17, <16 x i8> *%ptr
-  store volatile <16 x i8> %v16, <16 x i8> *%ptr
-  store volatile <16 x i8> %v15, <16 x i8> *%ptr
-  store volatile <16 x i8> %v14, <16 x i8> *%ptr
-  store volatile <16 x i8> %v13, <16 x i8> *%ptr
-  store volatile <16 x i8> %v12, <16 x i8> *%ptr
-  store volatile <16 x i8> %v11, <16 x i8> *%ptr
-  store volatile <16 x i8> %v10, <16 x i8> *%ptr
-  store volatile <16 x i8> %v9, <16 x i8> *%ptr
-  store volatile <16 x i8> %v8, <16 x i8> *%ptr
-  store volatile <16 x i8> %v7, <16 x i8> *%ptr
-  store volatile <16 x i8> %v6, <16 x i8> *%ptr
-  store volatile <16 x i8> %v5, <16 x i8> *%ptr
-  store volatile <16 x i8> %v4, <16 x i8> *%ptr
-  store volatile <16 x i8> %v3, <16 x i8> *%ptr
-  store volatile <16 x i8> %v2, <16 x i8> *%ptr
-  store volatile <16 x i8> %v1, <16 x i8> *%ptr
-  store volatile <16 x i8> %v0, <16 x i8> *%ptr
+  %v0 = load volatile <16 x i8>, ptr %ptr
+  %v1 = load volatile <16 x i8>, ptr %ptr
+  %v2 = load volatile <16 x i8>, ptr %ptr
+  %v3 = load volatile <16 x i8>, ptr %ptr
+  %v4 = load volatile <16 x i8>, ptr %ptr
+  %v5 = load volatile <16 x i8>, ptr %ptr
+  %v6 = load volatile <16 x i8>, ptr %ptr
+  %v7 = load volatile <16 x i8>, ptr %ptr
+  %v8 = load volatile <16 x i8>, ptr %ptr
+  %v9 = load volatile <16 x i8>, ptr %ptr
+  %v10 = load volatile <16 x i8>, ptr %ptr
+  %v11 = load volatile <16 x i8>, ptr %ptr
+  %v12 = load volatile <16 x i8>, ptr %ptr
+  %v13 = load volatile <16 x i8>, ptr %ptr
+  %v14 = load volatile <16 x i8>, ptr %ptr
+  %v15 = load volatile <16 x i8>, ptr %ptr
+  %v16 = load volatile <16 x i8>, ptr %ptr
+  %v17 = load volatile <16 x i8>, ptr %ptr
+  %v18 = load volatile <16 x i8>, ptr %ptr
+  %v19 = load volatile <16 x i8>, ptr %ptr
+  %v20 = load volatile <16 x i8>, ptr %ptr
+  %v21 = load volatile <16 x i8>, ptr %ptr
+  %v22 = load volatile <16 x i8>, ptr %ptr
+  %v23 = load volatile <16 x i8>, ptr %ptr
+  %v24 = load volatile <16 x i8>, ptr %ptr
+  %v25 = load volatile <16 x i8>, ptr %ptr
+  %v26 = load volatile <16 x i8>, ptr %ptr
+  %v27 = load volatile <16 x i8>, ptr %ptr
+  %v28 = load volatile <16 x i8>, ptr %ptr
+  %v29 = load volatile <16 x i8>, ptr %ptr
+  %v30 = load volatile <16 x i8>, ptr %ptr
+  %v31 = load volatile <16 x i8>, ptr %ptr
+  %vx = load volatile <16 x i8>, ptr %ptr
+  store volatile <16 x i8> %vx, ptr %ptr
+  store volatile <16 x i8> %v31, ptr %ptr
+  store volatile <16 x i8> %v30, ptr %ptr
+  store volatile <16 x i8> %v29, ptr %ptr
+  store volatile <16 x i8> %v28, ptr %ptr
+  store volatile <16 x i8> %v27, ptr %ptr
+  store volatile <16 x i8> %v26, ptr %ptr
+  store volatile <16 x i8> %v25, ptr %ptr
+  store volatile <16 x i8> %v24, ptr %ptr
+  store volatile <16 x i8> %v23, ptr %ptr
+  store volatile <16 x i8> %v22, ptr %ptr
+  store volatile <16 x i8> %v21, ptr %ptr
+  store volatile <16 x i8> %v20, ptr %ptr
+  store volatile <16 x i8> %v19, ptr %ptr
+  store volatile <16 x i8> %v18, ptr %ptr
+  store volatile <16 x i8> %v17, ptr %ptr
+  store volatile <16 x i8> %v16, ptr %ptr
+  store volatile <16 x i8> %v15, ptr %ptr
+  store volatile <16 x i8> %v14, ptr %ptr
+  store volatile <16 x i8> %v13, ptr %ptr
+  store volatile <16 x i8> %v12, ptr %ptr
+  store volatile <16 x i8> %v11, ptr %ptr
+  store volatile <16 x i8> %v10, ptr %ptr
+  store volatile <16 x i8> %v9, ptr %ptr
+  store volatile <16 x i8> %v8, ptr %ptr
+  store volatile <16 x i8> %v7, ptr %ptr
+  store volatile <16 x i8> %v6, ptr %ptr
+  store volatile <16 x i8> %v5, ptr %ptr
+  store volatile <16 x i8> %v4, ptr %ptr
+  store volatile <16 x i8> %v3, ptr %ptr
+  store volatile <16 x i8> %v2, ptr %ptr
+  store volatile <16 x i8> %v1, ptr %ptr
+  store volatile <16 x i8> %v0, ptr %ptr
   ret void
 }
 
 ; Like f1, but no 16-byte slot should be needed, and no outgoing reg save
 ; area of 160 bytes.
-define void @f2(<16 x i8> *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r15, -64
 ; CHECK-DAG: std %f8,
@@ -121,75 +121,75 @@ define void @f2(<16 x i8> *%ptr) {
 ; CHECK-DAG: ld %f15,
 ; CHECK: aghi %r15, 64
 ; CHECK: br %r14
-  %v0 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v1 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v2 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v3 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v4 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v5 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v6 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v7 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v8 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v9 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v10 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v11 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v12 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v13 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v14 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v15 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v16 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v17 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v18 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v19 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v20 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v21 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v22 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v23 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v24 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v25 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v26 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v27 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v28 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v29 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v30 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v31 = load volatile <16 x i8>, <16 x i8> *%ptr
-  store volatile <16 x i8> %v31, <16 x i8> *%ptr
-  store volatile <16 x i8> %v30, <16 x i8> *%ptr
-  store volatile <16 x i8> %v29, <16 x i8> *%ptr
-  store volatile <16 x i8> %v28, <16 x i8> *%ptr
-  store volatile <16 x i8> %v27, <16 x i8> *%ptr
-  store volatile <16 x i8> %v26, <16 x i8> *%ptr
-  store volatile <16 x i8> %v25, <16 x i8> *%ptr
-  store volatile <16 x i8> %v24, <16 x i8> *%ptr
-  store volatile <16 x i8> %v23, <16 x i8> *%ptr
-  store volatile <16 x i8> %v22, <16 x i8> *%ptr
-  store volatile <16 x i8> %v21, <16 x i8> *%ptr
-  store volatile <16 x i8> %v20, <16 x i8> *%ptr
-  store volatile <16 x i8> %v19, <16 x i8> *%ptr
-  store volatile <16 x i8> %v18, <16 x i8> *%ptr
-  store volatile <16 x i8> %v17, <16 x i8> *%ptr
-  store volatile <16 x i8> %v16, <16 x i8> *%ptr
-  store volatile <16 x i8> %v15, <16 x i8> *%ptr
-  store volatile <16 x i8> %v14, <16 x i8> *%ptr
-  store volatile <16 x i8> %v13, <16 x i8> *%ptr
-  store volatile <16 x i8> %v12, <16 x i8> *%ptr
-  store volatile <16 x i8> %v11, <16 x i8> *%ptr
-  store volatile <16 x i8> %v10, <16 x i8> *%ptr
-  store volatile <16 x i8> %v9, <16 x i8> *%ptr
-  store volatile <16 x i8> %v8, <16 x i8> *%ptr
-  store volatile <16 x i8> %v7, <16 x i8> *%ptr
-  store volatile <16 x i8> %v6, <16 x i8> *%ptr
-  store volatile <16 x i8> %v5, <16 x i8> *%ptr
-  store volatile <16 x i8> %v4, <16 x i8> *%ptr
-  store volatile <16 x i8> %v3, <16 x i8> *%ptr
-  store volatile <16 x i8> %v2, <16 x i8> *%ptr
-  store volatile <16 x i8> %v1, <16 x i8> *%ptr
-  store volatile <16 x i8> %v0, <16 x i8> *%ptr
+  %v0 = load volatile <16 x i8>, ptr %ptr
+  %v1 = load volatile <16 x i8>, ptr %ptr
+  %v2 = load volatile <16 x i8>, ptr %ptr
+  %v3 = load volatile <16 x i8>, ptr %ptr
+  %v4 = load volatile <16 x i8>, ptr %ptr
+  %v5 = load volatile <16 x i8>, ptr %ptr
+  %v6 = load volatile <16 x i8>, ptr %ptr
+  %v7 = load volatile <16 x i8>, ptr %ptr
+  %v8 = load volatile <16 x i8>, ptr %ptr
+  %v9 = load volatile <16 x i8>, ptr %ptr
+  %v10 = load volatile <16 x i8>, ptr %ptr
+  %v11 = load volatile <16 x i8>, ptr %ptr
+  %v12 = load volatile <16 x i8>, ptr %ptr
+  %v13 = load volatile <16 x i8>, ptr %ptr
+  %v14 = load volatile <16 x i8>, ptr %ptr
+  %v15 = load volatile <16 x i8>, ptr %ptr
+  %v16 = load volatile <16 x i8>, ptr %ptr
+  %v17 = load volatile <16 x i8>, ptr %ptr
+  %v18 = load volatile <16 x i8>, ptr %ptr
+  %v19 = load volatile <16 x i8>, ptr %ptr
+  %v20 = load volatile <16 x i8>, ptr %ptr
+  %v21 = load volatile <16 x i8>, ptr %ptr
+  %v22 = load volatile <16 x i8>, ptr %ptr
+  %v23 = load volatile <16 x i8>, ptr %ptr
+  %v24 = load volatile <16 x i8>, ptr %ptr
+  %v25 = load volatile <16 x i8>, ptr %ptr
+  %v26 = load volatile <16 x i8>, ptr %ptr
+  %v27 = load volatile <16 x i8>, ptr %ptr
+  %v28 = load volatile <16 x i8>, ptr %ptr
+  %v29 = load volatile <16 x i8>, ptr %ptr
+  %v30 = load volatile <16 x i8>, ptr %ptr
+  %v31 = load volatile <16 x i8>, ptr %ptr
+  store volatile <16 x i8> %v31, ptr %ptr
+  store volatile <16 x i8> %v30, ptr %ptr
+  store volatile <16 x i8> %v29, ptr %ptr
+  store volatile <16 x i8> %v28, ptr %ptr
+  store volatile <16 x i8> %v27, ptr %ptr
+  store volatile <16 x i8> %v26, ptr %ptr
+  store volatile <16 x i8> %v25, ptr %ptr
+  store volatile <16 x i8> %v24, ptr %ptr
+  store volatile <16 x i8> %v23, ptr %ptr
+  store volatile <16 x i8> %v22, ptr %ptr
+  store volatile <16 x i8> %v21, ptr %ptr
+  store volatile <16 x i8> %v20, ptr %ptr
+  store volatile <16 x i8> %v19, ptr %ptr
+  store volatile <16 x i8> %v18, ptr %ptr
+  store volatile <16 x i8> %v17, ptr %ptr
+  store volatile <16 x i8> %v16, ptr %ptr
+  store volatile <16 x i8> %v15, ptr %ptr
+  store volatile <16 x i8> %v14, ptr %ptr
+  store volatile <16 x i8> %v13, ptr %ptr
+  store volatile <16 x i8> %v12, ptr %ptr
+  store volatile <16 x i8> %v11, ptr %ptr
+  store volatile <16 x i8> %v10, ptr %ptr
+  store volatile <16 x i8> %v9, ptr %ptr
+  store volatile <16 x i8> %v8, ptr %ptr
+  store volatile <16 x i8> %v7, ptr %ptr
+  store volatile <16 x i8> %v6, ptr %ptr
+  store volatile <16 x i8> %v5, ptr %ptr
+  store volatile <16 x i8> %v4, ptr %ptr
+  store volatile <16 x i8> %v3, ptr %ptr
+  store volatile <16 x i8> %v2, ptr %ptr
+  store volatile <16 x i8> %v1, ptr %ptr
+  store volatile <16 x i8> %v0, ptr %ptr
   ret void
 }
 
 ; Like f2, but only %f8 should be saved.
-define void @f3(<16 x i8> *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r15, -8
 ; CHECK-DAG: std %f8,
@@ -205,111 +205,111 @@ define void @f3(<16 x i8> *%ptr) {
 ; CHECK-DAG: ld %f8,
 ; CHECK: aghi %r15, 8
 ; CHECK: br %r14
-  %v0 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v1 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v2 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v3 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v4 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v5 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v6 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v7 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v8 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v16 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v17 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v18 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v19 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v20 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v21 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v22 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v23 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v24 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v25 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v26 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v27 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v28 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v29 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v30 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v31 = load volatile <16 x i8>, <16 x i8> *%ptr
-  store volatile <16 x i8> %v31, <16 x i8> *%ptr
-  store volatile <16 x i8> %v30, <16 x i8> *%ptr
-  store volatile <16 x i8> %v29, <16 x i8> *%ptr
-  store volatile <16 x i8> %v28, <16 x i8> *%ptr
-  store volatile <16 x i8> %v27, <16 x i8> *%ptr
-  store volatile <16 x i8> %v26, <16 x i8> *%ptr
-  store volatile <16 x i8> %v25, <16 x i8> *%ptr
-  store volatile <16 x i8> %v24, <16 x i8> *%ptr
-  store volatile <16 x i8> %v23, <16 x i8> *%ptr
-  store volatile <16 x i8> %v22, <16 x i8> *%ptr
-  store volatile <16 x i8> %v21, <16 x i8> *%ptr
-  store volatile <16 x i8> %v20, <16 x i8> *%ptr
-  store volatile <16 x i8> %v19, <16 x i8> *%ptr
-  store volatile <16 x i8> %v18, <16 x i8> *%ptr
-  store volatile <16 x i8> %v17, <16 x i8> *%ptr
-  store volatile <16 x i8> %v16, <16 x i8> *%ptr
-  store volatile <16 x i8> %v8, <16 x i8> *%ptr
-  store volatile <16 x i8> %v7, <16 x i8> *%ptr
-  store volatile <16 x i8> %v6, <16 x i8> *%ptr
-  store volatile <16 x i8> %v5, <16 x i8> *%ptr
-  store volatile <16 x i8> %v4, <16 x i8> *%ptr
-  store volatile <16 x i8> %v3, <16 x i8> *%ptr
-  store volatile <16 x i8> %v2, <16 x i8> *%ptr
-  store volatile <16 x i8> %v1, <16 x i8> *%ptr
-  store volatile <16 x i8> %v0, <16 x i8> *%ptr
+  %v0 = load volatile <16 x i8>, ptr %ptr
+  %v1 = load volatile <16 x i8>, ptr %ptr
+  %v2 = load volatile <16 x i8>, ptr %ptr
+  %v3 = load volatile <16 x i8>, ptr %ptr
+  %v4 = load volatile <16 x i8>, ptr %ptr
+  %v5 = load volatile <16 x i8>, ptr %ptr
+  %v6 = load volatile <16 x i8>, ptr %ptr
+  %v7 = load volatile <16 x i8>, ptr %ptr
+  %v8 = load volatile <16 x i8>, ptr %ptr
+  %v16 = load volatile <16 x i8>, ptr %ptr
+  %v17 = load volatile <16 x i8>, ptr %ptr
+  %v18 = load volatile <16 x i8>, ptr %ptr
+  %v19 = load volatile <16 x i8>, ptr %ptr
+  %v20 = load volatile <16 x i8>, ptr %ptr
+  %v21 = load volatile <16 x i8>, ptr %ptr
+  %v22 = load volatile <16 x i8>, ptr %ptr
+  %v23 = load volatile <16 x i8>, ptr %ptr
+  %v24 = load volatile <16 x i8>, ptr %ptr
+  %v25 = load volatile <16 x i8>, ptr %ptr
+  %v26 = load volatile <16 x i8>, ptr %ptr
+  %v27 = load volatile <16 x i8>, ptr %ptr
+  %v28 = load volatile <16 x i8>, ptr %ptr
+  %v29 = load volatile <16 x i8>, ptr %ptr
+  %v30 = load volatile <16 x i8>, ptr %ptr
+  %v31 = load volatile <16 x i8>, ptr %ptr
+  store volatile <16 x i8> %v31, ptr %ptr
+  store volatile <16 x i8> %v30, ptr %ptr
+  store volatile <16 x i8> %v29, ptr %ptr
+  store volatile <16 x i8> %v28, ptr %ptr
+  store volatile <16 x i8> %v27, ptr %ptr
+  store volatile <16 x i8> %v26, ptr %ptr
+  store volatile <16 x i8> %v25, ptr %ptr
+  store volatile <16 x i8> %v24, ptr %ptr
+  store volatile <16 x i8> %v23, ptr %ptr
+  store volatile <16 x i8> %v22, ptr %ptr
+  store volatile <16 x i8> %v21, ptr %ptr
+  store volatile <16 x i8> %v20, ptr %ptr
+  store volatile <16 x i8> %v19, ptr %ptr
+  store volatile <16 x i8> %v18, ptr %ptr
+  store volatile <16 x i8> %v17, ptr %ptr
+  store volatile <16 x i8> %v16, ptr %ptr
+  store volatile <16 x i8> %v8, ptr %ptr
+  store volatile <16 x i8> %v7, ptr %ptr
+  store volatile <16 x i8> %v6, ptr %ptr
+  store volatile <16 x i8> %v5, ptr %ptr
+  store volatile <16 x i8> %v4, ptr %ptr
+  store volatile <16 x i8> %v3, ptr %ptr
+  store volatile <16 x i8> %v2, ptr %ptr
+  store volatile <16 x i8> %v1, ptr %ptr
+  store volatile <16 x i8> %v0, ptr %ptr
   ret void
 }
 
 ; Like f2, but no registers should be saved.
-define void @f4(<16 x i8> *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK: br %r14
-  %v0 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v1 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v2 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v3 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v4 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v5 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v6 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v7 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v16 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v17 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v18 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v19 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v20 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v21 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v22 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v23 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v24 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v25 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v26 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v27 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v28 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v29 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v30 = load volatile <16 x i8>, <16 x i8> *%ptr
-  %v31 = load volatile <16 x i8>, <16 x i8> *%ptr
-  store volatile <16 x i8> %v31, <16 x i8> *%ptr
-  store volatile <16 x i8> %v30, <16 x i8> *%ptr
-  store volatile <16 x i8> %v29, <16 x i8> *%ptr
-  store volatile <16 x i8> %v28, <16 x i8> *%ptr
-  store volatile <16 x i8> %v27, <16 x i8> *%ptr
-  store volatile <16 x i8> %v26, <16 x i8> *%ptr
-  store volatile <16 x i8> %v25, <16 x i8> *%ptr
-  store volatile <16 x i8> %v24, <16 x i8> *%ptr
-  store volatile <16 x i8> %v23, <16 x i8> *%ptr
-  store volatile <16 x i8> %v22, <16 x i8> *%ptr
-  store volatile <16 x i8> %v21, <16 x i8> *%ptr
-  store volatile <16 x i8> %v20, <16 x i8> *%ptr
-  store volatile <16 x i8> %v19, <16 x i8> *%ptr
-  store volatile <16 x i8> %v18, <16 x i8> *%ptr
-  store volatile <16 x i8> %v17, <16 x i8> *%ptr
-  store volatile <16 x i8> %v16, <16 x i8> *%ptr
-  store volatile <16 x i8> %v7, <16 x i8> *%ptr
-  store volatile <16 x i8> %v6, <16 x i8> *%ptr
-  store volatile <16 x i8> %v5, <16 x i8> *%ptr
-  store volatile <16 x i8> %v4, <16 x i8> *%ptr
-  store volatile <16 x i8> %v3, <16 x i8> *%ptr
-  store volatile <16 x i8> %v2, <16 x i8> *%ptr
-  store volatile <16 x i8> %v1, <16 x i8> *%ptr
-  store volatile <16 x i8> %v0, <16 x i8> *%ptr
+  %v0 = load volatile <16 x i8>, ptr %ptr
+  %v1 = load volatile <16 x i8>, ptr %ptr
+  %v2 = load volatile <16 x i8>, ptr %ptr
+  %v3 = load volatile <16 x i8>, ptr %ptr
+  %v4 = load volatile <16 x i8>, ptr %ptr
+  %v5 = load volatile <16 x i8>, ptr %ptr
+  %v6 = load volatile <16 x i8>, ptr %ptr
+  %v7 = load volatile <16 x i8>, ptr %ptr
+  %v16 = load volatile <16 x i8>, ptr %ptr
+  %v17 = load volatile <16 x i8>, ptr %ptr
+  %v18 = load volatile <16 x i8>, ptr %ptr
+  %v19 = load volatile <16 x i8>, ptr %ptr
+  %v20 = load volatile <16 x i8>, ptr %ptr
+  %v21 = load volatile <16 x i8>, ptr %ptr
+  %v22 = load volatile <16 x i8>, ptr %ptr
+  %v23 = load volatile <16 x i8>, ptr %ptr
+  %v24 = load volatile <16 x i8>, ptr %ptr
+  %v25 = load volatile <16 x i8>, ptr %ptr
+  %v26 = load volatile <16 x i8>, ptr %ptr
+  %v27 = load volatile <16 x i8>, ptr %ptr
+  %v28 = load volatile <16 x i8>, ptr %ptr
+  %v29 = load volatile <16 x i8>, ptr %ptr
+  %v30 = load volatile <16 x i8>, ptr %ptr
+  %v31 = load volatile <16 x i8>, ptr %ptr
+  store volatile <16 x i8> %v31, ptr %ptr
+  store volatile <16 x i8> %v30, ptr %ptr
+  store volatile <16 x i8> %v29, ptr %ptr
+  store volatile <16 x i8> %v28, ptr %ptr
+  store volatile <16 x i8> %v27, ptr %ptr
+  store volatile <16 x i8> %v26, ptr %ptr
+  store volatile <16 x i8> %v25, ptr %ptr
+  store volatile <16 x i8> %v24, ptr %ptr
+  store volatile <16 x i8> %v23, ptr %ptr
+  store volatile <16 x i8> %v22, ptr %ptr
+  store volatile <16 x i8> %v21, ptr %ptr
+  store volatile <16 x i8> %v20, ptr %ptr
+  store volatile <16 x i8> %v19, ptr %ptr
+  store volatile <16 x i8> %v18, ptr %ptr
+  store volatile <16 x i8> %v17, ptr %ptr
+  store volatile <16 x i8> %v16, ptr %ptr
+  store volatile <16 x i8> %v7, ptr %ptr
+  store volatile <16 x i8> %v6, ptr %ptr
+  store volatile <16 x i8> %v5, ptr %ptr
+  store volatile <16 x i8> %v4, ptr %ptr
+  store volatile <16 x i8> %v3, ptr %ptr
+  store volatile <16 x i8> %v2, ptr %ptr
+  store volatile <16 x i8> %v1, ptr %ptr
+  store volatile <16 x i8> %v0, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-20.ll b/llvm/test/CodeGen/SystemZ/frame-20.ll
index 6653c8185b0a8..7fb0a5bee581a 100644
--- a/llvm/test/CodeGen/SystemZ/frame-20.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-20.ll
@@ -7,7 +7,7 @@
 ; We need to save and restore 8 of the 16 FPRs, so the frame size
 ; should be exactly 8 * 8 = 64.  The CFA offset is 160
 ; (the caller-allocated part of the frame) + 64.
-define void @f1(double *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r15, -64
 ; CHECK: .cfi_def_cfa_offset 224
@@ -45,38 +45,38 @@ define void @f1(double *%ptr) {
 ; CHECK: ld %f15, 0(%r15)
 ; CHECK: aghi %r15, 64
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l15 = load volatile double, double *%ptr
-  %l16 = load volatile double, double *%ptr
-  %l17 = load volatile double, double *%ptr
-  %l18 = load volatile double, double *%ptr
-  %l19 = load volatile double, double *%ptr
-  %l20 = load volatile double, double *%ptr
-  %l21 = load volatile double, double *%ptr
-  %l22 = load volatile double, double *%ptr
-  %l23 = load volatile double, double *%ptr
-  %l24 = load volatile double, double *%ptr
-  %l25 = load volatile double, double *%ptr
-  %l26 = load volatile double, double *%ptr
-  %l27 = load volatile double, double *%ptr
-  %l28 = load volatile double, double *%ptr
-  %l29 = load volatile double, double *%ptr
-  %l30 = load volatile double, double *%ptr
-  %l31 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l15 = load volatile double, ptr %ptr
+  %l16 = load volatile double, ptr %ptr
+  %l17 = load volatile double, ptr %ptr
+  %l18 = load volatile double, ptr %ptr
+  %l19 = load volatile double, ptr %ptr
+  %l20 = load volatile double, ptr %ptr
+  %l21 = load volatile double, ptr %ptr
+  %l22 = load volatile double, ptr %ptr
+  %l23 = load volatile double, ptr %ptr
+  %l24 = load volatile double, ptr %ptr
+  %l25 = load volatile double, ptr %ptr
+  %l26 = load volatile double, ptr %ptr
+  %l27 = load volatile double, ptr %ptr
+  %l28 = load volatile double, ptr %ptr
+  %l29 = load volatile double, ptr %ptr
+  %l30 = load volatile double, ptr %ptr
+  %l31 = load volatile double, ptr %ptr
   %acc0 = fsub double %l0, %l0
   %acc1 = fsub double %l1, %acc0
   %acc2 = fsub double %l2, %acc1
@@ -109,44 +109,44 @@ define void @f1(double *%ptr) {
   %acc29 = fsub double %l29, %acc28
   %acc30 = fsub double %l30, %acc29
   %acc31 = fsub double %l31, %acc30
-  store volatile double %acc0, double *%ptr
-  store volatile double %acc1, double *%ptr
-  store volatile double %acc2, double *%ptr
-  store volatile double %acc3, double *%ptr
-  store volatile double %acc4, double *%ptr
-  store volatile double %acc5, double *%ptr
-  store volatile double %acc6, double *%ptr
-  store volatile double %acc7, double *%ptr
-  store volatile double %acc8, double *%ptr
-  store volatile double %acc9, double *%ptr
-  store volatile double %acc10, double *%ptr
-  store volatile double %acc11, double *%ptr
-  store volatile double %acc12, double *%ptr
-  store volatile double %acc13, double *%ptr
-  store volatile double %acc14, double *%ptr
-  store volatile double %acc15, double *%ptr
-  store volatile double %acc16, double *%ptr
-  store volatile double %acc17, double *%ptr
-  store volatile double %acc18, double *%ptr
-  store volatile double %acc19, double *%ptr
-  store volatile double %acc20, double *%ptr
-  store volatile double %acc21, double *%ptr
-  store volatile double %acc22, double *%ptr
-  store volatile double %acc23, double *%ptr
-  store volatile double %acc24, double *%ptr
-  store volatile double %acc25, double *%ptr
-  store volatile double %acc26, double *%ptr
-  store volatile double %acc27, double *%ptr
-  store volatile double %acc28, double *%ptr
-  store volatile double %acc29, double *%ptr
-  store volatile double %acc30, double *%ptr
-  store volatile double %acc31, double *%ptr
+  store volatile double %acc0, ptr %ptr
+  store volatile double %acc1, ptr %ptr
+  store volatile double %acc2, ptr %ptr
+  store volatile double %acc3, ptr %ptr
+  store volatile double %acc4, ptr %ptr
+  store volatile double %acc5, ptr %ptr
+  store volatile double %acc6, ptr %ptr
+  store volatile double %acc7, ptr %ptr
+  store volatile double %acc8, ptr %ptr
+  store volatile double %acc9, ptr %ptr
+  store volatile double %acc10, ptr %ptr
+  store volatile double %acc11, ptr %ptr
+  store volatile double %acc12, ptr %ptr
+  store volatile double %acc13, ptr %ptr
+  store volatile double %acc14, ptr %ptr
+  store volatile double %acc15, ptr %ptr
+  store volatile double %acc16, ptr %ptr
+  store volatile double %acc17, ptr %ptr
+  store volatile double %acc18, ptr %ptr
+  store volatile double %acc19, ptr %ptr
+  store volatile double %acc20, ptr %ptr
+  store volatile double %acc21, ptr %ptr
+  store volatile double %acc22, ptr %ptr
+  store volatile double %acc23, ptr %ptr
+  store volatile double %acc24, ptr %ptr
+  store volatile double %acc25, ptr %ptr
+  store volatile double %acc26, ptr %ptr
+  store volatile double %acc27, ptr %ptr
+  store volatile double %acc28, ptr %ptr
+  store volatile double %acc29, ptr %ptr
+  store volatile double %acc30, ptr %ptr
+  store volatile double %acc31, ptr %ptr
   ret void
 }
 
 ; Like f1, but requires one fewer FPR.  We allocate in numerical order,
 ; so %f15 is the one that gets dropped.
-define void @f2(double *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r15, -56
 ; CHECK: .cfi_def_cfa_offset 216
@@ -175,37 +175,37 @@ define void @f2(double *%ptr) {
 ; CHECK: ld %f14, 0(%r15)
 ; CHECK: aghi %r15, 56
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l9 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l16 = load volatile double, double *%ptr
-  %l17 = load volatile double, double *%ptr
-  %l18 = load volatile double, double *%ptr
-  %l19 = load volatile double, double *%ptr
-  %l20 = load volatile double, double *%ptr
-  %l21 = load volatile double, double *%ptr
-  %l22 = load volatile double, double *%ptr
-  %l23 = load volatile double, double *%ptr
-  %l24 = load volatile double, double *%ptr
-  %l25 = load volatile double, double *%ptr
-  %l26 = load volatile double, double *%ptr
-  %l27 = load volatile double, double *%ptr
-  %l28 = load volatile double, double *%ptr
-  %l29 = load volatile double, double *%ptr
-  %l30 = load volatile double, double *%ptr
-  %l31 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l9 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l16 = load volatile double, ptr %ptr
+  %l17 = load volatile double, ptr %ptr
+  %l18 = load volatile double, ptr %ptr
+  %l19 = load volatile double, ptr %ptr
+  %l20 = load volatile double, ptr %ptr
+  %l21 = load volatile double, ptr %ptr
+  %l22 = load volatile double, ptr %ptr
+  %l23 = load volatile double, ptr %ptr
+  %l24 = load volatile double, ptr %ptr
+  %l25 = load volatile double, ptr %ptr
+  %l26 = load volatile double, ptr %ptr
+  %l27 = load volatile double, ptr %ptr
+  %l28 = load volatile double, ptr %ptr
+  %l29 = load volatile double, ptr %ptr
+  %l30 = load volatile double, ptr %ptr
+  %l31 = load volatile double, ptr %ptr
   %acc0 = fsub double %l0, %l0
   %acc1 = fsub double %l1, %acc0
   %acc2 = fsub double %l2, %acc1
@@ -237,42 +237,42 @@ define void @f2(double *%ptr) {
   %acc29 = fsub double %l29, %acc28
   %acc30 = fsub double %l30, %acc29
   %acc31 = fsub double %l31, %acc30
-  store volatile double %acc0, double *%ptr
-  store volatile double %acc1, double *%ptr
-  store volatile double %acc2, double *%ptr
-  store volatile double %acc3, double *%ptr
-  store volatile double %acc4, double *%ptr
-  store volatile double %acc5, double *%ptr
-  store volatile double %acc6, double *%ptr
-  store volatile double %acc7, double *%ptr
-  store volatile double %acc8, double *%ptr
-  store volatile double %acc9, double *%ptr
-  store volatile double %acc10, double *%ptr
-  store volatile double %acc11, double *%ptr
-  store volatile double %acc12, double *%ptr
-  store volatile double %acc13, double *%ptr
-  store volatile double %acc14, double *%ptr
-  store volatile double %acc16, double *%ptr
-  store volatile double %acc17, double *%ptr
-  store volatile double %acc18, double *%ptr
-  store volatile double %acc19, double *%ptr
-  store volatile double %acc20, double *%ptr
-  store volatile double %acc21, double *%ptr
-  store volatile double %acc22, double *%ptr
-  store volatile double %acc23, double *%ptr
-  store volatile double %acc24, double *%ptr
-  store volatile double %acc25, double *%ptr
-  store volatile double %acc26, double *%ptr
-  store volatile double %acc27, double *%ptr
-  store volatile double %acc28, double *%ptr
-  store volatile double %acc29, double *%ptr
-  store volatile double %acc30, double *%ptr
-  store volatile double %acc31, double *%ptr
+  store volatile double %acc0, ptr %ptr
+  store volatile double %acc1, ptr %ptr
+  store volatile double %acc2, ptr %ptr
+  store volatile double %acc3, ptr %ptr
+  store volatile double %acc4, ptr %ptr
+  store volatile double %acc5, ptr %ptr
+  store volatile double %acc6, ptr %ptr
+  store volatile double %acc7, ptr %ptr
+  store volatile double %acc8, ptr %ptr
+  store volatile double %acc9, ptr %ptr
+  store volatile double %acc10, ptr %ptr
+  store volatile double %acc11, ptr %ptr
+  store volatile double %acc12, ptr %ptr
+  store volatile double %acc13, ptr %ptr
+  store volatile double %acc14, ptr %ptr
+  store volatile double %acc16, ptr %ptr
+  store volatile double %acc17, ptr %ptr
+  store volatile double %acc18, ptr %ptr
+  store volatile double %acc19, ptr %ptr
+  store volatile double %acc20, ptr %ptr
+  store volatile double %acc21, ptr %ptr
+  store volatile double %acc22, ptr %ptr
+  store volatile double %acc23, ptr %ptr
+  store volatile double %acc24, ptr %ptr
+  store volatile double %acc25, ptr %ptr
+  store volatile double %acc26, ptr %ptr
+  store volatile double %acc27, ptr %ptr
+  store volatile double %acc28, ptr %ptr
+  store volatile double %acc29, ptr %ptr
+  store volatile double %acc30, ptr %ptr
+  store volatile double %acc31, ptr %ptr
   ret void
 }
 
 ; Like f1, but should require only one call-saved FPR.
-define void @f3(double *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r15, -8
 ; CHECK: .cfi_def_cfa_offset 168
@@ -283,31 +283,31 @@ define void @f3(double *%ptr) {
 ; CHECK: ld %f8, 0(%r15)
 ; CHECK: aghi %r15, 8
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l8 = load volatile double, double *%ptr
-  %l16 = load volatile double, double *%ptr
-  %l17 = load volatile double, double *%ptr
-  %l18 = load volatile double, double *%ptr
-  %l19 = load volatile double, double *%ptr
-  %l20 = load volatile double, double *%ptr
-  %l21 = load volatile double, double *%ptr
-  %l22 = load volatile double, double *%ptr
-  %l23 = load volatile double, double *%ptr
-  %l24 = load volatile double, double *%ptr
-  %l25 = load volatile double, double *%ptr
-  %l26 = load volatile double, double *%ptr
-  %l27 = load volatile double, double *%ptr
-  %l28 = load volatile double, double *%ptr
-  %l29 = load volatile double, double *%ptr
-  %l30 = load volatile double, double *%ptr
-  %l31 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l8 = load volatile double, ptr %ptr
+  %l16 = load volatile double, ptr %ptr
+  %l17 = load volatile double, ptr %ptr
+  %l18 = load volatile double, ptr %ptr
+  %l19 = load volatile double, ptr %ptr
+  %l20 = load volatile double, ptr %ptr
+  %l21 = load volatile double, ptr %ptr
+  %l22 = load volatile double, ptr %ptr
+  %l23 = load volatile double, ptr %ptr
+  %l24 = load volatile double, ptr %ptr
+  %l25 = load volatile double, ptr %ptr
+  %l26 = load volatile double, ptr %ptr
+  %l27 = load volatile double, ptr %ptr
+  %l28 = load volatile double, ptr %ptr
+  %l29 = load volatile double, ptr %ptr
+  %l30 = load volatile double, ptr %ptr
+  %l31 = load volatile double, ptr %ptr
   %acc0 = fsub double %l0, %l0
   %acc1 = fsub double %l1, %acc0
   %acc2 = fsub double %l2, %acc1
@@ -333,66 +333,66 @@ define void @f3(double *%ptr) {
   %acc29 = fsub double %l29, %acc28
   %acc30 = fsub double %l30, %acc29
   %acc31 = fsub double %l31, %acc30
-  store volatile double %acc0, double *%ptr
-  store volatile double %acc1, double *%ptr
-  store volatile double %acc2, double *%ptr
-  store volatile double %acc3, double *%ptr
-  store volatile double %acc4, double *%ptr
-  store volatile double %acc5, double *%ptr
-  store volatile double %acc6, double *%ptr
-  store volatile double %acc7, double *%ptr
-  store volatile double %acc8, double *%ptr
-  store volatile double %acc16, double *%ptr
-  store volatile double %acc17, double *%ptr
-  store volatile double %acc18, double *%ptr
-  store volatile double %acc19, double *%ptr
-  store volatile double %acc20, double *%ptr
-  store volatile double %acc21, double *%ptr
-  store volatile double %acc22, double *%ptr
-  store volatile double %acc23, double *%ptr
-  store volatile double %acc24, double *%ptr
-  store volatile double %acc25, double *%ptr
-  store volatile double %acc26, double *%ptr
-  store volatile double %acc27, double *%ptr
-  store volatile double %acc28, double *%ptr
-  store volatile double %acc29, double *%ptr
-  store volatile double %acc30, double *%ptr
-  store volatile double %acc31, double *%ptr
+  store volatile double %acc0, ptr %ptr
+  store volatile double %acc1, ptr %ptr
+  store volatile double %acc2, ptr %ptr
+  store volatile double %acc3, ptr %ptr
+  store volatile double %acc4, ptr %ptr
+  store volatile double %acc5, ptr %ptr
+  store volatile double %acc6, ptr %ptr
+  store volatile double %acc7, ptr %ptr
+  store volatile double %acc8, ptr %ptr
+  store volatile double %acc16, ptr %ptr
+  store volatile double %acc17, ptr %ptr
+  store volatile double %acc18, ptr %ptr
+  store volatile double %acc19, ptr %ptr
+  store volatile double %acc20, ptr %ptr
+  store volatile double %acc21, ptr %ptr
+  store volatile double %acc22, ptr %ptr
+  store volatile double %acc23, ptr %ptr
+  store volatile double %acc24, ptr %ptr
+  store volatile double %acc25, ptr %ptr
+  store volatile double %acc26, ptr %ptr
+  store volatile double %acc27, ptr %ptr
+  store volatile double %acc28, ptr %ptr
+  store volatile double %acc29, ptr %ptr
+  store volatile double %acc30, ptr %ptr
+  store volatile double %acc31, ptr %ptr
   ret void
 }
 
 ; This function should use all call-clobbered FPRs and vector registers
 ; but no call-saved ones.  It shouldn't need to create a frame.
-define void @f4(double *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r15
 ; CHECK-NOT: {{%[fv][89]}}
 ; CHECK-NOT: {{%[fv]1[0-5]}}
 ; CHECK: br %r14
-  %l0 = load volatile double, double *%ptr
-  %l1 = load volatile double, double *%ptr
-  %l2 = load volatile double, double *%ptr
-  %l3 = load volatile double, double *%ptr
-  %l4 = load volatile double, double *%ptr
-  %l5 = load volatile double, double *%ptr
-  %l6 = load volatile double, double *%ptr
-  %l7 = load volatile double, double *%ptr
-  %l16 = load volatile double, double *%ptr
-  %l17 = load volatile double, double *%ptr
-  %l18 = load volatile double, double *%ptr
-  %l19 = load volatile double, double *%ptr
-  %l20 = load volatile double, double *%ptr
-  %l21 = load volatile double, double *%ptr
-  %l22 = load volatile double, double *%ptr
-  %l23 = load volatile double, double *%ptr
-  %l24 = load volatile double, double *%ptr
-  %l25 = load volatile double, double *%ptr
-  %l26 = load volatile double, double *%ptr
-  %l27 = load volatile double, double *%ptr
-  %l28 = load volatile double, double *%ptr
-  %l29 = load volatile double, double *%ptr
-  %l30 = load volatile double, double *%ptr
-  %l31 = load volatile double, double *%ptr
+  %l0 = load volatile double, ptr %ptr
+  %l1 = load volatile double, ptr %ptr
+  %l2 = load volatile double, ptr %ptr
+  %l3 = load volatile double, ptr %ptr
+  %l4 = load volatile double, ptr %ptr
+  %l5 = load volatile double, ptr %ptr
+  %l6 = load volatile double, ptr %ptr
+  %l7 = load volatile double, ptr %ptr
+  %l16 = load volatile double, ptr %ptr
+  %l17 = load volatile double, ptr %ptr
+  %l18 = load volatile double, ptr %ptr
+  %l19 = load volatile double, ptr %ptr
+  %l20 = load volatile double, ptr %ptr
+  %l21 = load volatile double, ptr %ptr
+  %l22 = load volatile double, ptr %ptr
+  %l23 = load volatile double, ptr %ptr
+  %l24 = load volatile double, ptr %ptr
+  %l25 = load volatile double, ptr %ptr
+  %l26 = load volatile double, ptr %ptr
+  %l27 = load volatile double, ptr %ptr
+  %l28 = load volatile double, ptr %ptr
+  %l29 = load volatile double, ptr %ptr
+  %l30 = load volatile double, ptr %ptr
+  %l31 = load volatile double, ptr %ptr
   %acc0 = fsub double %l0, %l0
   %acc1 = fsub double %l1, %acc0
   %acc2 = fsub double %l2, %acc1
@@ -417,29 +417,29 @@ define void @f4(double *%ptr) {
   %acc29 = fsub double %l29, %acc28
   %acc30 = fsub double %l30, %acc29
   %acc31 = fsub double %l31, %acc30
-  store volatile double %acc0, double *%ptr
-  store volatile double %acc1, double *%ptr
-  store volatile double %acc2, double *%ptr
-  store volatile double %acc3, double *%ptr
-  store volatile double %acc4, double *%ptr
-  store volatile double %acc5, double *%ptr
-  store volatile double %acc6, double *%ptr
-  store volatile double %acc7, double *%ptr
-  store volatile double %acc16, double *%ptr
-  store volatile double %acc17, double *%ptr
-  store volatile double %acc18, double *%ptr
-  store volatile double %acc19, double *%ptr
-  store volatile double %acc20, double *%ptr
-  store volatile double %acc21, double *%ptr
-  store volatile double %acc22, double *%ptr
-  store volatile double %acc23, double *%ptr
-  store volatile double %acc24, double *%ptr
-  store volatile double %acc25, double *%ptr
-  store volatile double %acc26, double *%ptr
-  store volatile double %acc27, double *%ptr
-  store volatile double %acc28, double *%ptr
-  store volatile double %acc29, double *%ptr
-  store volatile double %acc30, double *%ptr
-  store volatile double %acc31, double *%ptr
+  store volatile double %acc0, ptr %ptr
+  store volatile double %acc1, ptr %ptr
+  store volatile double %acc2, ptr %ptr
+  store volatile double %acc3, ptr %ptr
+  store volatile double %acc4, ptr %ptr
+  store volatile double %acc5, ptr %ptr
+  store volatile double %acc6, ptr %ptr
+  store volatile double %acc7, ptr %ptr
+  store volatile double %acc16, ptr %ptr
+  store volatile double %acc17, ptr %ptr
+  store volatile double %acc18, ptr %ptr
+  store volatile double %acc19, ptr %ptr
+  store volatile double %acc20, ptr %ptr
+  store volatile double %acc21, ptr %ptr
+  store volatile double %acc22, ptr %ptr
+  store volatile double %acc23, ptr %ptr
+  store volatile double %acc24, ptr %ptr
+  store volatile double %acc25, ptr %ptr
+  store volatile double %acc26, ptr %ptr
+  store volatile double %acc27, ptr %ptr
+  store volatile double %acc28, ptr %ptr
+  store volatile double %acc29, ptr %ptr
+  store volatile double %acc30, ptr %ptr
+  store volatile double %acc31, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/frame-21.ll b/llvm/test/CodeGen/SystemZ/frame-21.ll
index 360740028a9f8..7bcb9dfeca365 100644
--- a/llvm/test/CodeGen/SystemZ/frame-21.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-21.ll
@@ -9,8 +9,7 @@ define void @f1(i64 %x) {
 ; CHECK: stg %r2, 160(%r15)
 ; CHECK: br %r14
   %y = alloca [471 x i64], align 8
-  %ptr = getelementptr inbounds [471 x i64], [471 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -21,8 +20,7 @@ define void @f2(i64 %x) {
 ; CHECK: stg %r2, 176(%r15)
 ; CHECK: br %r14
   %y = alloca [472 x i64], align 8
-  %ptr = getelementptr inbounds [472 x i64], [472 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -35,8 +33,7 @@ define void @f3(i64 %x, i64 %r3, i64 %r4, i64 %r5, i64 %r6, i64 %stack) {
 ; CHECK: stg %r2, 160(%r15)
 ; CHECK: br %r14
   %y = alloca [470 x i64], align 8
-  %ptr = getelementptr inbounds [470 x i64], [470 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -46,8 +43,7 @@ define void @f4(i64 %x, i64 %r3, i64 %r4, i64 %r5, i64 %r6, i64 %stack) {
 ; CHECK: stg %r2, 176(%r15)
 ; CHECK: br %r14
   %y = alloca [471 x i64], align 8
-  %ptr = getelementptr inbounds [471 x i64], [471 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -58,8 +54,7 @@ define void @f5(i64 %x, i64 %r3, i64 %r4, i64 %r5, i64 %r6, i64 %stack1, i64 %st
 ; CHECK: stg %r2, 160(%r15)
 ; CHECK: br %r14
   %y = alloca [469 x i64], align 8
-  %ptr = getelementptr inbounds [469 x i64], [469 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 
@@ -69,8 +64,7 @@ define void @f6(i64 %x, i64 %r3, i64 %r4, i64 %r5, i64 %r6, i64 %stack1, i64 %st
 ; CHECK: stg %r2, 176(%r15)
 ; CHECK: br %r14
   %y = alloca [470 x i64], align 8
-  %ptr = getelementptr inbounds [470 x i64], [470 x i64]* %y, i64 0, i64 0
-  store volatile i64 %x, i64* %ptr
+  store volatile i64 %x, ptr %y
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/frame-24.ll b/llvm/test/CodeGen/SystemZ/frame-24.ll
index 37ba7eee16a12..bfa74552508c0 100644
--- a/llvm/test/CodeGen/SystemZ/frame-24.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-24.ll
@@ -2,8 +2,8 @@
 ;
 ; Test saving of vararg registers and backchain with packed stack.
 
-%struct.__va_list_tag = type { i64, i64, i8*, i8* }
-declare void @llvm.va_start(i8*)
+%struct.__va_list_tag = type { i64, i64, ptr, ptr }
+declare void @llvm.va_start(ptr)
 
 attributes #0 = { nounwind "packed-stack"="true" }
 define void @fun0(i64 %g0, double %d0, i64 %n, ...) #0 {
@@ -23,8 +23,7 @@ define void @fun0(i64 %g0, double %d0, i64 %n, ...) #0 {
 ; CHECK-NEXT: br	%r14
 entry:
   %vl = alloca [1 x %struct.__va_list_tag], align 8
-  %0 = bitcast [1 x %struct.__va_list_tag]* %vl to i8*
-  call void @llvm.va_start(i8* nonnull %0)
+  call void @llvm.va_start(ptr nonnull %vl)
   ret void
 }
 
@@ -43,8 +42,7 @@ define void @fun1(i64 %g0, double %d0, i64 %n, ...) #1 {
 ; CHECK-NEXT: br	%r14
 entry:
   %vl = alloca [1 x %struct.__va_list_tag], align 8
-  %0 = bitcast [1 x %struct.__va_list_tag]* %vl to i8*
-  call void @llvm.va_start(i8* nonnull %0)
+  call void @llvm.va_start(ptr nonnull %vl)
   ret void
 }
 
@@ -65,8 +63,7 @@ define void @fun2(i64 %g0, double %d0, i64 %n, ...) #2 {
 ; CHECK-NEXT: br	%r14
 entry:
   %vl = alloca [1 x %struct.__va_list_tag], align 8
-  %0 = bitcast [1 x %struct.__va_list_tag]* %vl to i8*
-  call void @llvm.va_start(i8* nonnull %0)
+  call void @llvm.va_start(ptr nonnull %vl)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/frame-25.ll b/llvm/test/CodeGen/SystemZ/frame-25.ll
index f6b54c0b25075..d50eac2c5a03c 100644
--- a/llvm/test/CodeGen/SystemZ/frame-25.ll
+++ b/llvm/test/CodeGen/SystemZ/frame-25.ll
@@ -16,8 +16,7 @@ define void @fun0() #0 {
 
 entry:
   %b = alloca [16 x i8], align 1
-  %0 = getelementptr inbounds [16 x i8], [16 x i8]* %b, i64 0, i64 0
-  call void asm "stcke $0", "=*Q"([16 x i8]* elementtype([16 x i8]) nonnull %b) #2
+  call void asm "stcke $0", "=*Q"(ptr elementtype([16 x i8]) nonnull %b) #2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/frameaddr-01.ll b/llvm/test/CodeGen/SystemZ/frameaddr-01.ll
index 4dfdf308e8a63..db3d7b33f94ca 100644
--- a/llvm/test/CodeGen/SystemZ/frameaddr-01.ll
+++ b/llvm/test/CodeGen/SystemZ/frameaddr-01.ll
@@ -2,18 +2,18 @@
 
 ; The current function's frame address is the address of
 ; the optional back chain slot.
-define i8* @fp0() nounwind {
+define ptr @fp0() nounwind {
 entry:
 ; CHECK-LABEL: fp0:
 ; CHECK: la   %r2, 0(%r15)
 ; CHECK: br   %r14
-  %0 = tail call i8* @llvm.frameaddress(i32 0)
-  ret i8* %0
+  %0 = tail call ptr @llvm.frameaddress(i32 0)
+  ret ptr %0
 }
 
 ; Check that the frame address is correct in a presence
 ; of a stack frame.
-define i8* @fp0f() nounwind {
+define ptr @fp0f() nounwind {
 entry:
 ; CHECK-LABEL: fp0f:
 ; CHECK: aghi %r15, -168
@@ -21,8 +21,8 @@ entry:
 ; CHECK: aghi %r15, 168
 ; CHECK: br   %r14
   %0 = alloca i64, align 8
-  %1 = tail call i8* @llvm.frameaddress(i32 0)
-  ret i8* %1
+  %1 = tail call ptr @llvm.frameaddress(i32 0)
+  ret ptr %1
 }
 
-declare i8* @llvm.frameaddress(i32) nounwind readnone
+declare ptr @llvm.frameaddress(i32) nounwind readnone

diff  --git a/llvm/test/CodeGen/SystemZ/frameaddr-02.ll b/llvm/test/CodeGen/SystemZ/frameaddr-02.ll
index 4d87f433958dd..a5e7e701c30e2 100644
--- a/llvm/test/CodeGen/SystemZ/frameaddr-02.ll
+++ b/llvm/test/CodeGen/SystemZ/frameaddr-02.ll
@@ -4,16 +4,16 @@
 
 ; With back chain
 attributes #0 = { nounwind "packed-stack" "backchain" "use-soft-float"="true" }
-define i8* @fp0() #0 {
+define ptr @fp0() #0 {
 entry:
 ; CHECK-LABEL: fp0:
 ; CHECK:      la   %r2, 152(%r15)
 ; CHECK-NEXT: br   %r14
-  %0 = tail call i8* @llvm.frameaddress(i32 0)
-  ret i8* %0
+  %0 = tail call ptr @llvm.frameaddress(i32 0)
+  ret ptr %0
 }
 
-define i8* @fp0f() #0 {
+define ptr @fp0f() #0 {
 entry:
 ; CHECK-LABEL: fp0f:
 ; CHECK:      lgr	%r1, %r15
@@ -23,25 +23,25 @@ entry:
 ; CHECK-NEXT: aghi	%r15, 16
 ; CHECK-NEXT: br	%r14
   %0 = alloca i64, align 8
-  %1 = tail call i8* @llvm.frameaddress(i32 0)
-  ret i8* %1
+  %1 = tail call ptr @llvm.frameaddress(i32 0)
+  ret ptr %1
 }
 
 ; Without back chain
 
 attributes #1 = { nounwind "packed-stack" }
-define i8* @fp1() #1 {
+define ptr @fp1() #1 {
 entry:
 ; CHECK-LABEL: fp1:
 ; CHECK:      la   %r2, 152(%r15)
 ; CHECK-NEXT: br   %r14
-  %0 = tail call i8* @llvm.frameaddress(i32 0)
-  ret i8* %0
+  %0 = tail call ptr @llvm.frameaddress(i32 0)
+  ret ptr %0
 }
 
 ; No saved registers: returning address of unused slot where backcahin would
 ; have been located.
-define i8* @fp1f() #1 {
+define ptr @fp1f() #1 {
 entry:
 ; CHECK-LABEL: fp1f:
 ; CHECK:      aghi	%r15, -16
@@ -49,13 +49,13 @@ entry:
 ; CHECK-NEXT: aghi	%r15, 16
 ; CHECK-NEXT: br	%r14
   %0 = alloca i64, align 8
-  %1 = tail call i8* @llvm.frameaddress(i32 0)
-  ret i8* %1
+  %1 = tail call ptr @llvm.frameaddress(i32 0)
+  ret ptr %1
 }
 
 ; Saved registers: returning address for first saved GPR.
-declare void @foo(i8* %Arg)
-define i8* @fp2() #1 {
+declare void @foo(ptr %Arg)
+define ptr @fp2() #1 {
 entry:
 ; CHECK-LABEL: fp2:
 ; CHECK:      stmg      %r14, %r15, 144(%r15)
@@ -65,9 +65,9 @@ entry:
 ; CHECK-NEXT: la	%r2, 168(%r15)
 ; CHECK-NEXT: lmg       %r14, %r15, 160(%r15)
 ; CHECK-NEXT: br	%r14
-  %0 = tail call i8* @llvm.frameaddress(i32 0)
-  call void @foo(i8* %0);
-  ret i8* %0
+  %0 = tail call ptr @llvm.frameaddress(i32 0)
+  call void @foo(ptr %0);
+  ret ptr %0
 }
 
-declare i8* @llvm.frameaddress(i32) nounwind readnone
+declare ptr @llvm.frameaddress(i32) nounwind readnone

diff  --git a/llvm/test/CodeGen/SystemZ/function-attributes-01.ll b/llvm/test/CodeGen/SystemZ/function-attributes-01.ll
index 99d96a6cd05ee..22cbce9ce77cc 100644
--- a/llvm/test/CodeGen/SystemZ/function-attributes-01.ll
+++ b/llvm/test/CodeGen/SystemZ/function-attributes-01.ll
@@ -10,7 +10,7 @@
 ; Test per function attributes and command line arguments that override them.
 
 attributes #1 = { "target-cpu"="z14" "target-features"="+vector" "use-soft-float"="false" }
-define double @fun1(double* %A) #1 {
+define double @fun1(ptr %A) #1 {
 ; CHECK-LABEL: fun1:
 ; DEFAULT:     ld %f0, 0(%r2)
 ; SOFT-FLOAT:  lg %r2, 0(%r2)
@@ -18,12 +18,12 @@ define double @fun1(double* %A) #1 {
 ; NO-VECTOR:   ld %f0, 0(%r2)
 ; CHECK-NEXT:  br %r14
 entry:
-  %0 = load double, double* %A
+  %0 = load double, ptr %A
   ret double %0
 }
 
 attributes #2 = { "target-cpu"="z14" "target-features"="+vector" "use-soft-float"="true" }
-define double @fun2(double* %A) #2 {
+define double @fun2(ptr %A) #2 {
 ; CHECK-LABEL: fun2:
 ; DEFAULT:     lg %r2, 0(%r2)
 ; SOFT-FLOAT:  lg %r2, 0(%r2)
@@ -31,12 +31,12 @@ define double @fun2(double* %A) #2 {
 ; NO-VECTOR:   lg %r2, 0(%r2)
 ; CHECK-NEXT:  br %r14
 entry:
-  %0 = load double, double* %A
+  %0 = load double, ptr %A
   ret double %0
 }
 
 attributes #3 = { "target-cpu"="z14" "target-features"="+vector" "use-soft-float"="false" }
-define <2 x double> @fun3(<2 x double>* %A) #3 {
+define <2 x double> @fun3(ptr %A) #3 {
 ; CHECK-LABEL:     fun3:
 ; DEFAULT:         vl %v24, 0(%r2), 3
 ; SOFT-FLOAT:      lg %r0, 0(%r2)
@@ -47,12 +47,12 @@ define <2 x double> @fun3(<2 x double>* %A) #3 {
 ; NO-VECTOR-NEXT:  ld %f2, 8(%r2)
 ; CHECK-NEXT:      br %r14
 entry:
-  %0 = load <2 x double>, <2 x double>* %A
+  %0 = load <2 x double>, ptr %A
   ret <2 x double> %0
 }
 
 attributes #4 = { "target-cpu"="z14" "target-features"="+vector" "use-soft-float"="true" }
-define <2 x double> @fun4(<2 x double>* %A) #4 {
+define <2 x double> @fun4(ptr %A) #4 {
 ; CHECK-LABEL:     fun4:
 ; DEFAULT:         lg %r0, 0(%r2)
 ; DEFAULT-NEXT:    lg %r3, 8(%r2)
@@ -68,12 +68,12 @@ define <2 x double> @fun4(<2 x double>* %A) #4 {
 ; NO-VECTOR-NEXT:  lgr %r2, %r0
 ; CHECK-NEXT:      br %r14
 entry:
-  %0 = load <2 x double>, <2 x double>* %A
+  %0 = load <2 x double>, ptr %A
   ret <2 x double> %0
 }
 
 attributes #5 = { "target-cpu"="z14" "target-features"="-vector" "use-soft-float"="false" }
-define <2 x double> @fun5(<2 x double>* %A) #5 {
+define <2 x double> @fun5(ptr %A) #5 {
 ; CHECK-LABEL:     fun5:
 ; DEFAULT:         ld %f0, 0(%r2)
 ; DEFAULT-NEXT:    ld %f2, 8(%r2)
@@ -86,12 +86,12 @@ define <2 x double> @fun5(<2 x double>* %A) #5 {
 ; NO-VECTOR-NEXT:  ld %f2, 8(%r2)
 ; CHECK-NEXT:      br %r14
 entry:
-  %0 = load <2 x double>, <2 x double>* %A
+  %0 = load <2 x double>, ptr %A
   ret <2 x double> %0
 }
 
 attributes #6 = { "target-cpu"="zEC12" "use-soft-float"="false" }
-define <2 x double> @fun6(<2 x double>* %A) #6 {
+define <2 x double> @fun6(ptr %A) #6 {
 ; CHECK-LABEL:     fun6:
 ; DEFAULT:         ld %f0, 0(%r2)
 ; DEFAULT-NEXT:    ld %f2, 8(%r2)
@@ -104,12 +104,12 @@ define <2 x double> @fun6(<2 x double>* %A) #6 {
 ; NO-VECTOR-NEXT:  ld %f2, 8(%r2)
 ; CHECK-NEXT:      br %r14
 entry:
-  %0 = load <2 x double>, <2 x double>* %A
+  %0 = load <2 x double>, ptr %A
   ret <2 x double> %0
 }
 
 attributes #7 = { "target-cpu"="zEC12" "target-features"="+vector" "use-soft-float"="false" }
-define <2 x double> @fun7(<2 x double>* %A) #7 {
+define <2 x double> @fun7(ptr %A) #7 {
 ; CHECK-LABEL:     fun7:
 ; DEFAULT:         vl %v24, 0(%r2), 3
 ; SOFT-FLOAT:      lg %r0, 0(%r2)
@@ -120,6 +120,6 @@ define <2 x double> @fun7(<2 x double>* %A) #7 {
 ; NO-VECTOR-NEXT:  ld %f2, 8(%r2)
 ; CHECK-NEXT:      br %r14
 entry:
-  %0 = load <2 x double>, <2 x double>* %A
+  %0 = load <2 x double>, ptr %A
   ret <2 x double> %0
 }

diff  --git a/llvm/test/CodeGen/SystemZ/ghc-cc-01.ll b/llvm/test/CodeGen/SystemZ/ghc-cc-01.ll
index 9a26dda85d85d..bdf0624a5b01d 100644
--- a/llvm/test/CodeGen/SystemZ/ghc-cc-01.ll
+++ b/llvm/test/CodeGen/SystemZ/ghc-cc-01.ll
@@ -67,30 +67,30 @@ entry:
   ; CHECK-NEXT: lgrl    %r10, hp
   ; CHECK-NEXT: lgrl    %r8,  sp
   ; CHECK-NEXT: lgrl    %r7,  base
-  %0  = load double, double* @d6
-  %1  = load double, double* @d5
-  %2  = load double, double* @d4
-  %3  = load double, double* @d3
-  %4  = load double, double* @d2
-  %5  = load double, double* @d1
-  %6  = load float, float* @f6
-  %7  = load float, float* @f5
-  %8  = load float, float* @f4
-  %9  = load float, float* @f3
-  %10 = load float, float* @f2
-  %11 = load float, float* @f1
-  %12 = load i64, i64* @splim
-  %13 = load i64, i64* @r8
-  %14 = load i64, i64* @r7
-  %15 = load i64, i64* @r6
-  %16 = load i64, i64* @r5
-  %17 = load i64, i64* @r4
-  %18 = load i64, i64* @r3
-  %19 = load i64, i64* @r2
-  %20 = load i64, i64* @r1
-  %21 = load i64, i64* @hp
-  %22 = load i64, i64* @sp
-  %23 = load i64, i64* @base
+  %0  = load double, ptr @d6
+  %1  = load double, ptr @d5
+  %2  = load double, ptr @d4
+  %3  = load double, ptr @d3
+  %4  = load double, ptr @d2
+  %5  = load double, ptr @d1
+  %6  = load float, ptr @f6
+  %7  = load float, ptr @f5
+  %8  = load float, ptr @f4
+  %9  = load float, ptr @f3
+  %10 = load float, ptr @f2
+  %11 = load float, ptr @f1
+  %12 = load i64, ptr @splim
+  %13 = load i64, ptr @r8
+  %14 = load i64, ptr @r7
+  %15 = load i64, ptr @r6
+  %16 = load i64, ptr @r5
+  %17 = load i64, ptr @r4
+  %18 = load i64, ptr @r3
+  %19 = load i64, ptr @r2
+  %20 = load i64, ptr @r1
+  %21 = load i64, ptr @hp
+  %22 = load i64, ptr @sp
+  %23 = load i64, ptr @base
   ; CHECK: brasl %r14, bar
   tail call ghccc void @bar(i64 %23, i64 %22, i64 %21, i64 %20, i64 %19, i64 %18, i64 %17, i64 %16, i64 %15, i64 %14, i64 %13, i64 %12,
                             float %11, float %10, float %9, float %8, float %7, float %6,

diff  --git a/llvm/test/CodeGen/SystemZ/ghc-cc-04.ll b/llvm/test/CodeGen/SystemZ/ghc-cc-04.ll
index d6b089808cf76..a4f0c06414141 100644
--- a/llvm/test/CodeGen/SystemZ/ghc-cc-04.ll
+++ b/llvm/test/CodeGen/SystemZ/ghc-cc-04.ll
@@ -7,10 +7,10 @@
 
 define ghccc void @foo() nounwind {
 entry:
-  call void @bar(i32 *@x)
+  call void @bar(ptr at x)
   ret void
 }
 
-declare void @bar(i32*)
+declare void @bar(ptr)
 
 ; CHECK: LLVM ERROR: In GHC calling convention TLS is not supported

diff  --git a/llvm/test/CodeGen/SystemZ/ghc-cc-05.ll b/llvm/test/CodeGen/SystemZ/ghc-cc-05.ll
index 68c0ee2e9ed9d..21f95ed969e29 100644
--- a/llvm/test/CodeGen/SystemZ/ghc-cc-05.ll
+++ b/llvm/test/CodeGen/SystemZ/ghc-cc-05.ll
@@ -5,12 +5,12 @@
 
 define ghccc void @foo() nounwind {
 entry:
-  %0 = call i8* @llvm.stacksave()
-  call void @llvm.stackrestore(i8* %0)
+  %0 = call ptr @llvm.stacksave()
+  call void @llvm.stackrestore(ptr %0)
   ret void
 }
 
-declare i8* @llvm.stacksave()
-declare void @llvm.stackrestore(i8*)
+declare ptr @llvm.stacksave()
+declare void @llvm.stackrestore(ptr)
 
 ; CHECK: LLVM ERROR: Variable-sized stack allocations are not supported in GHC calling convention

diff  --git a/llvm/test/CodeGen/SystemZ/hoist-const-stores.ll b/llvm/test/CodeGen/SystemZ/hoist-const-stores.ll
index 9ebc87d841149..e87c727103ed2 100644
--- a/llvm/test/CodeGen/SystemZ/hoist-const-stores.ll
+++ b/llvm/test/CodeGen/SystemZ/hoist-const-stores.ll
@@ -3,7 +3,7 @@
 @b = dso_local local_unnamed_addr global i32 15, align 4
 @e = dso_local local_unnamed_addr global i32 -1, align 4
 @f = common dso_local global i32 0, align 4
- at g = dso_local local_unnamed_addr global i32* @f, align 8
+ at g = dso_local local_unnamed_addr global ptr @f, align 8
 @c = common dso_local local_unnamed_addr global i32 0, align 4
 @a = common dso_local local_unnamed_addr global [6 x i32] zeroinitializer, align 4
 @d = common dso_local local_unnamed_addr global i32 0, align 4
@@ -14,25 +14,24 @@
 define dso_local signext i32 @main()  {
 entry:
   %i = alloca i32, align 4
-  %.pr = load i32, i32* @c, align 4, !tbaa !2
+  %.pr = load i32, ptr @c, align 4, !tbaa !2
   %cmp6 = icmp slt i32 %.pr, 6
   br i1 %cmp6, label %for.body.preheader, label %for.end
 
 for.body.preheader:                               ; preds = %entry
-  store i32 5, i32* getelementptr inbounds ([6 x i32], [6 x i32]* @a, i64 0, i64 1), align 4, !tbaa !2
-  store i32 6, i32* @c, align 4, !tbaa !2
+  store i32 5, ptr getelementptr inbounds ([6 x i32], ptr @a, i64 0, i64 1), align 4, !tbaa !2
+  store i32 6, ptr @c, align 4, !tbaa !2
   br label %for.end
 
 for.end:                                          ; preds = %for.body.preheader, %entry
-  %0 = bitcast i32* %i to i8*
-  call void @llvm.lifetime.start.p0i8(i64 4, i8* nonnull %0)
-  store i32 14, i32* %i, align 4, !tbaa !2
-  %.pr2 = load i32, i32* @d, align 4, !tbaa !2
+  call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %i)
+  store i32 14, ptr %i, align 4, !tbaa !2
+  %.pr2 = load i32, ptr @d, align 4, !tbaa !2
   %cmp25 = icmp sgt i32 %.pr2, -1
   br i1 %cmp25, label %for.cond4thread-pre-split.lr.ph, label %for.end.for.end11_crit_edge
 
 for.end.for.end11_crit_edge:                      ; preds = %for.end
-  %.pre10 = load i32, i32* @b, align 4, !tbaa !2
+  %.pre10 = load i32, ptr @b, align 4, !tbaa !2
   br label %for.end11
 
 ; CHECK: # %for.cond4thread-pre-split.lr.ph
@@ -41,100 +40,100 @@ for.end.for.end11_crit_edge:                      ; preds = %for.end
 ; CHECK: mvhi    164(%r15), 0
 
 for.cond4thread-pre-split.lr.ph:                  ; preds = %for.end
-  %1 = ptrtoint i32* %i to i64
-  %2 = trunc i64 %1 to i32
-  %3 = load i32*, i32** @g, align 8
-  %.pr3.pre = load i32, i32* @e, align 4, !tbaa !2
+  %0 = ptrtoint ptr %i to i64
+  %1 = trunc i64 %0 to i32
+  %2 = load ptr, ptr @g, align 8
+  %.pr3.pre = load i32, ptr @e, align 4, !tbaa !2
   br label %for.cond4thread-pre-split
 
 for.cond4thread-pre-split:                        ; preds = %for.cond4thread-pre-split.lr.ph, %for.end9
-  %4 = phi i32 [ %.pr2, %for.cond4thread-pre-split.lr.ph ], [ %dec, %for.end9 ]
-  %5 = phi i32 [ 14, %for.cond4thread-pre-split.lr.ph ], [ 0, %for.end9 ]
+  %3 = phi i32 [ %.pr2, %for.cond4thread-pre-split.lr.ph ], [ %dec, %for.end9 ]
+  %4 = phi i32 [ 14, %for.cond4thread-pre-split.lr.ph ], [ 0, %for.end9 ]
   %.pr3 = phi i32 [ %.pr3.pre, %for.cond4thread-pre-split.lr.ph ], [ %.pr37, %for.end9 ]
   %cmp54 = icmp slt i32 %.pr3, 1
   br i1 %cmp54, label %for.body6.preheader, label %for.end9
 
 for.body6.preheader:                              ; preds = %for.cond4thread-pre-split
-  store i32 %5, i32* %3, align 4, !tbaa !2
-  %6 = load i32, i32* @e, align 4, !tbaa !2
-  %inc811 = add nsw i32 %6, 1
-  store i32 %inc811, i32* @e, align 4, !tbaa !2
-  %cmp512 = icmp slt i32 %6, 0
+  store i32 %4, ptr %2, align 4, !tbaa !2
+  %5 = load i32, ptr @e, align 4, !tbaa !2
+  %inc811 = add nsw i32 %5, 1
+  store i32 %inc811, ptr @e, align 4, !tbaa !2
+  %cmp512 = icmp slt i32 %5, 0
   br i1 %cmp512, label %for.body6.for.body6_crit_edge, label %for.end9.loopexit
 
 for.body6.for.body6_crit_edge:                    ; preds = %for.body6.preheader, %for.body6.for.body6_crit_edge.3
-  %.pre = load i32, i32* %i, align 4, !tbaa !2
-  store i32 %.pre, i32* %3, align 4, !tbaa !2
-  %7 = load i32, i32* @e, align 4, !tbaa !2
-  %inc8 = add nsw i32 %7, 1
-  store i32 %inc8, i32* @e, align 4, !tbaa !2
-  %cmp5 = icmp slt i32 %7, 0
+  %.pre = load i32, ptr %i, align 4, !tbaa !2
+  store i32 %.pre, ptr %2, align 4, !tbaa !2
+  %6 = load i32, ptr @e, align 4, !tbaa !2
+  %inc8 = add nsw i32 %6, 1
+  store i32 %inc8, ptr @e, align 4, !tbaa !2
+  %cmp5 = icmp slt i32 %6, 0
   br i1 %cmp5, label %for.body6.for.body6_crit_edge.1, label %for.end9.loopexit
 
 for.end9.loopexit:                                ; preds = %for.body6.for.body6_crit_edge, %for.body6.for.body6_crit_edge.1, %for.body6.for.body6_crit_edge.2, %for.body6.for.body6_crit_edge.3, %for.body6.preheader
   %inc8.lcssa = phi i32 [ %inc811, %for.body6.preheader ], [ %inc8, %for.body6.for.body6_crit_edge ], [ %inc8.1, %for.body6.for.body6_crit_edge.1 ], [ %inc8.2, %for.body6.for.body6_crit_edge.2 ], [ %inc8.3, %for.body6.for.body6_crit_edge.3 ]
-  %.pre9 = load i32, i32* @d, align 4, !tbaa !2
+  %.pre9 = load i32, ptr @d, align 4, !tbaa !2
   br label %for.end9
 
 for.end9:                                         ; preds = %for.end9.loopexit, %for.cond4thread-pre-split
-  %8 = phi i32 [ %.pre9, %for.end9.loopexit ], [ %4, %for.cond4thread-pre-split ]
+  %7 = phi i32 [ %.pre9, %for.end9.loopexit ], [ %3, %for.cond4thread-pre-split ]
   %.pr37 = phi i32 [ %inc8.lcssa, %for.end9.loopexit ], [ %.pr3, %for.cond4thread-pre-split ]
-  store i32 %2, i32* @h, align 4, !tbaa !2
-  store i32 0, i32* %i, align 4, !tbaa !2
-  %9 = load i32, i32* @b, align 4, !tbaa !2
-  %10 = load i32, i32* @f, align 4, !tbaa !2
-  %xor = xor i32 %10, %9
+  store i32 %1, ptr @h, align 4, !tbaa !2
+  store i32 0, ptr %i, align 4, !tbaa !2
+  %8 = load i32, ptr @b, align 4, !tbaa !2
+  %9 = load i32, ptr @f, align 4, !tbaa !2
+  %xor = xor i32 %9, %8
   %idxprom = sext i32 %xor to i64
-  %arrayidx = getelementptr inbounds [6 x i32], [6 x i32]* @a, i64 0, i64 %idxprom
-  %11 = load i32, i32* %arrayidx, align 4, !tbaa !2
-  store i32 %11, i32* @b, align 4, !tbaa !2
-  %dec = add nsw i32 %8, -1
-  store i32 %dec, i32* @d, align 4, !tbaa !2
-  %cmp2 = icmp sgt i32 %8, 0
+  %arrayidx = getelementptr inbounds [6 x i32], ptr @a, i64 0, i64 %idxprom
+  %10 = load i32, ptr %arrayidx, align 4, !tbaa !2
+  store i32 %10, ptr @b, align 4, !tbaa !2
+  %dec = add nsw i32 %7, -1
+  store i32 %dec, ptr @d, align 4, !tbaa !2
+  %cmp2 = icmp sgt i32 %7, 0
   br i1 %cmp2, label %for.cond4thread-pre-split, label %for.end11
 
 for.end11:                                        ; preds = %for.end9, %for.end.for.end11_crit_edge
-  %12 = phi i32 [ %.pre10, %for.end.for.end11_crit_edge ], [ %11, %for.end9 ]
-  %call = call signext i32 (i8*, ...) @printf(i8* getelementptr inbounds ([15 x i8], [15 x i8]* @.str, i64 0, i64 0), i32 signext %12)
-  call void @llvm.lifetime.end.p0i8(i64 4, i8* nonnull %0)
+  %11 = phi i32 [ %.pre10, %for.end.for.end11_crit_edge ], [ %10, %for.end9 ]
+  %call = call signext i32 (ptr, ...) @printf(ptr @.str, i32 signext %11)
+  call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %i)
   ret i32 0
 
 for.body6.for.body6_crit_edge.1:                  ; preds = %for.body6.for.body6_crit_edge
-  %.pre.1 = load i32, i32* %i, align 4, !tbaa !2
-  store i32 %.pre.1, i32* %3, align 4, !tbaa !2
-  %13 = load i32, i32* @e, align 4, !tbaa !2
-  %inc8.1 = add nsw i32 %13, 1
-  store i32 %inc8.1, i32* @e, align 4, !tbaa !2
-  %cmp5.1 = icmp slt i32 %13, 0
+  %.pre.1 = load i32, ptr %i, align 4, !tbaa !2
+  store i32 %.pre.1, ptr %2, align 4, !tbaa !2
+  %12 = load i32, ptr @e, align 4, !tbaa !2
+  %inc8.1 = add nsw i32 %12, 1
+  store i32 %inc8.1, ptr @e, align 4, !tbaa !2
+  %cmp5.1 = icmp slt i32 %12, 0
   br i1 %cmp5.1, label %for.body6.for.body6_crit_edge.2, label %for.end9.loopexit
 
 for.body6.for.body6_crit_edge.2:                  ; preds = %for.body6.for.body6_crit_edge.1
-  %.pre.2 = load i32, i32* %i, align 4, !tbaa !2
-  store i32 %.pre.2, i32* %3, align 4, !tbaa !2
-  %14 = load i32, i32* @e, align 4, !tbaa !2
-  %inc8.2 = add nsw i32 %14, 1
-  store i32 %inc8.2, i32* @e, align 4, !tbaa !2
-  %cmp5.2 = icmp slt i32 %14, 0
+  %.pre.2 = load i32, ptr %i, align 4, !tbaa !2
+  store i32 %.pre.2, ptr %2, align 4, !tbaa !2
+  %13 = load i32, ptr @e, align 4, !tbaa !2
+  %inc8.2 = add nsw i32 %13, 1
+  store i32 %inc8.2, ptr @e, align 4, !tbaa !2
+  %cmp5.2 = icmp slt i32 %13, 0
   br i1 %cmp5.2, label %for.body6.for.body6_crit_edge.3, label %for.end9.loopexit
 
 for.body6.for.body6_crit_edge.3:                  ; preds = %for.body6.for.body6_crit_edge.2
-  %.pre.3 = load i32, i32* %i, align 4, !tbaa !2
-  store i32 %.pre.3, i32* %3, align 4, !tbaa !2
-  %15 = load i32, i32* @e, align 4, !tbaa !2
-  %inc8.3 = add nsw i32 %15, 1
-  store i32 %inc8.3, i32* @e, align 4, !tbaa !2
-  %cmp5.3 = icmp slt i32 %15, 0
+  %.pre.3 = load i32, ptr %i, align 4, !tbaa !2
+  store i32 %.pre.3, ptr %2, align 4, !tbaa !2
+  %14 = load i32, ptr @e, align 4, !tbaa !2
+  %inc8.3 = add nsw i32 %14, 1
+  store i32 %inc8.3, ptr @e, align 4, !tbaa !2
+  %cmp5.3 = icmp slt i32 %14, 0
   br i1 %cmp5.3, label %for.body6.for.body6_crit_edge, label %for.end9.loopexit
 }
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
 
 ; Function Attrs: argmemonly nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
 
 ; Function Attrs: nounwind
-declare dso_local signext i32 @printf(i8* nocapture readonly, ...)
+declare dso_local signext i32 @printf(ptr nocapture readonly, ...)
 
 !llvm.module.flags = !{!0}
 

diff  --git a/llvm/test/CodeGen/SystemZ/htm-intrinsics.ll b/llvm/test/CodeGen/SystemZ/htm-intrinsics.ll
index 107059f5cd839..c6ee8042a5f2a 100644
--- a/llvm/test/CodeGen/SystemZ/htm-intrinsics.ll
+++ b/llvm/test/CodeGen/SystemZ/htm-intrinsics.ll
@@ -2,12 +2,12 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=zEC12 | FileCheck %s
 
-declare i32 @llvm.s390.tbegin(i8 *, i32)
-declare i32 @llvm.s390.tbegin.nofloat(i8 *, i32)
-declare void @llvm.s390.tbeginc(i8 *, i32)
+declare i32 @llvm.s390.tbegin(ptr, i32)
+declare i32 @llvm.s390.tbegin.nofloat(ptr, i32)
+declare void @llvm.s390.tbeginc(ptr, i32)
 declare i32 @llvm.s390.tend()
 declare void @llvm.s390.tabort(i64)
-declare void @llvm.s390.ntstg(i64, i64 *)
+declare void @llvm.s390.ntstg(i64, ptr)
 declare i32 @llvm.s390.etnd()
 declare void @llvm.s390.ppa.txassist(i32)
 
@@ -33,7 +33,7 @@ define void @test_tbegin() {
 ; CHECK: ld %f14,
 ; CHECK: ld %f15,
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin(i8 *null, i32 65292)
+  call i32 @llvm.s390.tbegin(ptr null, i32 65292)
   ret void
 }
 
@@ -44,7 +44,7 @@ define void @test_tbegin_nofloat1() {
 ; CHECK-NOT: std
 ; CHECK: tbegin 0, 65292
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 65292)
+  call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 65292)
   ret void
 }
 
@@ -57,12 +57,12 @@ define i32 @test_tbegin_nofloat2() {
 ; CHECK: ipm %r2
 ; CHECK: srl %r2, 28
 ; CHECK: br %r14
-  %res = call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 65292)
+  %res = call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 65292)
   ret i32 %res
 }
 
 ; TBEGIN (nofloat) with implicit CC check.
-define void @test_tbegin_nofloat3(i32 *%ptr) {
+define void @test_tbegin_nofloat3(ptr %ptr) {
 ; CHECK-LABEL: test_tbegin_nofloat3:
 ; CHECK-NOT: stmg
 ; CHECK-NOT: std
@@ -70,12 +70,12 @@ define void @test_tbegin_nofloat3(i32 *%ptr) {
 ; CHECK: bnhr %r14
 ; CHECK: mvhi 0(%r2), 0
 ; CHECK: br %r14
-  %res = call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 65292)
+  %res = call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 65292)
   %cmp = icmp eq i32 %res, 2
   br i1 %cmp, label %if.then, label %if.end
 
 if.then:                                          ; preds = %entry
-  store i32 0, i32* %ptr, align 4
+  store i32 0, ptr %ptr, align 4
   br label %if.end
 
 if.end:                                           ; preds = %if.then, %entry
@@ -83,7 +83,7 @@ if.end:                                           ; preds = %if.then, %entry
 }
 
 ; TBEGIN (nofloat) with dual CC use.
-define i32 @test_tbegin_nofloat4(i32 %pad, i32 *%ptr) {
+define i32 @test_tbegin_nofloat4(i32 %pad, ptr %ptr) {
 ; CHECK-LABEL: test_tbegin_nofloat4:
 ; CHECK-NOT: stmg
 ; CHECK-NOT: std
@@ -93,12 +93,12 @@ define i32 @test_tbegin_nofloat4(i32 %pad, i32 *%ptr) {
 ; CHECK: ciblh %r2, 2, 0(%r14)
 ; CHECK: mvhi 0(%r3), 0
 ; CHECK: br %r14
-  %res = call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 65292)
+  %res = call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 65292)
   %cmp = icmp eq i32 %res, 2
   br i1 %cmp, label %if.then, label %if.end
 
 if.then:                                          ; preds = %entry
-  store i32 0, i32* %ptr, align 4
+  store i32 0, ptr %ptr, align 4
   br label %if.end
 
 if.end:                                           ; preds = %if.then, %entry
@@ -106,13 +106,13 @@ if.end:                                           ; preds = %if.then, %entry
 }
 
 ; TBEGIN (nofloat) with register.
-define void @test_tbegin_nofloat5(i8 *%ptr) {
+define void @test_tbegin_nofloat5(ptr %ptr) {
 ; CHECK-LABEL: test_tbegin_nofloat5:
 ; CHECK-NOT: stmg
 ; CHECK-NOT: std
 ; CHECK: tbegin 0(%r2), 65292
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin.nofloat(i8 *%ptr, i32 65292)
+  call i32 @llvm.s390.tbegin.nofloat(ptr %ptr, i32 65292)
   ret void
 }
 
@@ -123,7 +123,7 @@ define void @test_tbegin_nofloat6() {
 ; CHECK-NOT: std
 ; CHECK: tbegin 0, 3840
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 3840)
+  call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 3840)
   ret void
 }
 
@@ -134,7 +134,7 @@ define void @test_tbegin_nofloat7() {
 ; CHECK-NOT: std
 ; CHECK: tbegin 0, 61696
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 61696)
+  call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 61696)
   ret void
 }
 
@@ -145,7 +145,7 @@ define void @test_tbegin_nofloat8() {
 ; CHECK-NOT: std
 ; CHECK: tbegin 0, 65280
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 65024)
+  call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 65024)
   ret void
 }
 
@@ -156,7 +156,7 @@ define void @test_tbegin_nofloat9() {
 ; CHECK-NOT: std
 ; CHECK: tbegin 0, 64256
 ; CHECK: br %r14
-  call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 64256)
+  call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 64256)
   ret void
 }
 
@@ -168,7 +168,7 @@ define void @test_tbegin_nofloat10(i64 %n) {
 ; CHECK: tbegin 0, 65280
 ; CHECK: br %r14
   %buf = alloca i8, i64 %n
-  call i32 @llvm.s390.tbegin.nofloat(i8 *null, i32 64256)
+  call i32 @llvm.s390.tbegin.nofloat(ptr null, i32 64256)
   ret void
 }
 
@@ -179,7 +179,7 @@ define void @test_tbeginc() {
 ; CHECK-NOT: std
 ; CHECK: tbeginc 0, 65288
 ; CHECK: br %r14
-  call void @llvm.s390.tbeginc(i8 *null, i32 65288)
+  call void @llvm.s390.tbeginc(ptr null, i32 65288)
   ret void
 }
 
@@ -195,7 +195,7 @@ define i32 @test_tend1() {
 }
 
 ; TEND with implicit CC check.
-define void @test_tend3(i32 *%ptr) {
+define void @test_tend3(ptr %ptr) {
 ; CHECK-LABEL: test_tend3:
 ; CHECK: tend
 ; CHECK: ber %r14
@@ -206,7 +206,7 @@ define void @test_tend3(i32 *%ptr) {
   br i1 %cmp, label %if.then, label %if.end
 
 if.then:                                          ; preds = %entry
-  store i32 0, i32* %ptr, align 4
+  store i32 0, ptr %ptr, align 4
   br label %if.end
 
 if.end:                                           ; preds = %if.then, %entry
@@ -214,7 +214,7 @@ if.end:                                           ; preds = %if.then, %entry
 }
 
 ; TEND with dual CC use.
-define i32 @test_tend2(i32 %pad, i32 *%ptr) {
+define i32 @test_tend2(i32 %pad, ptr %ptr) {
 ; CHECK-LABEL: test_tend2:
 ; CHECK: tend
 ; CHECK: ipm %r2
@@ -227,7 +227,7 @@ define i32 @test_tend2(i32 %pad, i32 *%ptr) {
   br i1 %cmp, label %if.then, label %if.end
 
 if.then:                                          ; preds = %entry
-  store i32 0, i32* %ptr, align 4
+  store i32 0, ptr %ptr, align 4
   br label %if.end
 
 if.end:                                           ; preds = %if.then, %entry
@@ -272,63 +272,63 @@ define void @test_tabort4(i64 %val) {
 }
 
 ; NTSTG with base pointer only.
-define void @test_ntstg1(i64 *%ptr, i64 %val) {
+define void @test_ntstg1(ptr %ptr, i64 %val) {
 ; CHECK-LABEL: test_ntstg1:
 ; CHECK: ntstg %r3, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.s390.ntstg(i64 %val, i64 *%ptr)
+  call void @llvm.s390.ntstg(i64 %val, ptr %ptr)
   ret void
 }
 
 ; NTSTG with base and index.
 ; Check that VSTL doesn't allow an index.
-define void @test_ntstg2(i64 *%base, i64 %index, i64 %val) {
+define void @test_ntstg2(ptr %base, i64 %index, i64 %val) {
 ; CHECK-LABEL: test_ntstg2:
 ; CHECK: sllg [[REG:%r[1-5]]], %r3, 3
 ; CHECK: ntstg %r4, 0([[REG]],%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 %index
-  call void @llvm.s390.ntstg(i64 %val, i64 *%ptr)
+  %ptr = getelementptr i64, ptr %base, i64 %index
+  call void @llvm.s390.ntstg(i64 %val, ptr %ptr)
   ret void
 }
 
 ; NTSTG with the highest in-range displacement.
-define void @test_ntstg3(i64 *%base, i64 %val) {
+define void @test_ntstg3(ptr %base, i64 %val) {
 ; CHECK-LABEL: test_ntstg3:
 ; CHECK: ntstg %r3, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  call void @llvm.s390.ntstg(i64 %val, i64 *%ptr)
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  call void @llvm.s390.ntstg(i64 %val, ptr %ptr)
   ret void
 }
 
 ; NTSTG with an out-of-range positive displacement.
-define void @test_ntstg4(i64 *%base, i64 %val) {
+define void @test_ntstg4(ptr %base, i64 %val) {
 ; CHECK-LABEL: test_ntstg4:
 ; CHECK: ntstg %r3, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  call void @llvm.s390.ntstg(i64 %val, i64 *%ptr)
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  call void @llvm.s390.ntstg(i64 %val, ptr %ptr)
   ret void
 }
 
 ; NTSTG with the lowest in-range displacement.
-define void @test_ntstg5(i64 *%base, i64 %val) {
+define void @test_ntstg5(ptr %base, i64 %val) {
 ; CHECK-LABEL: test_ntstg5:
 ; CHECK: ntstg %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  call void @llvm.s390.ntstg(i64 %val, i64 *%ptr)
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  call void @llvm.s390.ntstg(i64 %val, ptr %ptr)
   ret void
 }
 
 ; NTSTG with an out-of-range negative displacement.
-define void @test_ntstg6(i64 *%base, i64 %val) {
+define void @test_ntstg6(ptr %base, i64 %val) {
 ; CHECK-LABEL: test_ntstg6:
 ; CHECK: ntstg %r3, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  call void @llvm.s390.ntstg(i64 %val, i64 *%ptr)
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  call void @llvm.s390.ntstg(i64 %val, ptr %ptr)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/inline-asm-addr.ll b/llvm/test/CodeGen/SystemZ/inline-asm-addr.ll
index 865363ba592e1..4de74fac9e8f1 100644
--- a/llvm/test/CodeGen/SystemZ/inline-asm-addr.ll
+++ b/llvm/test/CodeGen/SystemZ/inline-asm-addr.ll
@@ -1,7 +1,7 @@
 ; RUN: llc -mtriple=s390x-linux-gnu < %s | FileCheck %s
 
 @Addr = global i64 0, align 8
- at A = global i64* null, align 8
+ at A = global ptr null, align 8
 @Idx = global i64 0, align 8
 
 define i64 @fun_BD12_Q() {
@@ -9,10 +9,10 @@ define i64 @fun_BD12_Q() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 100
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 100
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -21,10 +21,10 @@ define i64 @fun_BD12_R() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 100
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZR"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 100
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -33,10 +33,10 @@ define i64 @fun_BD12_S() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 100
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZS"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 100
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -45,10 +45,10 @@ define i64 @fun_BD12_T() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 100
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZT"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 100
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -57,10 +57,10 @@ define i64 @fun_BD12_p() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 100
-  %1 = tail call i64 asm "lay $0, $1", "=r,p"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 100
+  %1 = tail call i64 asm "lay $0, $1", "=r,p"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -69,12 +69,12 @@ define i64 @fun_BDX12_Q() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 100
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -83,12 +83,12 @@ define i64 @fun_BDX12_R() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1,%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 100
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZR"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -97,12 +97,12 @@ define i64 @fun_BDX12_S() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 100
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZS"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -111,12 +111,12 @@ define i64 @fun_BDX12_T() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1,%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 100
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZT"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -125,12 +125,12 @@ define i64 @fun_BDX12_p() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 800(%r1,%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 100
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,p"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,p"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -139,10 +139,10 @@ define i64 @fun_BD20_Q() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 0(%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 1000
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -151,10 +151,10 @@ define i64 @fun_BD20_R() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 0(%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 1000
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZR"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -163,10 +163,10 @@ define i64 @fun_BD20_S() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 8000(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 1000
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZS"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -175,10 +175,10 @@ define i64 @fun_BD20_T() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 8000(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 1000
-  %1 = tail call i64 asm "lay $0, $1", "=r,^ZT"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000
+  %1 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -187,10 +187,10 @@ define i64 @fun_BD20_p() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 8000(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 1000
-  %1 = tail call i64 asm "lay $0, $1", "=r,p"(i64* nonnull %arrayidx)
-  store i64 %1, i64* @Addr
+  %0 = load ptr, ptr @A
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 1000
+  %1 = tail call i64 asm "lay $0, $1", "=r,p"(ptr nonnull %arrayidx)
+  store i64 %1, ptr @Addr
   ret i64 %1
 }
 
@@ -199,12 +199,12 @@ define i64 @fun_BDX20_Q() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 0(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 1000
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZQ"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -213,12 +213,12 @@ define i64 @fun_BDX20_R() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 0(%r1)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 1000
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZR"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZR"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -227,12 +227,12 @@ define i64 @fun_BDX20_S() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 8000(%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 1000
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZS"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZS"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -241,12 +241,12 @@ define i64 @fun_BDX20_T() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 8000(%r1,%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 1000
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,^ZT"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,^ZT"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }
 
@@ -255,11 +255,11 @@ define i64 @fun_BDX20_p() {
 ; CHECK: #APP
 ; CHECK: lay	%r2, 8000(%r1,%r2)
 entry:
-  %0 = load i64*, i64** @A
-  %1 = load i64, i64* @Idx
+  %0 = load ptr, ptr @A
+  %1 = load i64, ptr @Idx
   %add = add nsw i64 %1, 1000
-  %arrayidx = getelementptr inbounds i64, i64* %0, i64 %add
-  %2 = tail call i64 asm "lay $0, $1", "=r,p"(i64* %arrayidx)
-  store i64 %2, i64* @Addr
+  %arrayidx = getelementptr inbounds i64, ptr %0, i64 %add
+  %2 = tail call i64 asm "lay $0, $1", "=r,p"(ptr %arrayidx)
+  store i64 %2, ptr @Addr
   ret i64 %2
 }

diff  --git a/llvm/test/CodeGen/SystemZ/inline-asm-i128.ll b/llvm/test/CodeGen/SystemZ/inline-asm-i128.ll
index 1a6b764b6680c..d0000e26b65e6 100644
--- a/llvm/test/CodeGen/SystemZ/inline-asm-i128.ll
+++ b/llvm/test/CodeGen/SystemZ/inline-asm-i128.ll
@@ -4,7 +4,7 @@
 
 ; Test i128 (tied) operands.
 
-define i32 @fun0(i8* %p1, i32 signext %l1, i8* %p2, i32 signext %l2, i8 zeroext %pad) {
+define i32 @fun0(ptr %p1, i32 signext %l1, ptr %p2, i32 signext %l2, i8 zeroext %pad) {
 ; CHECK-LABEL: fun0:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lgr %r0, %r5
@@ -24,8 +24,8 @@ define i32 @fun0(i8* %p1, i32 signext %l1, i8* %p2, i32 signext %l2, i8 zeroext
 ; CHECK-NEXT:    srl %r2, 31
 ; CHECK-NEXT:    br %r14
 entry:
-  %0 = ptrtoint i8* %p1 to i64
-  %1 = ptrtoint i8* %p2 to i64
+  %0 = ptrtoint ptr %p1 to i64
+  %1 = ptrtoint ptr %p2 to i64
   %and5 = and i32 %l2, 16777215
   %2 = zext i32 %and5 to i64
   %conv7 = zext i8 %pad to i64
@@ -51,7 +51,7 @@ entry:
 }
 
 ; Test a phys-reg def.
-define void @fun1(i128* %Src, i128* %Dst) {
+define void @fun1(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun1:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    #APP
@@ -62,12 +62,12 @@ define void @fun1(i128* %Src, i128* %Dst) {
 ; CHECK-NEXT:    br %r14
 entry:
    %IAsm = call i128 asm "BLA $0", "={r4}"()
-  store volatile i128 %IAsm, i128* %Dst
+  store volatile i128 %IAsm, ptr %Dst
   ret void
 }
 
 ; Test a phys-reg use.
-define void @fun2(i128* %Src, i128* %Dst) {
+define void @fun2(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun2:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lg %r5, 8(%r2)
@@ -77,13 +77,13 @@ define void @fun2(i128* %Src, i128* %Dst) {
 ; CHECK-NEXT:    #NO_APP
 ; CHECK-NEXT:    br %r14
 entry:
-  %L = load i128, i128* %Src
+  %L = load i128, ptr %Src
   call void asm "BLA $0", "{r4}"(i128 %L)
   ret void
 }
 
 ; Test phys-reg use and phys-reg def.
-define void @fun3(i128* %Src, i128* %Dst) {
+define void @fun3(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun3:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lg %r1, 8(%r2)
@@ -95,14 +95,14 @@ define void @fun3(i128* %Src, i128* %Dst) {
 ; CHECK-NEXT:    stg %r4, 0(%r3)
 ; CHECK-NEXT:    br %r14
 entry:
-  %L = load i128, i128* %Src
+  %L = load i128, ptr %Src
   %IAsm = call i128 asm "BLA $0, $1", "={r4},{r0}"(i128 %L)
-  store volatile i128 %IAsm, i128* %Dst
+  store volatile i128 %IAsm, ptr %Dst
   ret void
 }
 
 ; Test a tied phys-reg.
-define void @fun4(i128* %Src, i128* %Dst) {
+define void @fun4(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun4:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    lg %r5, 8(%r2)
@@ -114,9 +114,9 @@ define void @fun4(i128* %Src, i128* %Dst) {
 ; CHECK-NEXT:    stg %r4, 0(%r3)
 ; CHECK-NEXT:    br %r14
 entry:
-  %L = load i128, i128* %Src
+  %L = load i128, ptr %Src
   %IAsm = call i128 asm "BLA $0, $1", "={r4},0"(i128 %L)
-  store volatile i128 %IAsm, i128* %Dst
+  store volatile i128 %IAsm, ptr %Dst
   ret void
 }
 
@@ -151,8 +151,8 @@ define i32 @fun6() {
 ; CHECK-NEXT:    stg %r3, 8(%r1)
 ; CHECK-NEXT:    br %r14
 entry:
-  %0 = load i128, i128* @V128
+  %0 = load i128, ptr @V128
   %1 = tail call i128 asm "ltgr ${0:N},${0:N}", "=&d,0"(i128 %0)
-  store i128 %1, i128* @V128
+  store i128 %1, ptr @V128
   ret i32 undef
 }

diff  --git a/llvm/test/CodeGen/SystemZ/inline-thresh-adjust.ll b/llvm/test/CodeGen/SystemZ/inline-thresh-adjust.ll
index f00f18359874a..f60626f4f36c4 100644
--- a/llvm/test/CodeGen/SystemZ/inline-thresh-adjust.ll
+++ b/llvm/test/CodeGen/SystemZ/inline-thresh-adjust.ll
@@ -6,27 +6,27 @@
 ; argument only as a memcpy source.
 
 ; CHECK: Inlining calls in: root_function
-; CHECK:     Inlining {{.*}} Call:   call void @leaf_function_A(i8* %Dst)
+; CHECK:     Inlining {{.*}} Call:   call void @leaf_function_A(ptr %Dst)
 ; CHECK:     ++ SZTTI Adding inlining bonus: 150
-; CHECK:     Inlining {{.*}} Call:   call void @leaf_function_B(i8* %Dst, i8* %Src)
+; CHECK:     Inlining {{.*}} Call:   call void @leaf_function_B(ptr %Dst, ptr %Src)
 
-define void @leaf_function_A(i8* %Dst)  {
+define void @leaf_function_A(ptr %Dst)  {
 entry:
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %Dst, i8* undef, i64 16, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %Dst, ptr undef, i64 16, i1 false)
   ret void
 }
 
-define void @leaf_function_B(i8* %Dst, i8* %Src)  {
+define void @leaf_function_B(ptr %Dst, ptr %Src)  {
 entry:
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %Dst, i8* %Src, i64 16, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %Dst, ptr %Src, i64 16, i1 false)
   ret void
 }
 
-define void @root_function(i8* %Dst, i8* %Src) {
+define void @root_function(ptr %Dst, ptr %Src) {
 entry:
-  call void @leaf_function_A(i8* %Dst)
-  call void @leaf_function_B(i8* %Dst, i8* %Src)
+  call void @leaf_function_A(ptr %Dst)
+  call void @leaf_function_B(ptr %Dst, ptr %Src)
   ret void
 }
 
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* noalias nocapture writeonly, i8* noalias nocapture readonly, i64, i1 immarg)
+declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg)

diff  --git a/llvm/test/CodeGen/SystemZ/inlineasm-output-template.ll b/llvm/test/CodeGen/SystemZ/inlineasm-output-template.ll
index 563bcba1eaee2..b599e254ee7e0 100644
--- a/llvm/test/CodeGen/SystemZ/inlineasm-output-template.ll
+++ b/llvm/test/CodeGen/SystemZ/inlineasm-output-template.ll
@@ -13,7 +13,7 @@ define dso_local i32 @test_inlineasm_c_output_template0() {
 ; CHECK: #TEST baz
 @baz = internal global i32 0, align 4
 define dso_local i32 @test_inlineasm_c_output_template2() {
-  tail call void asm sideeffect "#TEST ${0:c}", "i"(i32* nonnull @baz)
+  tail call void asm sideeffect "#TEST ${0:c}", "i"(ptr nonnull @baz)
   ret i32 42
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/insert-01.ll b/llvm/test/CodeGen/SystemZ/insert-01.ll
index e6f183eae4f39..b413e5fd9eb36 100644
--- a/llvm/test/CodeGen/SystemZ/insert-01.ll
+++ b/llvm/test/CodeGen/SystemZ/insert-01.ll
@@ -4,12 +4,12 @@
 
 ; Check a plain insertion with (or (and ... -0xff) (zext (load ....))).
 ; The whole sequence can be performed by IC.
-define i32 @f1(i32 %orig, i8 *%ptr) {
+define i32 @f1(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: ni
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %ptr1 = and i32 %orig, -256
   %or = or i32 %ptr1, %ptr2
@@ -17,12 +17,12 @@ define i32 @f1(i32 %orig, i8 *%ptr) {
 }
 
 ; Like f1, but with the operands reversed.
-define i32 @f2(i32 %orig, i8 *%ptr) {
+define i32 @f2(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: ni
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %ptr1 = and i32 %orig, -256
   %or = or i32 %ptr2, %ptr1
@@ -31,12 +31,12 @@ define i32 @f2(i32 %orig, i8 *%ptr) {
 
 ; Check a case where more bits than lower 8 are masked out of the
 ; register value.  We can use IC but must keep the original mask.
-define i32 @f3(i32 %orig, i8 *%ptr) {
+define i32 @f3(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: nill %r2, 65024
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %ptr1 = and i32 %orig, -512
   %or = or i32 %ptr1, %ptr2
@@ -44,12 +44,12 @@ define i32 @f3(i32 %orig, i8 *%ptr) {
 }
 
 ; Like f3, but with the operands reversed.
-define i32 @f4(i32 %orig, i8 *%ptr) {
+define i32 @f4(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: nill %r2, 65024
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %ptr1 = and i32 %orig, -512
   %or = or i32 %ptr2, %ptr1
@@ -57,12 +57,12 @@ define i32 @f4(i32 %orig, i8 *%ptr) {
 }
 
 ; Check a case where the low 8 bits are cleared by a shift left.
-define i32 @f5(i32 %orig, i8 *%ptr) {
+define i32 @f5(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: sll %r2, 8
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %ptr1 = shl i32 %orig, 8
   %or = or i32 %ptr1, %ptr2
@@ -70,12 +70,12 @@ define i32 @f5(i32 %orig, i8 *%ptr) {
 }
 
 ; Like f5, but with the operands reversed.
-define i32 @f6(i32 %orig, i8 *%ptr) {
+define i32 @f6(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: sll %r2, 8
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %ptr1 = shl i32 %orig, 8
   %or = or i32 %ptr2, %ptr1
@@ -83,36 +83,36 @@ define i32 @f6(i32 %orig, i8 *%ptr) {
 }
 
 ; Check insertions into a constant.
-define i32 @f7(i32 %orig, i8 *%ptr) {
+define i32 @f7(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: lhi %r2, 256
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %or = or i32 %ptr2, 256
   ret i32 %or
 }
 
 ; Like f7, but with the operands reversed.
-define i32 @f8(i32 %orig, i8 *%ptr) {
+define i32 @f8(i32 %orig, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: lhi %r2, 256
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i32
   %or = or i32 256, %ptr2
   ret i32 %or
 }
 
 ; Check the high end of the IC range.
-define i32 @f9(i32 %orig, i8 *%src) {
+define i32 @f9(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: ic %r2, 4095(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -120,12 +120,12 @@ define i32 @f9(i32 %orig, i8 *%src) {
 }
 
 ; Check the next byte up, which should use ICY instead of IC.
-define i32 @f10(i32 %orig, i8 *%src) {
+define i32 @f10(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: icy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -133,12 +133,12 @@ define i32 @f10(i32 %orig, i8 *%src) {
 }
 
 ; Check the high end of the ICY range.
-define i32 @f11(i32 %orig, i8 *%src) {
+define i32 @f11(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: icy %r2, 524287(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -147,13 +147,13 @@ define i32 @f11(i32 %orig, i8 *%src) {
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f12(i32 %orig, i8 *%src) {
+define i32 @f12(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -161,12 +161,12 @@ define i32 @f12(i32 %orig, i8 *%src) {
 }
 
 ; Check the high end of the negative ICY range.
-define i32 @f13(i32 %orig, i8 *%src) {
+define i32 @f13(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: icy %r2, -1(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -174,12 +174,12 @@ define i32 @f13(i32 %orig, i8 *%src) {
 }
 
 ; Check the low end of the ICY range.
-define i32 @f14(i32 %orig, i8 *%src) {
+define i32 @f14(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: icy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -188,13 +188,13 @@ define i32 @f14(i32 %orig, i8 *%src) {
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f15(i32 %orig, i8 *%src) {
+define i32 @f15(i32 %orig, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: agfi %r3, -524289
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -202,13 +202,13 @@ define i32 @f15(i32 %orig, i8 *%src) {
 }
 
 ; Check that IC allows an index.
-define i32 @f16(i32 %orig, i8 *%src, i64 %index) {
+define i32 @f16(i32 %orig, ptr %src, i64 %index) {
 ; CHECK-LABEL: f16:
 ; CHECK: ic %r2, 4095({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
-  %ptr1 = getelementptr i8, i8 *%src, i64 %index
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 4095
-  %val = load i8, i8 *%ptr2
+  %ptr1 = getelementptr i8, ptr %src, i64 %index
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 4095
+  %val = load i8, ptr %ptr2
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1
@@ -216,13 +216,13 @@ define i32 @f16(i32 %orig, i8 *%src, i64 %index) {
 }
 
 ; Check that ICY allows an index.
-define i32 @f17(i32 %orig, i8 *%src, i64 %index) {
+define i32 @f17(i32 %orig, ptr %src, i64 %index) {
 ; CHECK-LABEL: f17:
 ; CHECK: icy %r2, 4096({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
-  %ptr1 = getelementptr i8, i8 *%src, i64 %index
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 4096
-  %val = load i8, i8 *%ptr2
+  %ptr1 = getelementptr i8, ptr %src, i64 %index
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 4096
+  %val = load i8, ptr %ptr2
   %src2 = zext i8 %val to i32
   %src1 = and i32 %orig, -256
   %or = or i32 %src2, %src1

diff  --git a/llvm/test/CodeGen/SystemZ/insert-02.ll b/llvm/test/CodeGen/SystemZ/insert-02.ll
index bcc49524b8f26..c16c0f78b8994 100644
--- a/llvm/test/CodeGen/SystemZ/insert-02.ll
+++ b/llvm/test/CodeGen/SystemZ/insert-02.ll
@@ -4,12 +4,12 @@
 
 ; Check a plain insertion with (or (and ... -0xff) (zext (load ....))).
 ; The whole sequence can be performed by IC.
-define i64 @f1(i64 %orig, i8 *%ptr) {
+define i64 @f1(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: ni
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %ptr1 = and i64 %orig, -256
   %or = or i64 %ptr1, %ptr2
@@ -17,12 +17,12 @@ define i64 @f1(i64 %orig, i8 *%ptr) {
 }
 
 ; Like f1, but with the operands reversed.
-define i64 @f2(i64 %orig, i8 *%ptr) {
+define i64 @f2(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: ni
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %ptr1 = and i64 %orig, -256
   %or = or i64 %ptr2, %ptr1
@@ -31,12 +31,12 @@ define i64 @f2(i64 %orig, i8 *%ptr) {
 
 ; Check a case where more bits than lower 8 are masked out of the
 ; register value.  We can use IC but must keep the original mask.
-define i64 @f3(i64 %orig, i8 *%ptr) {
+define i64 @f3(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: nill %r2, 65024
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %ptr1 = and i64 %orig, -512
   %or = or i64 %ptr1, %ptr2
@@ -44,12 +44,12 @@ define i64 @f3(i64 %orig, i8 *%ptr) {
 }
 
 ; Like f3, but with the operands reversed.
-define i64 @f4(i64 %orig, i8 *%ptr) {
+define i64 @f4(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: nill %r2, 65024
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %ptr1 = and i64 %orig, -512
   %or = or i64 %ptr2, %ptr1
@@ -57,12 +57,12 @@ define i64 @f4(i64 %orig, i8 *%ptr) {
 }
 
 ; Check a case where the low 8 bits are cleared by a shift left.
-define i64 @f5(i64 %orig, i8 *%ptr) {
+define i64 @f5(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: sllg %r2, %r2, 8
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %ptr1 = shl i64 %orig, 8
   %or = or i64 %ptr1, %ptr2
@@ -70,12 +70,12 @@ define i64 @f5(i64 %orig, i8 *%ptr) {
 }
 
 ; Like f5, but with the operands reversed.
-define i64 @f6(i64 %orig, i8 *%ptr) {
+define i64 @f6(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: sllg %r2, %r2, 8
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %ptr1 = shl i64 %orig, 8
   %or = or i64 %ptr2, %ptr1
@@ -83,36 +83,36 @@ define i64 @f6(i64 %orig, i8 *%ptr) {
 }
 
 ; Check insertions into a constant.
-define i64 @f7(i64 %orig, i8 *%ptr) {
+define i64 @f7(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: lghi %r2, 256
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %or = or i64 %ptr2, 256
   ret i64 %or
 }
 
 ; Like f7, but with the operands reversed.
-define i64 @f8(i64 %orig, i8 *%ptr) {
+define i64 @f8(i64 %orig, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: lghi %r2, 256
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ptr2 = zext i8 %val to i64
   %or = or i64 256, %ptr2
   ret i64 %or
 }
 
 ; Check the high end of the IC range.
-define i64 @f9(i64 %orig, i8 *%src) {
+define i64 @f9(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: ic %r2, 4095(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -120,12 +120,12 @@ define i64 @f9(i64 %orig, i8 *%src) {
 }
 
 ; Check the next byte up, which should use ICY instead of IC.
-define i64 @f10(i64 %orig, i8 *%src) {
+define i64 @f10(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: icy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -133,12 +133,12 @@ define i64 @f10(i64 %orig, i8 *%src) {
 }
 
 ; Check the high end of the ICY range.
-define i64 @f11(i64 %orig, i8 *%src) {
+define i64 @f11(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: icy %r2, 524287(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -147,13 +147,13 @@ define i64 @f11(i64 %orig, i8 *%src) {
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f12(i64 %orig, i8 *%src) {
+define i64 @f12(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -161,12 +161,12 @@ define i64 @f12(i64 %orig, i8 *%src) {
 }
 
 ; Check the high end of the negative ICY range.
-define i64 @f13(i64 %orig, i8 *%src) {
+define i64 @f13(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: icy %r2, -1(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -174,12 +174,12 @@ define i64 @f13(i64 %orig, i8 *%src) {
 }
 
 ; Check the low end of the ICY range.
-define i64 @f14(i64 %orig, i8 *%src) {
+define i64 @f14(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: icy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -188,13 +188,13 @@ define i64 @f14(i64 %orig, i8 *%src) {
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f15(i64 %orig, i8 *%src) {
+define i64 @f15(i64 %orig, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: agfi %r3, -524289
 ; CHECK: ic %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %val = load i8, ptr %ptr
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -202,13 +202,13 @@ define i64 @f15(i64 %orig, i8 *%src) {
 }
 
 ; Check that IC allows an index.
-define i64 @f16(i64 %orig, i8 *%src, i64 %index) {
+define i64 @f16(i64 %orig, ptr %src, i64 %index) {
 ; CHECK-LABEL: f16:
 ; CHECK: ic %r2, 4095({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
-  %ptr1 = getelementptr i8, i8 *%src, i64 %index
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 4095
-  %val = load i8, i8 *%ptr2
+  %ptr1 = getelementptr i8, ptr %src, i64 %index
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 4095
+  %val = load i8, ptr %ptr2
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1
@@ -216,13 +216,13 @@ define i64 @f16(i64 %orig, i8 *%src, i64 %index) {
 }
 
 ; Check that ICY allows an index.
-define i64 @f17(i64 %orig, i8 *%src, i64 %index) {
+define i64 @f17(i64 %orig, ptr %src, i64 %index) {
 ; CHECK-LABEL: f17:
 ; CHECK: icy %r2, 4096({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
-  %ptr1 = getelementptr i8, i8 *%src, i64 %index
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 4096
-  %val = load i8, i8 *%ptr2
+  %ptr1 = getelementptr i8, ptr %src, i64 %index
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 4096
+  %val = load i8, ptr %ptr2
   %src2 = zext i8 %val to i64
   %src1 = and i64 %orig, -256
   %or = or i64 %src2, %src1

diff  --git a/llvm/test/CodeGen/SystemZ/insert-06.ll b/llvm/test/CodeGen/SystemZ/insert-06.ll
index 22a2a0f0999b2..7dff4014e0fc9 100644
--- a/llvm/test/CodeGen/SystemZ/insert-06.ll
+++ b/llvm/test/CodeGen/SystemZ/insert-06.ll
@@ -80,12 +80,12 @@ define i64 @f6(i64 %a, i32 %b) {
 
 ; Loads can be done directly into the low half.  The range of L is checked
 ; in the move tests.
-define i64 @f7(i64 %a, i32 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: {{%r[23]}}
 ; CHECK: l %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %low = zext i32 %b to i64
   %high = and i64 %a, -4294967296
   %res = or i64 %high, %low
@@ -93,12 +93,12 @@ define i64 @f7(i64 %a, i32 *%src) {
 }
 
 ; ...likewise extending loads.
-define i64 @f8(i64 %a, i8 *%src) {
+define i64 @f8(i64 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: {{%r[23]}}
 ; CHECK: lb %r2, 0(%r3)
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %b = sext i8 %byte to i32
   %low = zext i32 %b to i64
   %high = and i64 %a, -4294967296
@@ -180,12 +180,12 @@ define i64 @f14(i64 %a, i64 %b) {
 }
 
 ; Check another representation of f8.
-define i64 @f15(i64 %a, i8 *%src) {
+define i64 @f15(i64 %a, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: {{%r[23]}}
 ; CHECK: lb %r2, 0(%r3)
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %b = sext i8 %byte to i64
   %low = and i64 %b, 4294967295
   %high = and i64 %a, -4294967296

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-01.ll b/llvm/test/CodeGen/SystemZ/int-add-01.ll
index f72ec5e5e467a..9b714d8487406 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-01.ll
@@ -4,47 +4,47 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the AH range.
-define i32 @f1(i32 %lhs, i16 *%src) {
+define i32 @f1(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: ah %r2, 0(%r3)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the aligned AH range.
-define i32 @f2(i32 %lhs, i16 *%src) {
+define i32 @f2(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ah %r2, 4094(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the next halfword up, which should use AHY instead of AH.
-define i32 @f3(i32 %lhs, i16 *%src) {
+define i32 @f3(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ahy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the aligned AHY range.
-define i32 @f4(i32 %lhs, i16 *%src) {
+define i32 @f4(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ahy %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
@@ -52,37 +52,37 @@ define i32 @f4(i32 %lhs, i16 *%src) {
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f5(i32 %lhs, i16 *%src) {
+define i32 @f5(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ah %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the negative aligned AHY range.
-define i32 @f6(i32 %lhs, i16 *%src) {
+define i32 @f6(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ahy %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the low end of the AHY range.
-define i32 @f7(i32 %lhs, i16 *%src) {
+define i32 @f7(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ahy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
@@ -90,13 +90,13 @@ define i32 @f7(i32 %lhs, i16 *%src) {
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i32 %lhs, i16 *%src) {
+define i32 @f8(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -524290
 ; CHECK: ah %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
@@ -109,8 +109,8 @@ define i32 @f9(i32 %lhs, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res
@@ -123,8 +123,8 @@ define i32 @f10(i32 %lhs, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = add i32 %lhs, %rhs
   ret i32 %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-02.ll b/llvm/test/CodeGen/SystemZ/int-add-02.ll
index 4d13c0ef14416..7a2e3cb64726a 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-02.ll
@@ -15,92 +15,92 @@ define i32 @f1(i32 %a, i32 %b) {
 }
 
 ; Check the low end of the A range.
-define i32 @f2(i32 %a, i32 *%src) {
+define i32 @f2(i32 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: a %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the high end of the aligned A range.
-define i32 @f3(i32 %a, i32 *%src) {
+define i32 @f3(i32 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: a %r2, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the next word up, which should use AY instead of A.
-define i32 @f4(i32 %a, i32 *%src) {
+define i32 @f4(i32 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ay %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the high end of the aligned AY range.
-define i32 @f5(i32 %a, i32 *%src) {
+define i32 @f5(i32 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ay %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 %a, i32 *%src) {
+define i32 @f6(i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: a %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the high end of the negative aligned AY range.
-define i32 @f7(i32 %a, i32 *%src) {
+define i32 @f7(i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ay %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the low end of the AY range.
-define i32 @f8(i32 %a, i32 *%src) {
+define i32 @f8(i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: ay %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i32 %a, i32 *%src) {
+define i32 @f9(i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: a %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
@@ -112,8 +112,8 @@ define i32 @f10(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
@@ -125,38 +125,38 @@ define i32 @f11(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %add = add i32 %a, %b
   ret i32 %add
 }
 
 ; Check that additions of spilled values can use A rather than AR.
-define i32 @f12(i32 *%ptr0) {
+define i32 @f12(ptr %ptr0) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: a %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-03.ll b/llvm/test/CodeGen/SystemZ/int-add-03.ll
index 17e1231e15dd6..3aec15448b035 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-03.ll
@@ -15,23 +15,23 @@ define i64 @f1(i64 %a, i32 %b) {
 }
 
 ; Check AGF with no displacement.
-define i64 @f2(i64 %a, i32 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: agf %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the high end of the aligned AGF range.
-define i64 @f3(i64 %a, i32 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agf %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -39,37 +39,37 @@ define i64 @f3(i64 %a, i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i32 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: agf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the high end of the negative aligned AGF range.
-define i64 @f5(i64 %a, i32 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agf %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the low end of the AGF range.
-define i64 @f6(i64 %a, i32 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agf %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -77,13 +77,13 @@ define i64 @f6(i64 %a, i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i32 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524292
 ; CHECK: agf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -96,39 +96,39 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check that additions of spilled values can use AGF rather than AGFR.
-define i64 @f9(i32 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: agf %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -141,16 +141,16 @@ define i64 @f9(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-04.ll b/llvm/test/CodeGen/SystemZ/int-add-04.ll
index c59a46a4c45f2..ee53d01e14672 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-04.ll
@@ -15,23 +15,23 @@ define i64 @f1(i64 %a, i32 %b) {
 }
 
 ; Check ALGF with no displacement.
-define i64 @f2(i64 %a, i32 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: algf %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the high end of the aligned ALGF range.
-define i64 @f3(i64 %a, i32 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: algf %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -39,37 +39,37 @@ define i64 @f3(i64 %a, i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i32 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: algf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the high end of the negative aligned ALGF range.
-define i64 @f5(i64 %a, i32 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: algf %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the low end of the ALGF range.
-define i64 @f6(i64 %a, i32 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: algf %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -77,13 +77,13 @@ define i64 @f6(i64 %a, i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i32 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524292
 ; CHECK: algf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -96,39 +96,39 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check that additions of spilled values can use ALGF rather than ALGFR.
-define i64 @f9(i32 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: algf %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -141,16 +141,16 @@ define i64 @f9(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-05.ll b/llvm/test/CodeGen/SystemZ/int-add-05.ll
index 554662f253b80..7a83dc475a648 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-05.ll
@@ -15,70 +15,70 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; Check AG with no displacement.
-define i64 @f2(i64 %a, i64 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ag %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %add = add i64 %a, %b
   ret i64 %add
 }
 
 ; Check the high end of the aligned AG range.
-define i64 @f3(i64 %a, i64 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ag %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %add = add i64 %a, %b
   ret i64 %add
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ag %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %add = add i64 %a, %b
   ret i64 %add
 }
 
 ; Check the high end of the negative aligned AG range.
-define i64 @f5(i64 %a, i64 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: ag %r2, -8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %add = add i64 %a, %b
   ret i64 %add
 }
 
 ; Check the low end of the AG range.
-define i64 @f6(i64 %a, i64 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ag %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %add = add i64 %a, %b
   ret i64 %add
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i64 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: ag %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %add = add i64 %a, %b
   ret i64 %add
 }
@@ -90,40 +90,40 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %add = add i64 %a, %b
   ret i64 %add
 }
 
 ; Check that additions of spilled values can use AG rather than AGR.
 ; Note: Z196 is suboptimal with one unfolded reload.
-define i64 @f9(i64 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; Z10:  ag %r2, 168(%r15)
 ; Z196: ag %r0, 168(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-08.ll b/llvm/test/CodeGen/SystemZ/int-add-08.ll
index ed44dd2b0616b..6f221040156af 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-08.ll
@@ -3,143 +3,143 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
-declare i128 *@foo()
+declare ptr at foo()
 
 ; Test register addition.
-define void @f1(i128 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: algr
 ; CHECK: alcgr
 ; CHECK: br %r14
-  %value = load i128, i128 *%ptr
+  %value = load i128, ptr %ptr
   %add = add i128 %value, %value
-  store i128 %add, i128 *%ptr
+  store i128 %add, ptr %ptr
   ret void
 }
 
 ; Test memory addition with no offset.  Making the load of %a volatile
 ; should force the memory operand to be %b.
-define void @f2(i128 *%aptr, i64 %addr) {
+define void @f2(ptr %aptr, i64 %addr) {
 ; CHECK-LABEL: f2:
 ; CHECK: alg {{%r[0-5]}}, 8(%r3)
 ; CHECK: alcg {{%r[0-5]}}, 0(%r3)
 ; CHECK: br %r14
-  %bptr = inttoptr i64 %addr to i128 *
-  %a = load volatile i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %a = load volatile i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %add = add i128 %a, %b
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test the highest aligned offset that is in range of both ALG and ALCG.
-define void @f3(i128 *%aptr, i64 %base) {
+define void @f3(ptr %aptr, i64 %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: alg {{%r[0-5]}}, 524280(%r3)
 ; CHECK: alcg {{%r[0-5]}}, 524272(%r3)
 ; CHECK: br %r14
   %addr = add i64 %base, 524272
-  %bptr = inttoptr i64 %addr to i128 *
-  %a = load volatile i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %a = load volatile i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %add = add i128 %a, %b
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test the next doubleword up, which requires separate address logic for ALG.
-define void @f4(i128 *%aptr, i64 %base) {
+define void @f4(ptr %aptr, i64 %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: lay [[BASE:%r[1-5]]], 524280(%r3)
 ; CHECK: alg {{%r[0-5]}}, 8([[BASE]])
 ; CHECK: alcg {{%r[0-5]}}, 524280(%r3)
 ; CHECK: br %r14
   %addr = add i64 %base, 524280
-  %bptr = inttoptr i64 %addr to i128 *
-  %a = load volatile i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %a = load volatile i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %add = add i128 %a, %b
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test the next doubleword after that, which requires separate logic for
 ; both instructions.
-define void @f5(i128 *%aptr, i64 %base) {
+define void @f5(ptr %aptr, i64 %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: alg {{%r[0-5]}}, 8({{%r[1-5]}})
 ; CHECK: alcg {{%r[0-5]}}, 0({{%r[1-5]}})
 ; CHECK: br %r14
   %addr = add i64 %base, 524288
-  %bptr = inttoptr i64 %addr to i128 *
-  %a = load volatile i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %a = load volatile i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %add = add i128 %a, %b
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test the lowest displacement that is in range of both ALG and ALCG.
-define void @f6(i128 *%aptr, i64 %base) {
+define void @f6(ptr %aptr, i64 %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: alg {{%r[0-5]}}, -524280(%r3)
 ; CHECK: alcg {{%r[0-5]}}, -524288(%r3)
 ; CHECK: br %r14
   %addr = add i64 %base, -524288
-  %bptr = inttoptr i64 %addr to i128 *
-  %a = load volatile i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %a = load volatile i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %add = add i128 %a, %b
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test the next doubleword down, which is out of range of the ALCG.
-define void @f7(i128 *%aptr, i64 %base) {
+define void @f7(ptr %aptr, i64 %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: alg {{%r[0-5]}}, -524288(%r3)
 ; CHECK: alcg {{%r[0-5]}}, 0({{%r[1-5]}})
 ; CHECK: br %r14
   %addr = add i64 %base, -524296
-  %bptr = inttoptr i64 %addr to i128 *
-  %a = load volatile i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %a = load volatile i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %add = add i128 %a, %b
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check that additions of spilled values can use ALG and ALCG rather than
 ; ALGR and ALCGR.
-define void @f8(i128 *%ptr0) {
+define void @f8(ptr %ptr0) {
 ; CHECK-LABEL: f8:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: alg {{%r[0-9]+}}, {{[0-9]+}}(%r15)
 ; CHECK: alcg {{%r[0-9]+}}, {{[0-9]+}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i128, i128 *%ptr0, i128 2
-  %ptr2 = getelementptr i128, i128 *%ptr0, i128 4
-  %ptr3 = getelementptr i128, i128 *%ptr0, i128 6
-  %ptr4 = getelementptr i128, i128 *%ptr0, i128 8
-  %ptr5 = getelementptr i128, i128 *%ptr0, i128 10
+  %ptr1 = getelementptr i128, ptr %ptr0, i128 2
+  %ptr2 = getelementptr i128, ptr %ptr0, i128 4
+  %ptr3 = getelementptr i128, ptr %ptr0, i128 6
+  %ptr4 = getelementptr i128, ptr %ptr0, i128 8
+  %ptr5 = getelementptr i128, ptr %ptr0, i128 10
 
-  %val0 = load i128, i128 *%ptr0
-  %val1 = load i128, i128 *%ptr1
-  %val2 = load i128, i128 *%ptr2
-  %val3 = load i128, i128 *%ptr3
-  %val4 = load i128, i128 *%ptr4
-  %val5 = load i128, i128 *%ptr5
+  %val0 = load i128, ptr %ptr0
+  %val1 = load i128, ptr %ptr1
+  %val2 = load i128, ptr %ptr2
+  %val3 = load i128, ptr %ptr3
+  %val4 = load i128, ptr %ptr4
+  %val5 = load i128, ptr %ptr5
 
-  %retptr = call i128 *@foo()
+  %retptr = call ptr at foo()
 
-  %ret = load i128, i128 *%retptr
+  %ret = load i128, ptr %retptr
   %add0 = add i128 %ret, %val0
   %add1 = add i128 %add0, %val1
   %add2 = add i128 %add1, %val2
   %add3 = add i128 %add2, %val3
   %add4 = add i128 %add3, %val4
   %add5 = add i128 %add4, %val5
-  store i128 %add5, i128 *%retptr
+  store i128 %add5, ptr %retptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-09.ll b/llvm/test/CodeGen/SystemZ/int-add-09.ll
index 62ffb2e0ac820..9606e2df6ea92 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-09.ll
@@ -4,53 +4,53 @@
 
 ; Check additions of 1.  The XOR ensures that we don't instead load the
 ; constant into a register and use memory addition.
-define void @f1(i128 *%aptr) {
+define void @f1(ptr %aptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: algfi {{%r[0-5]}}, 1
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 128
   %add = add i128 %xor, 1
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the high end of the ALGFI range.
-define void @f2(i128 *%aptr) {
+define void @f2(ptr %aptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: algfi {{%r[0-5]}}, 4294967295
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 128
   %add = add i128 %xor, 4294967295
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the next value up, which must use register addition.
-define void @f3(i128 *%aptr) {
+define void @f3(ptr %aptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: algr
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 128
   %add = add i128 %xor, 4294967296
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check addition of -1, which must also use register addition.
-define void @f4(i128 *%aptr) {
+define void @f4(ptr %aptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: algr
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 128
   %add = add i128 %xor, -1
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-10.ll b/llvm/test/CodeGen/SystemZ/int-add-10.ll
index 7c9b74dc71e15..b0a241d90940b 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-10.ll
@@ -4,162 +4,162 @@
 
 ; Check register additions.  The XOR ensures that we don't instead zero-extend
 ; %b into a register and use memory addition.
-define void @f1(i128 *%aptr, i32 %b) {
+define void @f1(ptr %aptr, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: algfr {{%r[0-5]}}, %r3
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Like f1, but using an "in-register" extension.
-define void @f2(i128 *%aptr, i64 %b) {
+define void @f2(ptr %aptr, i64 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: algfr {{%r[0-5]}}, %r3
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %trunc = trunc i64 %b to i32
   %bext = zext i32 %trunc to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test register addition in cases where the second operand is zero extended
 ; from i64 rather than i32, but is later masked to i32 range.
-define void @f3(i128 *%aptr, i64 %b) {
+define void @f3(ptr %aptr, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: algfr {{%r[0-5]}}, %r3
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %bext = zext i64 %b to i128
   %and = and i128 %bext, 4294967295
   %add = add i128 %xor, %and
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Test ALGF with no offset.
-define void @f4(i128 *%aptr, i32 *%bsrc) {
+define void @f4(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f4:
 ; CHECK: algf {{%r[0-5]}}, 0(%r3)
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %b = load i32, i32 *%bsrc
+  %b = load i32, ptr %bsrc
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the high end of the ALGF range.
-define void @f5(i128 *%aptr, i32 *%bsrc) {
+define void @f5(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f5:
 ; CHECK: algf {{%r[0-5]}}, 524284(%r3)
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i64 131071
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i128 *%aptr, i32 *%bsrc) {
+define void @f6(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: algf {{%r[0-5]}}, 0(%r3)
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i64 131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the high end of the negative aligned ALGF range.
-define void @f7(i128 *%aptr, i32 *%bsrc) {
+define void @f7(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f7:
 ; CHECK: algf {{%r[0-5]}}, -4(%r3)
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i128 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i128 -1
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the low end of the ALGF range.
-define void @f8(i128 *%aptr, i32 *%bsrc) {
+define void @f8(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f8:
 ; CHECK: algf {{%r[0-5]}}, -524288(%r3)
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i128 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i128 -131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f9(i128 *%aptr, i32 *%bsrc) {
+define void @f9(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: algf {{%r[0-5]}}, 0(%r3)
 ; CHECK: alcg
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i128 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i128 -131073
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }
 
 ; Check that ALGF allows an index.
-define void @f10(i128 *%aptr, i64 %src, i64 %index) {
+define void @f10(ptr %aptr, i64 %src, i64 %index) {
 ; CHECK-LABEL: f10:
 ; CHECK: algf {{%r[0-5]}}, 524284({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %add = add i128 %xor, %bext
-  store i128 %add, i128 *%aptr
+  store i128 %add, ptr %aptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-11.ll b/llvm/test/CodeGen/SystemZ/int-add-11.ll
index 8de2dfe15a353..64f38620be94c 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-11.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-11.ll
@@ -4,112 +4,112 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 
 ; Check additions of 1.
-define void @f1(i32 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: asi 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 127
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the high end of the constant range.
-define void @f2(i32 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: asi 0(%r2), 127
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 127
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the next constant up, which must use an addition and a store.
 ; Both L/AHI and LHI/A would be OK.
-define void @f3(i32 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: asi
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 128
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the low end of the constant range.
-define void @f4(i32 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: asi 0(%r2), -128
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %add = add i32 %val, -128
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the next value down, with the same comment as f3.
-define void @f5(i32 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: asi
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %add = add i32 %val, -129
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned ASI range.
-define void @f6(i32 *%base) {
+define void @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: asi 524284(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 1
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f7(i32 *%base) {
+define void @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: asi 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 1
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the low end of the ASI range.
-define void @f8(i32 *%base) {
+define void @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: asi -524288(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 1
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f9(i32 *%base) {
+define void @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: asi 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 1
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
@@ -121,35 +121,35 @@ define void @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %add = add i32 %val, 1
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   ret void
 }
 
 ; Check that adding 127 to a spilled value can use ASI.
-define void @f11(i32 *%ptr, i32 %sel) {
+define void @f11(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: asi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -191,48 +191,48 @@ store:
   %new14 = phi i32 [ %val14, %entry ], [ %add14, %add ]
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret void
 }
 
 ; Check that adding -128 to a spilled value can use ASI.
-define void @f12(i32 *%ptr, i32 %sel) {
+define void @f12(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: asi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -274,22 +274,22 @@ store:
   %new14 = phi i32 [ %val14, %entry ], [ %add14, %add ]
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-12.ll b/llvm/test/CodeGen/SystemZ/int-add-12.ll
index 383a931609733..8857c04fb3a45 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-12.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-12.ll
@@ -3,112 +3,112 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check additions of 1.
-define void @f1(i64 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: agsi 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 127
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the high end of the constant range.
-define void @f2(i64 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: agsi 0(%r2), 127
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 127
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the next constant up, which must use an addition and a store.
 ; Both LG/AGHI and LGHI/AG would be OK.
-define void @f3(i64 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: agsi
 ; CHECK: stg %r0, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 128
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the low end of the constant range.
-define void @f4(i64 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: agsi 0(%r2), -128
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %add = add i64 %val, -128
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the next value down, with the same comment as f3.
-define void @f5(i64 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: agsi
 ; CHECK: stg %r0, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %add = add i64 %val, -129
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned AGSI range.
-define void @f6(i64 *%base) {
+define void @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: agsi 524280(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 1
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f7(i64 *%base) {
+define void @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: agsi 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 1
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the low end of the AGSI range.
-define void @f8(i64 *%base) {
+define void @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: agsi -524288(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 1
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f9(i64 *%base) {
+define void @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524296
 ; CHECK: agsi 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 1
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
@@ -120,35 +120,35 @@ define void @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 8
-  %ptr = inttoptr i64 %add2 to i64 *
-  %val = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i64, ptr %ptr
   %add = add i64 %val, 1
-  store i64 %add, i64 *%ptr
+  store i64 %add, ptr %ptr
   ret void
 }
 
 ; Check that adding 127 to a spilled value can use AGSI.
-define void @f11(i64 *%ptr, i32 %sel) {
+define void @f11(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: agsi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -190,48 +190,48 @@ store:
   %new14 = phi i64 [ %val14, %entry ], [ %add14, %add ]
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret void
 }
 
 ; Check that adding -128 to a spilled value can use AGSI.
-define void @f12(i64 *%ptr, i32 %sel) {
+define void @f12(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: agsi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -273,22 +273,22 @@ store:
   %new14 = phi i64 [ %val14, %entry ], [ %add14, %add ]
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-16.ll b/llvm/test/CodeGen/SystemZ/int-add-16.ll
index 36cc13e5fc6e7..73922cca46089 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-16.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-16.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Test the case where both operands are in registers.
-define i64 @f1(i64 %a, i64 %b, i64 %c, i64 %d, i64 *%ptr) {
+define i64 @f1(i64 %a, i64 %b, i64 %c, i64 %d, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: algrk %r2, %r4, %r5
 ; CHECK: alcgr
@@ -16,13 +16,13 @@ define i64 @f1(i64 %a, i64 %b, i64 %c, i64 %d, i64 *%ptr) {
   %add = add i128 %x, %y
   %addv = bitcast i128 %add to <2 x i64>
   %high = extractelement <2 x i64> %addv, i32 0
-  store i64 %high, i64 *%ptr
+  store i64 %high, ptr %ptr
   %low = extractelement <2 x i64> %addv, i32 1
   ret i64 %low
 }
 
 ; Test addition of 1.
-define void @f2(i64 %a, i64 %b, i128 *%ptr) {
+define void @f2(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: alghsik {{%r[0-5]}}, %r3, 1
 ; CHECK: alcgr
@@ -31,12 +31,12 @@ define void @f2(i64 %a, i64 %b, i128 *%ptr) {
   %x2 = insertelement <2 x i64> %x1, i64 %b, i32 1
   %x = bitcast <2 x i64> %x2 to i128
   %add = add i128 %x, 1
-  store i128 %add, i128 *%ptr
+  store i128 %add, ptr %ptr
   ret void
 }
 
 ; Test the upper end of the ALGHSIK range.
-define void @f3(i64 %a, i64 %b, i128 *%ptr) {
+define void @f3(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: alghsik {{%r[0-5]}}, %r3, 32767
 ; CHECK: alcgr
@@ -45,12 +45,12 @@ define void @f3(i64 %a, i64 %b, i128 *%ptr) {
   %x2 = insertelement <2 x i64> %x1, i64 %b, i32 1
   %x = bitcast <2 x i64> %x2 to i128
   %add = add i128 %x, 32767
-  store i128 %add, i128 *%ptr
+  store i128 %add, ptr %ptr
   ret void
 }
 
 ; Test the next value up, which should use ALGFI instead.
-define void @f4(i64 %a, i64 %b, i128 *%ptr) {
+define void @f4(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: algfi %r3, 32768
 ; CHECK: alcgr
@@ -59,12 +59,12 @@ define void @f4(i64 %a, i64 %b, i128 *%ptr) {
   %x2 = insertelement <2 x i64> %x1, i64 %b, i32 1
   %x = bitcast <2 x i64> %x2 to i128
   %add = add i128 %x, 32768
-  store i128 %add, i128 *%ptr
+  store i128 %add, ptr %ptr
   ret void
 }
 
 ; Test the lower end of the ALGHSIK range.
-define void @f5(i64 %a, i64 %b, i128 *%ptr) {
+define void @f5(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: alghsik {{%r[0-5]}}, %r3, -32768
 ; CHECK: alcgr
@@ -73,12 +73,12 @@ define void @f5(i64 %a, i64 %b, i128 *%ptr) {
   %x2 = insertelement <2 x i64> %x1, i64 %b, i32 1
   %x = bitcast <2 x i64> %x2 to i128
   %add = add i128 %x, -32768
-  store i128 %add, i128 *%ptr
+  store i128 %add, ptr %ptr
   ret void
 }
 
 ; Test the next value down, which cannot use either ALGHSIK or ALGFI.
-define void @f6(i64 %a, i64 %b, i128 *%ptr) {
+define void @f6(i64 %a, i64 %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: alghsik
 ; CHECK-NOT: algfi
@@ -88,6 +88,6 @@ define void @f6(i64 %a, i64 %b, i128 *%ptr) {
   %x2 = insertelement <2 x i64> %x1, i64 %b, i32 1
   %x = bitcast <2 x i64> %x2 to i128
   %add = add i128 %x, -32769
-  store i128 %add, i128 *%ptr
+  store i128 %add, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-add-17.ll b/llvm/test/CodeGen/SystemZ/int-add-17.ll
index fd245871c6520..bd7eb61dadfac 100644
--- a/llvm/test/CodeGen/SystemZ/int-add-17.ll
+++ b/llvm/test/CodeGen/SystemZ/int-add-17.ll
@@ -5,23 +5,23 @@
 declare i64 @foo()
 
 ; Check AGH with no displacement.
-define i64 @f1(i64 %a, i16 *%src) {
+define i64 @f1(i64 %a, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: agh %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i16, i16 *%src
+  %b = load i16, ptr %src
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the high end of the aligned AGH range.
-define i64 @f2(i64 %a, i16 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: agh %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -29,37 +29,37 @@ define i64 @f2(i64 %a, i16 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i64 %a, i16 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, 524288
 ; CHECK: agh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the high end of the negative aligned AGH range.
-define i64 @f4(i64 %a, i16 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agh %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
 }
 
 ; Check the low end of the AGH range.
-define i64 @f5(i64 %a, i16 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agh %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -67,13 +67,13 @@ define i64 @f5(i64 %a, i16 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 %a, i16 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524290
 ; CHECK: agh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add
@@ -86,8 +86,8 @@ define i64 @f7(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i16 *
-  %b = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %add = add i64 %a, %bext
   ret i64 %add

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-01.ll b/llvm/test/CodeGen/SystemZ/int-cmp-01.ll
index ec6e23f7e68c4..58a32b1ea2d16 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-01.ll
@@ -4,160 +4,160 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the CH range.
-define void @f1(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f1(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: ch %r2, 0(%r3)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned CH range.
-define void @f2(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f2(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK: ch %r2, 4094(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the next halfword up, which should use CHY instead of CH.
-define void @f3(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f3(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: chy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned CHY range.
-define void @f4(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f4(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK: chy %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f5(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f5(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ch %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the negative aligned CHY range.
-define void @f6(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f6(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f6:
 ; CHECK: chy %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the CHY range.
-define void @f7(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f7(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f7:
 ; CHECK: chy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(i32 %lhs, i16 *%src, i32 *%dst) {
+define void @f8(i32 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -524290
 ; CHECK: ch %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check that CH allows an index.
-define void @f9(i32 %lhs, i64 %base, i64 %index, i32 *%dst) {
+define void @f9(i32 %lhs, i64 %base, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f9:
 ; CHECK: ch %r2, 4094({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check that CHY allows an index.
-define void @f10(i32 %lhs, i64 %base, i64 %index, i32 *%dst) {
+define void @f10(i32 %lhs, i64 %base, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f10:
 ; CHECK: chy %r2, 4096({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, i32 100, i32 200
-  store i32 %res, i32 *%dst
+  store i32 %res, ptr %dst
   ret void
 }
 
 ; Check the comparison can be reversed if that allows CH to be used.
-define double @f11(double %a, double %b, i32 %rhs, i16 *%src) {
+define double @f11(double %a, double %b, i32 %rhs, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: ch %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %lhs = sext i16 %half to i32
   %cond = icmp slt i32 %lhs, %rhs
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-02.ll b/llvm/test/CodeGen/SystemZ/int-cmp-02.ll
index 943f6d8002c58..3fd2f24d353a7 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-02.ll
@@ -16,55 +16,55 @@ define double @f1(double %a, double %b, i32 %i1, i32 %i2) {
 }
 
 ; Check the low end of the C range.
-define double @f2(double %a, double %b, i32 %i1, i32 *%ptr) {
+define double @f2(double %a, double %b, i32 %i1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: c %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i2 = load i32, i32 *%ptr
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the aligned C range.
-define double @f3(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f3(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: c %r2, 4092(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1023
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next word up, which should use CY instead of C.
-define double @f4(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f4(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: cy %r2, 4096(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1024
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the aligned CY range.
-define double @f5(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f5(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: cy %r2, 524284(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -72,43 +72,43 @@ define double @f5(double %a, double %b, i32 %i1, i32 *%base) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f6(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f6(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: c %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the negative aligned CY range.
-define double @f7(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f7(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: cy %r2, -4(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -1
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -1
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the CY range.
-define double @f8(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f8(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: cy %r2, -524288(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -116,15 +116,15 @@ define double @f8(double %a, double %b, i32 %i1, i32 *%base) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f9(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f9(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: c %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -139,8 +139,8 @@ define double @f10(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %i2 = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -155,8 +155,8 @@ define double @f11(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %i2 = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %i2 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -183,13 +183,13 @@ while.end:
 }
 
 ; Check the comparison can be reversed if that allows C to be used.
-define double @f13(double %a, double %b, i32 %i2, i32 *%ptr) {
+define double @f13(double %a, double %b, i32 %i2, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: c %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i1 = load i32, i32 *%ptr
+  %i1 = load i32, ptr %ptr
   %cond = icmp slt i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-03.ll b/llvm/test/CodeGen/SystemZ/int-cmp-03.ll
index 3a21d9eeede7b..5b883034d44e8 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-03.ll
@@ -14,55 +14,55 @@ define double @f1(double %a, double %b, i32 %i1, i32 %i2) {
 }
 
 ; Check the low end of the CL range.
-define double @f2(double %a, double %b, i32 %i1, i32 *%ptr) {
+define double @f2(double %a, double %b, i32 %i1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cl %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i2 = load i32, i32 *%ptr
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the aligned CL range.
-define double @f3(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f3(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: cl %r2, 4092(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1023
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next word up, which should use CLY instead of CL.
-define double @f4(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f4(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: cly %r2, 4096(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1024
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the aligned CLY range.
-define double @f5(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f5(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: cly %r2, 524284(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -70,43 +70,43 @@ define double @f5(double %a, double %b, i32 %i1, i32 *%base) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f6(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f6(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: cl %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the negative aligned CLY range.
-define double @f7(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f7(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: cly %r2, -4(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -1
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -1
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the CLY range.
-define double @f8(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f8(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: cly %r2, -524288(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -114,15 +114,15 @@ define double @f8(double %a, double %b, i32 %i1, i32 *%base) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f9(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f9(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: cl %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %i2 = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -137,8 +137,8 @@ define double @f10(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %i2 = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -153,21 +153,21 @@ define double @f11(double %a, double %b, i32 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %i2 = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %i2 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the comparison can be reversed if that allows CL to be used.
-define double @f12(double %a, double %b, i32 %i2, i32 *%ptr) {
+define double @f12(double %a, double %b, i32 %i2, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: cl %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i1 = load i32, i32 *%ptr
+  %i1 = load i32, ptr %ptr
   %cond = icmp ult i32 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-04.ll b/llvm/test/CodeGen/SystemZ/int-cmp-04.ll
index 39fddcea9597e..045ae1df45e7a 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-04.ll
@@ -4,116 +4,116 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check CGH with no displacement.
-define void @f1(i64 %lhs, i16 *%src, i64 *%dst) {
+define void @f1(i64 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f1:
 ; CHECK: cgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned CGH range.
-define void @f2(i64 %lhs, i16 *%src, i64 *%dst) {
+define void @f2(i64 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK: cgh %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f3(i64 %lhs, i16 *%src, i64 *%dst) {
+define void @f3(i64 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, 524288
 ; CHECK: cgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check the high end of the negative aligned CGH range.
-define void @f4(i64 %lhs, i16 *%src, i64 *%dst) {
+define void @f4(i64 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK: cgh %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check the low end of the CGH range.
-define void @f5(i64 %lhs, i16 *%src, i64 *%dst) {
+define void @f5(i64 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f5:
 ; CHECK: cgh %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i64 %lhs, i16 *%src, i64 *%dst) {
+define void @f6(i64 %lhs, ptr %src, ptr %dst) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524290
 ; CHECK: cgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check that CGH allows an index.
-define void @f7(i64 %lhs, i64 %base, i64 %index, i64 *%dst) {
+define void @f7(i64 %lhs, i64 %base, i64 %index, ptr %dst) {
 ; CHECK-LABEL: f7:
 ; CHECK: cgh %r2, 4096({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, i64 100, i64 200
-  store i64 %res, i64 *%dst
+  store i64 %res, ptr %dst
   ret void
 }
 
 ; Check the comparison can be reversed if that allows CGH to be used.
-define double @f8(double %a, double %b, i64 %rhs, i16 *%src) {
+define double @f8(double %a, double %b, i64 %rhs, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: cgh %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %lhs = sext i16 %half to i64
   %cond = icmp slt i64 %lhs, %rhs
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-05.ll b/llvm/test/CodeGen/SystemZ/int-cmp-05.ll
index 2f048aefe8dc3..b4f954545610d 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-05.ll
@@ -55,13 +55,13 @@ define double @f4(double %a, double %b, i64 %i1, i32 %unext) {
 }
 
 ; Check signed comparison with memory.
-define double @f5(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f5(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cgf %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -69,11 +69,11 @@ define double @f5(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check unsigned comparison with memory.
-define double @f6(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f6(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: cgf
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -81,13 +81,13 @@ define double @f6(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check memory equality.
-define double @f7(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f7(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: cgf %r2, 0(%r3)
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp eq i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -95,13 +95,13 @@ define double @f7(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check memory inequality.
-define double @f8(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f8(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cgf %r2, 0(%r3)
 ; CHECK-NEXT: blhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp ne i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -109,14 +109,14 @@ define double @f8(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check the high end of the aligned CGF range.
-define double @f9(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f9(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: cgf %r2, 524284(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -125,15 +125,15 @@ define double @f9(double %a, double %b, i64 %i1, i32 *%base) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f10(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f10(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r3, 524288
 ; CHECK: cgf %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -141,14 +141,14 @@ define double @f10(double %a, double %b, i64 %i1, i32 *%base) {
 }
 
 ; Check the high end of the negative aligned CGF range.
-define double @f11(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f11(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f11:
 ; CHECK: cgf %r2, -4(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -1
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -1
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -156,14 +156,14 @@ define double @f11(double %a, double %b, i64 %i1, i32 *%base) {
 }
 
 ; Check the low end of the CGF range.
-define double @f12(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f12(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f12:
 ; CHECK: cgf %r2, -524288(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -172,15 +172,15 @@ define double @f12(double %a, double %b, i64 %i1, i32 *%base) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f13(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f13(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f13:
 ; CHECK: agfi %r3, -524292
 ; CHECK: cgf %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -196,8 +196,8 @@ define double @f14(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %unext = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %unext = load i32, ptr %ptr
   %i2 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -205,31 +205,31 @@ define double @f14(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
 }
 
 ; Check that comparisons of spilled values can use CGF rather than CGFR.
-define i64 @f15(i32 *%ptr0) {
+define i64 @f15(ptr %ptr0) {
 ; CHECK-LABEL: f15:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: cgf {{%r[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -242,16 +242,16 @@ define i64 @f15(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 
@@ -305,13 +305,13 @@ define double @f16(double %a, double %b, i64 %i1, i32 %unext) {
 }
 
 ; Likewise CGF.
-define double @f17(double %a, double %b, i64 %i2, i32 *%ptr) {
+define double @f17(double %a, double %b, i64 %i2, ptr %ptr) {
 ; CHECK-LABEL: f17:
 ; CHECK: cgf %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i1 = sext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-06.ll b/llvm/test/CodeGen/SystemZ/int-cmp-06.ll
index a630eebdd90c9..6f56525929b4b 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-06.ll
@@ -105,13 +105,13 @@ define double @f8(double %a, double %b, i64 %i1, i64 %unext) {
 }
 
 ; Check unsigned comparison with memory.
-define double @f9(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f9(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: clgf %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -119,11 +119,11 @@ define double @f9(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check signed comparison with memory.
-define double @f10(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f10(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: clgf
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -131,13 +131,13 @@ define double @f10(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check memory equality.
-define double @f11(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f11(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: clgf %r2, 0(%r3)
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp eq i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -145,13 +145,13 @@ define double @f11(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check memory inequality.
-define double @f12(double %a, double %b, i64 %i1, i32 *%ptr) {
+define double @f12(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: clgf %r2, 0(%r3)
 ; CHECK-NEXT: blhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ne i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -159,14 +159,14 @@ define double @f12(double %a, double %b, i64 %i1, i32 *%ptr) {
 }
 
 ; Check the high end of the aligned CLGF range.
-define double @f13(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f13(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f13:
 ; CHECK: clgf %r2, 524284(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -175,15 +175,15 @@ define double @f13(double %a, double %b, i64 %i1, i32 *%base) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f14(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f14(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f14:
 ; CHECK: agfi %r3, 524288
 ; CHECK: clgf %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -191,14 +191,14 @@ define double @f14(double %a, double %b, i64 %i1, i32 *%base) {
 }
 
 ; Check the high end of the negative aligned CLGF range.
-define double @f15(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f15(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f15:
 ; CHECK: clgf %r2, -4(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -1
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -1
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -206,14 +206,14 @@ define double @f15(double %a, double %b, i64 %i1, i32 *%base) {
 }
 
 ; Check the low end of the CLGF range.
-define double @f16(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f16(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f16:
 ; CHECK: clgf %r2, -524288(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -222,15 +222,15 @@ define double @f16(double %a, double %b, i64 %i1, i32 *%base) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f17(double %a, double %b, i64 %i1, i32 *%base) {
+define double @f17(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f17:
 ; CHECK: agfi %r3, -524292
 ; CHECK: clgf %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %unext = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -246,8 +246,8 @@ define double @f18(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %unext = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %unext = load i32, ptr %ptr
   %i2 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
@@ -255,31 +255,31 @@ define double @f18(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
 }
 
 ; Check that comparisons of spilled values can use CLGF rather than CLGFR.
-define i64 @f19(i32 *%ptr0) {
+define i64 @f19(ptr %ptr0) {
 ; CHECK-LABEL: f19:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: clgf {{%r[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -292,16 +292,16 @@ define i64 @f19(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 
@@ -368,13 +368,13 @@ define double @f21(double %a, double %b, i64 %i1, i64 %unext) {
 }
 
 ; Check the comparison can be reversed if that allows CLGF to be used.
-define double @f22(double %a, double %b, i64 %i2, i32 *%ptr) {
+define double @f22(double %a, double %b, i64 %i2, ptr %ptr) {
 ; CHECK-LABEL: f22:
 ; CHECK: clgf %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %unext = load i32, i32 *%ptr
+  %unext = load i32, ptr %ptr
   %i1 = zext i32 %unext to i64
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-07.ll b/llvm/test/CodeGen/SystemZ/int-cmp-07.ll
index 6aeb96391cacd..63fa523430884 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-07.ll
@@ -14,27 +14,27 @@ define double @f1(double %a, double %b, i64 %i1, i64 %i2) {
 }
 
 ; Check CG with no displacement.
-define double @f2(double %a, double %b, i64 %i1, i64 *%ptr) {
+define double @f2(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cg %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i2 = load i64, i64 *%ptr
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the aligned CG range.
-define double @f3(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f3(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: cg %r2, 524280(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -42,43 +42,43 @@ define double @f3(double %a, double %b, i64 %i1, i64 *%base) {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f4(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: cg %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the negative aligned CG range.
-define double @f5(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f5(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: cg %r2, -8(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -1
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -1
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the CG range.
-define double @f6(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f6(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: cg %r2, -524288(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -86,15 +86,15 @@ define double @f6(double %a, double %b, i64 %i1, i64 *%base) {
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f7(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f7(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: cg %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -109,21 +109,21 @@ define double @f8(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %i2 = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %i2 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the comparison can be reversed if that allows CG to be used.
-define double @f9(double %a, double %b, i64 %i2, i64 *%ptr) {
+define double @f9(double %a, double %b, i64 %i2, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cg %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i1 = load i64, i64 *%ptr
+  %i1 = load i64, ptr %ptr
   %cond = icmp slt i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-08.ll b/llvm/test/CodeGen/SystemZ/int-cmp-08.ll
index cdf79b3452514..88bd2699d6d4f 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-08.ll
@@ -14,27 +14,27 @@ define double @f1(double %a, double %b, i64 %i1, i64 %i2) {
 }
 
 ; Check CLG with no displacement.
-define double @f2(double %a, double %b, i64 %i1, i64 *%ptr) {
+define double @f2(double %a, double %b, i64 %i1, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clg %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i2 = load i64, i64 *%ptr
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the aligned CLG range.
-define double @f3(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f3(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: clg %r2, 524280(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -42,43 +42,43 @@ define double @f3(double %a, double %b, i64 %i1, i64 *%base) {
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f4(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f4(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: clg %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the negative aligned CLG range.
-define double @f5(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f5(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: clg %r2, -8(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -1
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -1
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the CLG range.
-define double @f6(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f6(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: clg %r2, -524288(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -86,15 +86,15 @@ define double @f6(double %a, double %b, i64 %i1, i64 *%base) {
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f7(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f7(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: clg %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %i2 = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -109,21 +109,21 @@ define double @f8(double %a, double %b, i64 %i1, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %i2 = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %i2 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the comparison can be reversed if that allows CLG to be used.
-define double @f9(double %a, double %b, i64 %i2, i64 *%ptr) {
+define double @f9(double %a, double %b, i64 %i2, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: clg %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %i1 = load i64, i64 *%ptr
+  %i1 = load i64, ptr %ptr
   %cond = icmp ult i64 %i1, %i2
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-15.ll b/llvm/test/CodeGen/SystemZ/int-cmp-15.ll
index 67a203b477653..b1febf247740d 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-15.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-15.ll
@@ -3,156 +3,156 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check ordered comparisons near the low end of the unsigned 8-bit range.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp ugt i8 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons near the high end of the unsigned 8-bit range.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 254
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check tests for negative bytes.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp slt i8 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; ...and an alternative form.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp sle i8 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check tests for non-negative bytes.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp sge i8 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; ...and an alternative form.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp sgt i8 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons at the low end of the signed 8-bit range.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp eq i8 %val, -128
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons at the low end of the unsigned 8-bit range.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp eq i8 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons at the high end of the signed 8-bit range.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp eq i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons at the high end of the unsigned 8-bit range.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %cond = icmp eq i8 %val, 255
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CLI range.
-define double @f11(double %a, double %b, i8 *%src) {
+define double @f11(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: cli 4095(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next byte up, which should use CLIY instead of CLI.
-define double @f12(double %a, double %b, i8 *%src) {
+define double @f12(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: cliy 4096(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CLIY range.
-define double @f13(double %a, double %b, i8 *%src) {
+define double @f13(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: cliy 524287(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -160,37 +160,37 @@ define double @f13(double %a, double %b, i8 *%src) {
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f14(double %a, double %b, i8 *%src) {
+define double @f14(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: agfi %r2, 524288
 ; CHECK: cli 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the negative CLIY range.
-define double @f15(double %a, double %b, i8 *%src) {
+define double @f15(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: cliy -1(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the CLIY range.
-define double @f16(double %a, double %b, i8 *%src) {
+define double @f16(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f16:
 ; CHECK: cliy -524288(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -198,13 +198,13 @@ define double @f16(double %a, double %b, i8 *%src) {
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define double @f17(double %a, double %b, i8 *%src) {
+define double @f17(double %a, double %b, ptr %src) {
 ; CHECK-LABEL: f17:
 ; CHECK: agfi %r2, -524289
 ; CHECK: cli 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -218,8 +218,8 @@ define double @f18(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -233,8 +233,8 @@ define double @f19(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %cond = icmp ult i8 %val, 127
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-16.ll b/llvm/test/CodeGen/SystemZ/int-cmp-16.ll
index 1ad4d7d5109d0..1a2e517da161a 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-16.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-16.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 8-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp eq i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the 8-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp eq i32 %ext, 255
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp eq i32 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i8 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp eq i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp eq i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the signed 8-bit range, using sign extension.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp eq i32 %ext, 127
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp eq i32 %ext, 128
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp eq i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the low end of the signed 8-bit range, using sign extension.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp eq i32 %ext, -128
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp eq i32 %ext, -129
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-17.ll b/llvm/test/CodeGen/SystemZ/int-cmp-17.ll
index 2f5ef13252aa2..2a13194a47ec3 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-17.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-17.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 8-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ne i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the 8-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ne i32 %ext, 255
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ne i32 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i8 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ne i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ne i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the signed 8-bit range, using sign extension.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ne i32 %ext, 127
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ne i32 %ext, 128
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ne i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the low end of the signed 8-bit range, using sign extension.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ne i32 %ext, -128
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ne i32 %ext, -129
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-18.ll b/llvm/test/CodeGen/SystemZ/int-cmp-18.ll
index 7971773136320..7e7d39207cb7a 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-18.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-18.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 8-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp eq i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the 8-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp eq i64 %ext, 255
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp eq i64 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i8 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp eq i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp eq i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the signed 8-bit range, using sign extension.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp eq i64 %ext, 127
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp eq i64 %ext, 128
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp eq i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the low end of the signed 8-bit range, using sign extension.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp eq i64 %ext, -128
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp eq i64 %ext, -129
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-19.ll b/llvm/test/CodeGen/SystemZ/int-cmp-19.ll
index 8c3248626ef61..c06edaf6cd54a 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-19.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-19.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 8-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ne i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the 8-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ne i64 %ext, 255
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ne i64 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i8 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ne i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cli 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ne i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the high end of the signed 8-bit range, using sign extension.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ne i64 %ext, 127
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ne i64 %ext, 128
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 255
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ne i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check the low end of the signed 8-bit range, using sign extension.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ne i64 %ext, -128
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i8 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ne i64 %ext, -129
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-20.ll b/llvm/test/CodeGen/SystemZ/int-cmp-20.ll
index 3a678664cac13..6d66bfaf0da09 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-20.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-20.ll
@@ -5,12 +5,12 @@
 
 ; Check unsigned comparison near the low end of the CLI range, using zero
 ; extension.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ugt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -19,12 +19,12 @@ define double @f1(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison near the low end of the CLI range, using sign
 ; extension.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ugt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -33,12 +33,12 @@ define double @f2(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLI range, using zero
 ; extension.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ult i32 %ext, 254
   %res = select i1 %cond, double %a, double %b
@@ -47,12 +47,12 @@ define double @f3(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLI range, using sign
 ; extension.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ult i32 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -61,11 +61,11 @@ define double @f4(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison above the high end of the CLI range, using zero
 ; extension.  The condition is always true.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: cli {{.*}}
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp ult i32 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -77,11 +77,11 @@ define double @f5(double %a, double %b, i8 *%ptr) {
 ; those values are effectively sign tests.  Since such comparisons are
 ; unlikely to occur in practice, we don't bother optimizing the second case,
 ; and simply ignore CLI for this range.  First check the low end of the range.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: cli {{.*}}
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ult i32 %ext, 128
   %res = select i1 %cond, double %a, double %b
@@ -89,11 +89,11 @@ define double @f6(double %a, double %b, i8 *%ptr) {
 }
 
 ; ...and then the high end.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cli {{.*}}
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp ult i32 %ext, -129
   %res = select i1 %cond, double %a, double %b
@@ -102,12 +102,12 @@ define double @f7(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the low end of the CLI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp sgt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -116,11 +116,11 @@ define double @f8(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the low end of the CLI range, using sign
 ; extension.  This cannot use CLI.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: cli {{.*}}
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp sgt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -129,12 +129,12 @@ define double @f9(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the high end of the CLI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp slt i32 %ext, 254
   %res = select i1 %cond, double %a, double %b
@@ -143,11 +143,11 @@ define double @f10(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the high end of the CLI range, using sign
 ; extension.  This cannot use CLI.
-define double @f11(double %a, double %b, i8 *%ptr) {
+define double @f11(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: cli {{.*}}
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp slt i32 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -156,11 +156,11 @@ define double @f11(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison above the high end of the CLI range, using zero
 ; extension.  The condition is always true.
-define double @f12(double %a, double %b, i8 *%ptr) {
+define double @f12(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: cli {{.*}}
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %cond = icmp slt i32 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -168,12 +168,12 @@ define double @f12(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check tests for nonnegative values.
-define double @f13(double %a, double %b, i8 *%ptr) {
+define double @f13(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp sge i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -181,12 +181,12 @@ define double @f13(double %a, double %b, i8 *%ptr) {
 }
 
 ; ...and another form
-define double @f14(double %a, double %b, i8 *%ptr) {
+define double @f14(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp sgt i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -194,12 +194,12 @@ define double @f14(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check tests for negative values.
-define double @f15(double %a, double %b, i8 *%ptr) {
+define double @f15(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp slt i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -207,12 +207,12 @@ define double @f15(double %a, double %b, i8 *%ptr) {
 }
 
 ; ...and another form
-define double @f16(double %a, double %b, i8 *%ptr) {
+define double @f16(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %cond = icmp sle i32 %ext, -1
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-21.ll b/llvm/test/CodeGen/SystemZ/int-cmp-21.ll
index 2a8fd8b12d830..7769fe74e8777 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-21.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-21.ll
@@ -5,12 +5,12 @@
 
 ; Check unsigned comparison near the low end of the CLI range, using zero
 ; extension.
-define double @f1(double %a, double %b, i8 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ugt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -19,12 +19,12 @@ define double @f1(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison near the low end of the CLI range, using sign
 ; extension.
-define double @f2(double %a, double %b, i8 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ugt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -33,12 +33,12 @@ define double @f2(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLI range, using zero
 ; extension.
-define double @f3(double %a, double %b, i8 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ult i64 %ext, 254
   %res = select i1 %cond, double %a, double %b
@@ -47,12 +47,12 @@ define double @f3(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLI range, using sign
 ; extension.
-define double @f4(double %a, double %b, i8 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ult i64 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -61,11 +61,11 @@ define double @f4(double %a, double %b, i8 *%ptr) {
 
 ; Check unsigned comparison above the high end of the CLI range, using zero
 ; extension.  The condition is always true.
-define double @f5(double %a, double %b, i8 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp ult i64 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -77,11 +77,11 @@ define double @f5(double %a, double %b, i8 *%ptr) {
 ; those values are effectively sign tests.  Since such comparisons are
 ; unlikely to occur in practice, we don't bother optimizing the second case,
 ; and simply ignore CLI for this range.  First check the low end of the range.
-define double @f6(double %a, double %b, i8 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ult i64 %ext, 128
   %res = select i1 %cond, double %a, double %b
@@ -89,11 +89,11 @@ define double @f6(double %a, double %b, i8 *%ptr) {
 }
 
 ; ...and then the high end.
-define double @f7(double %a, double %b, i8 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp ult i64 %ext, -129
   %res = select i1 %cond, double %a, double %b
@@ -102,12 +102,12 @@ define double @f7(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the low end of the CLI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f8(double %a, double %b, i8 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cli 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp sgt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -116,11 +116,11 @@ define double @f8(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the low end of the CLI range, using sign
 ; extension.  This cannot use CLI.
-define double @f9(double %a, double %b, i8 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp sgt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -129,12 +129,12 @@ define double @f9(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the high end of the CLI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f10(double %a, double %b, i8 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: cli 0(%r2), 254
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp slt i64 %ext, 254
   %res = select i1 %cond, double %a, double %b
@@ -143,11 +143,11 @@ define double @f10(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison near the high end of the CLI range, using sign
 ; extension.  This cannot use CLI.
-define double @f11(double %a, double %b, i8 *%ptr) {
+define double @f11(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp slt i64 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -156,11 +156,11 @@ define double @f11(double %a, double %b, i8 *%ptr) {
 
 ; Check signed comparison above the high end of the CLI range, using zero
 ; extension.  The condition is always true.
-define double @f12(double %a, double %b, i8 *%ptr) {
+define double @f12(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %cond = icmp slt i64 %ext, 256
   %res = select i1 %cond, double %a, double %b
@@ -168,12 +168,12 @@ define double @f12(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check tests for nonnegative values.
-define double @f13(double %a, double %b, i8 *%ptr) {
+define double @f13(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp sge i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -181,12 +181,12 @@ define double @f13(double %a, double %b, i8 *%ptr) {
 }
 
 ; ...and another form
-define double @f14(double %a, double %b, i8 *%ptr) {
+define double @f14(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: cli 0(%r2), 128
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp sgt i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -194,12 +194,12 @@ define double @f14(double %a, double %b, i8 *%ptr) {
 }
 
 ; Check tests for negative values.
-define double @f15(double %a, double %b, i8 *%ptr) {
+define double @f15(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp slt i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -207,12 +207,12 @@ define double @f15(double %a, double %b, i8 *%ptr) {
 }
 
 ; ...and another form
-define double @f16(double %a, double %b, i8 *%ptr) {
+define double @f16(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: cli 0(%r2), 127
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %cond = icmp sle i64 %ext, -1
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-22.ll b/llvm/test/CodeGen/SystemZ/int-cmp-22.ll
index cd5560c9cdfc9..ff7ce6f6d7e02 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-22.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-22.ll
@@ -3,109 +3,109 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check comparisons with 0.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: chhsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check comparisons with 1.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: chhsi 0(%r2), 0
 ; CHECK-NEXT: bler %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check a value near the high end of the signed 16-bit range.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: chhsi 0(%r2), 32766
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 32766
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check comparisons with -1.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: chhsi 0(%r2), -1
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check a value near the low end of the 16-bit signed range.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: chhsi 0(%r2), -32766
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, -32766
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CHHSI range.
-define double @f6(double %a, double %b, i16 %i1, i16 *%base) {
+define double @f6(double %a, double %b, i16 %i1, ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: chhsi 4094(%r3), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2047
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2047
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next halfword up, which needs separate address logic,
-define double @f7(double %a, double %b, i16 *%base) {
+define double @f7(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r2, 4096
 ; CHECK: chhsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2048
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2048
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check negative offsets, which also need separate address logic.
-define double @f8(double %a, double %b, i16 *%base) {
+define double @f8(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: aghi %r2, -2
 ; CHECK: chhsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 -1
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 -1
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -120,8 +120,8 @@ define double @f9(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i16 *
-  %val = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i16, ptr %ptr
   %cond = icmp slt i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-23.ll b/llvm/test/CodeGen/SystemZ/int-cmp-23.ll
index cc45784993223..8300e808375d1 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-23.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-23.ll
@@ -3,70 +3,70 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check a value near the low end of the unsigned 16-bit range.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ugt i16 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check a value near the high end of the unsigned 16-bit range.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ult i16 %val, 65534
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CLHHSI range.
-define double @f3(double %a, double %b, i16 %i1, i16 *%base) {
+define double @f3(double %a, double %b, i16 %i1, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: clhhsi 4094(%r3), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2047
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2047
+  %val = load i16, ptr %ptr
   %cond = icmp ugt i16 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next halfword up, which needs separate address logic,
-define double @f4(double %a, double %b, i16 *%base) {
+define double @f4(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2048
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2048
+  %val = load i16, ptr %ptr
   %cond = icmp ugt i16 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check negative offsets, which also need separate address logic.
-define double @f5(double %a, double %b, i16 *%base) {
+define double @f5(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, -2
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 -1
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 -1
+  %val = load i16, ptr %ptr
   %cond = icmp ugt i16 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -81,8 +81,8 @@ define double @f6(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i16 *
-  %val = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ugt i16 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-24.ll b/llvm/test/CodeGen/SystemZ/int-cmp-24.ll
index 7981e556f8260..df2f72415349c 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-24.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-24.ll
@@ -3,52 +3,52 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the unsigned 16-bit range.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp eq i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the unsigned 16-bit range.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp eq i16 %val, 65535
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the signed 16-bit range.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: clhhsi 0(%r2), 32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp eq i16 %val, -32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the signed 16-bit range.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: clhhsi 0(%r2), 32767
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp eq i16 %val, 32767
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-25.ll b/llvm/test/CodeGen/SystemZ/int-cmp-25.ll
index a05afb0b7c8be..13dca81b4e8c0 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-25.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-25.ll
@@ -3,52 +3,52 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the unsigned 16-bit range.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ne i16 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the unsigned 16-bit range.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: blhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ne i16 %val, 65535
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the low end of the signed 16-bit range.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: clhhsi 0(%r2), 32768
 ; CHECK-NEXT: blhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ne i16 %val, -32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the signed 16-bit range.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: clhhsi 0(%r2), 32767
 ; CHECK-NEXT: blhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %cond = icmp ne i16 %val, 32767
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-26.ll b/llvm/test/CodeGen/SystemZ/int-cmp-26.ll
index 10c137bf9f64b..7b6e506408630 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-26.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-26.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 16-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp eq i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the 16-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp eq i32 %ext, 65535
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp eq i32 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i16 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp eq i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp eq i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the signed 16-bit range, using sign extension.
-define double @f6(double %a, double %b, i16 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: clhhsi 0(%r2), 32767
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp eq i32 %ext, 32767
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i16 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp eq i32 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i16 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp eq i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the low end of the signed 16-bit range, using sign extension.
-define double @f9(double %a, double %b, i16 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: clhhsi 0(%r2), 32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp eq i32 %ext, -32768
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i16 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp eq i32 %ext, -32769
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-27.ll b/llvm/test/CodeGen/SystemZ/int-cmp-27.ll
index f0e1ed3bcc246..4a8bc641471c5 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-27.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-27.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 16-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ne i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the 16-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ne i32 %ext, 65535
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ne i32 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i16 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ne i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ne i32 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the signed 16-bit range, using sign extension.
-define double @f6(double %a, double %b, i16 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: clhhsi 0(%r2), 32767
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ne i32 %ext, 32767
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i16 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ne i32 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i16 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ne i32 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the low end of the signed 16-bit range, using sign extension.
-define double @f9(double %a, double %b, i16 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: clhhsi 0(%r2), 32768
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ne i32 %ext, -32768
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i16 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ne i32 %ext, -32769
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-28.ll b/llvm/test/CodeGen/SystemZ/int-cmp-28.ll
index a85dbabfdfe59..15efe92d100be 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-28.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-28.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 16-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp eq i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the 16-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp eq i64 %ext, 65535
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp eq i64 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i16 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp eq i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp eq i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the signed 16-bit range, using sign extension.
-define double @f6(double %a, double %b, i16 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: clhhsi 0(%r2), 32767
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp eq i64 %ext, 32767
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i16 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp eq i64 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i16 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp eq i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the low end of the signed 16-bit range, using sign extension.
-define double @f9(double %a, double %b, i16 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: clhhsi 0(%r2), 32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp eq i64 %ext, -32768
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i16 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp eq i64 %ext, -32769
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-29.ll b/llvm/test/CodeGen/SystemZ/int-cmp-29.ll
index 1c5b72d5cd76f..7a98fba5e4f14 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-29.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-29.ll
@@ -4,12 +4,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the 16-bit unsigned range, with zero extension.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ne i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -17,12 +17,12 @@ define double @f1(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the 16-bit unsigned range, with zero extension.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ne i64 %ext, 65535
   %res = select i1 %cond, double %a, double %b
@@ -30,11 +30,11 @@ define double @f2(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the next value up, with zero extension.  The condition is always false.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ne i64 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -43,11 +43,11 @@ define double @f3(double %a, double %b, i16 *%ptr) {
 
 ; Check comparisons with -1, with zero extension.
 ; This condition is also always false.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ne i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -55,12 +55,12 @@ define double @f4(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with 0, using sign extension.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: clhhsi 0(%r2), 0
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ne i64 %ext, 0
   %res = select i1 %cond, double %a, double %b
@@ -68,12 +68,12 @@ define double @f5(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the high end of the signed 16-bit range, using sign extension.
-define double @f6(double %a, double %b, i16 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: clhhsi 0(%r2), 32767
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ne i64 %ext, 32767
   %res = select i1 %cond, double %a, double %b
@@ -82,11 +82,11 @@ define double @f6(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value up, using sign extension.
 ; The condition is always false.
-define double @f7(double %a, double %b, i16 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ne i64 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -94,12 +94,12 @@ define double @f7(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check comparisons with -1, using sign extension.
-define double @f8(double %a, double %b, i16 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: clhhsi 0(%r2), 65535
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ne i64 %ext, -1
   %res = select i1 %cond, double %a, double %b
@@ -107,12 +107,12 @@ define double @f8(double %a, double %b, i16 *%ptr) {
 }
 
 ; Check the low end of the signed 16-bit range, using sign extension.
-define double @f9(double %a, double %b, i16 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: clhhsi 0(%r2), 32768
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ne i64 %ext, -32768
   %res = select i1 %cond, double %a, double %b
@@ -121,11 +121,11 @@ define double @f9(double %a, double %b, i16 *%ptr) {
 
 ; Check the next value down, using sign extension.
 ; The condition is always false.
-define double @f10(double %a, double %b, i16 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ne i64 %ext, -32769
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-30.ll b/llvm/test/CodeGen/SystemZ/int-cmp-30.ll
index ae142cc6c72f5..42fad6918f151 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-30.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-30.ll
@@ -5,12 +5,12 @@
 
 ; Check unsigned comparison near the low end of the CLHHSI range, using zero
 ; extension.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ugt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -19,12 +19,12 @@ define double @f1(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison near the low end of the CLHHSI range, using sign
 ; extension.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ugt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -33,12 +33,12 @@ define double @f2(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLHHSI range, using zero
 ; extension.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ult i32 %ext, 65534
   %res = select i1 %cond, double %a, double %b
@@ -47,12 +47,12 @@ define double @f3(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLHHSI range, using sign
 ; extension.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ult i32 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -61,11 +61,11 @@ define double @f4(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison above the high end of the CLHHSI range, using zero
 ; extension.  The condition is always true.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp ult i32 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -78,11 +78,11 @@ define double @f5(double %a, double %b, i16 *%ptr) {
 ; unlikely to occur in practice, we don't bother optimizing the second case,
 ; and simply ignore CLHHSI for this range.  First check the low end of the
 ; range.
-define double @f6(double %a, double %b, i16 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ult i32 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -90,11 +90,11 @@ define double @f6(double %a, double %b, i16 *%ptr) {
 }
 
 ; ...and then the high end.
-define double @f7(double %a, double %b, i16 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp ult i32 %ext, -32769
   %res = select i1 %cond, double %a, double %b
@@ -103,12 +103,12 @@ define double @f7(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the low end of the CLHHSI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f8(double %a, double %b, i16 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp sgt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -117,12 +117,12 @@ define double @f8(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the low end of the CLHHSI range, using sign
 ; extension.  This should use CHHSI instead.
-define double @f9(double %a, double %b, i16 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: chhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp sgt i32 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -131,12 +131,12 @@ define double @f9(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the high end of the CLHHSI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f10(double %a, double %b, i16 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp slt i32 %ext, 65534
   %res = select i1 %cond, double %a, double %b
@@ -145,12 +145,12 @@ define double @f10(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the high end of the CLHHSI range, using sign
 ; extension.  This should use CHHSI instead.
-define double @f11(double %a, double %b, i16 *%ptr) {
+define double @f11(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: chhsi 0(%r2), -2
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp slt i32 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -159,11 +159,11 @@ define double @f11(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison above the high end of the CLHHSI range, using zero
 ; extension.  The condition is always true.
-define double @f12(double %a, double %b, i16 *%ptr) {
+define double @f12(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i32
   %cond = icmp slt i32 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -172,12 +172,12 @@ define double @f12(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the high end of the CHHSI range, using sign
 ; extension.
-define double @f13(double %a, double %b, i16 *%ptr) {
+define double @f13(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: chhsi 0(%r2), 32766
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp slt i32 %ext, 32766
   %res = select i1 %cond, double %a, double %b
@@ -186,11 +186,11 @@ define double @f13(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison above the high end of the CHHSI range, using sign
 ; extension.  This condition is always true.
-define double @f14(double %a, double %b, i16 *%ptr) {
+define double @f14(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: chhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp slt i32 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -199,12 +199,12 @@ define double @f14(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the low end of the CHHSI range, using sign
 ; extension.
-define double @f15(double %a, double %b, i16 *%ptr) {
+define double @f15(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: chhsi 0(%r2), -32767
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp sgt i32 %ext, -32767
   %res = select i1 %cond, double %a, double %b
@@ -213,11 +213,11 @@ define double @f15(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison below the low end of the CHHSI range, using sign
 ; extension.  This condition is always true.
-define double @f16(double %a, double %b, i16 *%ptr) {
+define double @f16(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK-NOT: chhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i32
   %cond = icmp sgt i32 %ext, -32769
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-31.ll b/llvm/test/CodeGen/SystemZ/int-cmp-31.ll
index 10f3b1260477d..0cfbb96eb7473 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-31.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-31.ll
@@ -5,12 +5,12 @@
 
 ; Check unsigned comparison near the low end of the CLHHSI range, using zero
 ; extension.
-define double @f1(double %a, double %b, i16 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ugt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -19,12 +19,12 @@ define double @f1(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison near the low end of the CLHHSI range, using sign
 ; extension.
-define double @f2(double %a, double %b, i16 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ugt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -33,12 +33,12 @@ define double @f2(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLHHSI range, using zero
 ; extension.
-define double @f3(double %a, double %b, i16 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ult i64 %ext, 65534
   %res = select i1 %cond, double %a, double %b
@@ -47,12 +47,12 @@ define double @f3(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison near the high end of the CLHHSI range, using sign
 ; extension.
-define double @f4(double %a, double %b, i16 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ult i64 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -61,11 +61,11 @@ define double @f4(double %a, double %b, i16 *%ptr) {
 
 ; Check unsigned comparison above the high end of the CLHHSI range, using zero
 ; extension.  The condition is always true.
-define double @f5(double %a, double %b, i16 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp ult i64 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -78,11 +78,11 @@ define double @f5(double %a, double %b, i16 *%ptr) {
 ; unlikely to occur in practice, we don't bother optimizing the second case,
 ; and simply ignore CLHHSI for this range.  First check the low end of the
 ; range.
-define double @f6(double %a, double %b, i16 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ult i64 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -90,11 +90,11 @@ define double @f6(double %a, double %b, i16 *%ptr) {
 }
 
 ; ...and then the high end.
-define double @f7(double %a, double %b, i16 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clhhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp ult i64 %ext, -32769
   %res = select i1 %cond, double %a, double %b
@@ -103,12 +103,12 @@ define double @f7(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the low end of the CLHHSI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f8(double %a, double %b, i16 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: clhhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp sgt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -117,12 +117,12 @@ define double @f8(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the low end of the CLHHSI range, using sign
 ; extension.  This should use CHHSI instead.
-define double @f9(double %a, double %b, i16 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: chhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp sgt i64 %ext, 1
   %res = select i1 %cond, double %a, double %b
@@ -131,12 +131,12 @@ define double @f9(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the high end of the CLHHSI range, using zero
 ; extension.  This is equivalent to unsigned comparison.
-define double @f10(double %a, double %b, i16 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: clhhsi 0(%r2), 65534
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp slt i64 %ext, 65534
   %res = select i1 %cond, double %a, double %b
@@ -145,12 +145,12 @@ define double @f10(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the high end of the CLHHSI range, using sign
 ; extension.  This should use CHHSI instead.
-define double @f11(double %a, double %b, i16 *%ptr) {
+define double @f11(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: chhsi 0(%r2), -2
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp slt i64 %ext, -2
   %res = select i1 %cond, double %a, double %b
@@ -159,11 +159,11 @@ define double @f11(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison above the high end of the CLHHSI range, using zero
 ; extension.  The condition is always true.
-define double @f12(double %a, double %b, i16 *%ptr) {
+define double @f12(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: cli
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = zext i16 %val to i64
   %cond = icmp slt i64 %ext, 65536
   %res = select i1 %cond, double %a, double %b
@@ -172,12 +172,12 @@ define double @f12(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the high end of the CHHSI range, using sign
 ; extension.
-define double @f13(double %a, double %b, i16 *%ptr) {
+define double @f13(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: chhsi 0(%r2), 32766
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp slt i64 %ext, 32766
   %res = select i1 %cond, double %a, double %b
@@ -186,11 +186,11 @@ define double @f13(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison above the high end of the CHHSI range, using sign
 ; extension.  This condition is always true.
-define double @f14(double %a, double %b, i16 *%ptr) {
+define double @f14(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: chhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp slt i64 %ext, 32768
   %res = select i1 %cond, double %a, double %b
@@ -199,12 +199,12 @@ define double @f14(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison near the low end of the CHHSI range, using sign
 ; extension.
-define double @f15(double %a, double %b, i16 *%ptr) {
+define double @f15(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: chhsi 0(%r2), -32767
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp sgt i64 %ext, -32767
   %res = select i1 %cond, double %a, double %b
@@ -213,11 +213,11 @@ define double @f15(double %a, double %b, i16 *%ptr) {
 
 ; Check signed comparison below the low end of the CHHSI range, using sign
 ; extension.  This condition is always true.
-define double @f16(double %a, double %b, i16 *%ptr) {
+define double @f16(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK-NOT: chhsi
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ext = sext i16 %val to i64
   %cond = icmp sgt i64 %ext, -32769
   %res = select i1 %cond, double %a, double %b

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-32.ll b/llvm/test/CodeGen/SystemZ/int-cmp-32.ll
index 2d312bb76d0d7..886106b71305f 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-32.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-32.ll
@@ -3,218 +3,218 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check ordered comparisons with 0.
-define double @f1(double %a, double %b, i32 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: chsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with 1.
-define double @f2(double %a, double %b, i32 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: chsi 0(%r2), 0
 ; CHECK-NEXT: bler %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with the high end of the signed 16-bit range.
-define double @f3(double %a, double %b, i32 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: chsi 0(%r2), 32767
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 32767
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CHSI.
-define double @f4(double %a, double %b, i32 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: chsi
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with -1.
-define double @f5(double %a, double %b, i32 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: chsi 0(%r2), -1
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with the low end of the 16-bit signed range.
-define double @f6(double %a, double %b, i32 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: chsi 0(%r2), -32768
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, -32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value down, which can't use CHSI.
-define double @f7(double %a, double %b, i32 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: chsi
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, -32769
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with 0.
-define double @f8(double %a, double %b, i32 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: chsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with 1.
-define double @f9(double %a, double %b, i32 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: chsi 0(%r2), 1
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with the high end of the signed 16-bit range.
-define double @f10(double %a, double %b, i32 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: chsi 0(%r2), 32767
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 32767
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CHSI.
-define double @f11(double %a, double %b, i32 *%ptr) {
+define double @f11(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: chsi
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with -1.
-define double @f12(double %a, double %b, i32 *%ptr) {
+define double @f12(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: chsi 0(%r2), -1
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with the low end of the 16-bit signed range.
-define double @f13(double %a, double %b, i32 *%ptr) {
+define double @f13(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: chsi 0(%r2), -32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, -32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value down, which should be treated as a positive value.
-define double @f14(double %a, double %b, i32 *%ptr) {
+define double @f14(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: chsi
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, -32769
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CHSI range.
-define double @f15(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f15(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f15:
 ; CHECK: chsi 4092(%r3), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1023
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next word up, which needs separate address logic,
-define double @f16(double %a, double %b, i32 *%base) {
+define double @f16(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f16:
 ; CHECK: aghi %r2, 4096
 ; CHECK: chsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1024
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check negative offsets, which also need separate address logic.
-define double @f17(double %a, double %b, i32 *%base) {
+define double @f17(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f17:
 ; CHECK: aghi %r2, -4
 ; CHECK: chsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -1
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -1
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -229,8 +229,8 @@ define double @f18(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i32, ptr %ptr
   %cond = icmp slt i32 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-33.ll b/llvm/test/CodeGen/SystemZ/int-cmp-33.ll
index 45b1185c566da..46983a4ee9b0c 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-33.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-33.ll
@@ -4,37 +4,37 @@
 
 ; Check ordered comparisons with a constant near the low end of the unsigned
 ; 16-bit range.
-define double @f1(double %a, double %b, i32 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clfhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp ugt i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with the high end of the unsigned 16-bit range.
-define double @f2(double %a, double %b, i32 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clfhsi 0(%r2), 65535
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp ult i32 %val, 65535
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CLFHSI.
-define double @f3(double %a, double %b, i32 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clfhsi
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp ult i32 %val, 65536
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -42,81 +42,81 @@ define double @f3(double %a, double %b, i32 *%ptr) {
 
 ; Check equality comparisons with 32768, the lowest value for which
 ; we prefer CLFHSI to CHSI.
-define double @f4(double %a, double %b, i32 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: clfhsi 0(%r2), 32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with the high end of the unsigned 16-bit range.
-define double @f5(double %a, double %b, i32 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: clfhsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 65535
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CLFHSI.
-define double @f6(double %a, double %b, i32 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: clfhsi
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cond = icmp eq i32 %val, 65536
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CLFHSI range.
-define double @f7(double %a, double %b, i32 %i1, i32 *%base) {
+define double @f7(double %a, double %b, i32 %i1, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: clfhsi 4092(%r3), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1023
+  %val = load i32, ptr %ptr
   %cond = icmp ugt i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next word up, which needs separate address logic,
-define double @f8(double %a, double %b, i32 *%base) {
+define double @f8(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: aghi %r2, 4096
 ; CHECK: clfhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1024
+  %val = load i32, ptr %ptr
   %cond = icmp ugt i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check negative offsets, which also need separate address logic.
-define double @f9(double %a, double %b, i32 *%base) {
+define double @f9(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, -4
 ; CHECK: clfhsi 0(%r2), 1
 ; CHECK-NEXT: bhr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -1
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -1
+  %val = load i32, ptr %ptr
   %cond = icmp ugt i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -131,8 +131,8 @@ define double @f10(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i32, ptr %ptr
   %cond = icmp ugt i32 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-34.ll b/llvm/test/CodeGen/SystemZ/int-cmp-34.ll
index fef0a952008a6..8ea0df3882af9 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-34.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-34.ll
@@ -3,218 +3,218 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check ordered comparisons with 0.
-define double @f1(double %a, double %b, i64 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: cghsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with 1.
-define double @f2(double %a, double %b, i64 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: cghsi 0(%r2), 0
 ; CHECK-NEXT: bler %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with the high end of the signed 16-bit range.
-define double @f3(double %a, double %b, i64 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: cghsi 0(%r2), 32767
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 32767
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CGHSI.
-define double @f4(double %a, double %b, i64 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: cghsi
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with -1.
-define double @f5(double %a, double %b, i64 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: cghsi 0(%r2), -1
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with the low end of the 16-bit signed range.
-define double @f6(double %a, double %b, i64 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: cghsi 0(%r2), -32768
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, -32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value down, which should be treated as a positive value.
-define double @f7(double %a, double %b, i64 *%ptr) {
+define double @f7(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: cghsi
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, -32769
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with 0.
-define double @f8(double %a, double %b, i64 *%ptr) {
+define double @f8(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: cghsi 0(%r2), 0
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with 1.
-define double @f9(double %a, double %b, i64 *%ptr) {
+define double @f9(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: cghsi 0(%r2), 1
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with the high end of the signed 16-bit range.
-define double @f10(double %a, double %b, i64 *%ptr) {
+define double @f10(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: cghsi 0(%r2), 32767
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 32767
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CGHSI.
-define double @f11(double %a, double %b, i64 *%ptr) {
+define double @f11(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: cghsi
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with -1.
-define double @f12(double %a, double %b, i64 *%ptr) {
+define double @f12(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: cghsi 0(%r2), -1
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, -1
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with the low end of the 16-bit signed range.
-define double @f13(double %a, double %b, i64 *%ptr) {
+define double @f13(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: cghsi 0(%r2), -32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, -32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value down, which should be treated as a positive value.
-define double @f14(double %a, double %b, i64 *%ptr) {
+define double @f14(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: cghsi
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, -32769
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CGHSI range.
-define double @f15(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f15(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f15:
 ; CHECK: cghsi 4088(%r3), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 511
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 511
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic,
-define double @f16(double %a, double %b, i64 *%base) {
+define double @f16(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f16:
 ; CHECK: aghi %r2, 4096
 ; CHECK: cghsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 512
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 512
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check negative offsets, which also need separate address logic.
-define double @f17(double %a, double %b, i64 *%base) {
+define double @f17(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f17:
 ; CHECK: aghi %r2, -8
 ; CHECK: cghsi 0(%r2), 0
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -1
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -1
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -229,8 +229,8 @@ define double @f18(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i64 *
-  %val = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i64, ptr %ptr
   %cond = icmp slt i64 %val, 0
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-35.ll b/llvm/test/CodeGen/SystemZ/int-cmp-35.ll
index 2c58a62cc1e94..33facfc6c04d4 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-35.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-35.ll
@@ -4,37 +4,37 @@
 
 ; Check ordered comparisons with a constant near the low end of the unsigned
 ; 16-bit range.
-define double @f1(double %a, double %b, i64 *%ptr) {
+define double @f1(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clghsi 0(%r2), 2
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check ordered comparisons with the high end of the unsigned 16-bit range.
-define double @f2(double %a, double %b, i64 *%ptr) {
+define double @f2(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clghsi 0(%r2), 65535
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 65535
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CLGHSI.
-define double @f3(double %a, double %b, i64 *%ptr) {
+define double @f3(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clghsi
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 65536
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -42,81 +42,81 @@ define double @f3(double %a, double %b, i64 *%ptr) {
 
 ; Check equality comparisons with 32768, the lowest value for which
 ; we prefer CLGHSI to CGHSI.
-define double @f4(double %a, double %b, i64 *%ptr) {
+define double @f4(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: clghsi 0(%r2), 32768
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 32768
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check equality comparisons with the high end of the unsigned 16-bit range.
-define double @f5(double %a, double %b, i64 *%ptr) {
+define double @f5(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: clghsi 0(%r2), 65535
 ; CHECK-NEXT: ber %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 65535
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next value up, which can't use CLGHSI.
-define double @f6(double %a, double %b, i64 *%ptr) {
+define double @f6(double %a, double %b, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: clghsi
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cond = icmp eq i64 %val, 65536
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the high end of the CLGHSI range.
-define double @f7(double %a, double %b, i64 %i1, i64 *%base) {
+define double @f7(double %a, double %b, i64 %i1, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: clghsi 4088(%r3), 2
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 511
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 511
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check the next doubleword up, which needs separate address logic,
-define double @f8(double %a, double %b, i64 *%base) {
+define double @f8(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: aghi %r2, 4096
 ; CHECK: clghsi 0(%r2), 2
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 512
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 512
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 2
   %res = select i1 %cond, double %a, double %b
   ret double %res
 }
 
 ; Check negative offsets, which also need separate address logic.
-define double @f9(double %a, double %b, i64 *%base) {
+define double @f9(double %a, double %b, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, -8
 ; CHECK: clghsi 0(%r2), 2
 ; CHECK-NEXT: blr %r14
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -1
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -1
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 2
   %res = select i1 %cond, double %a, double %b
   ret double %res
@@ -131,8 +131,8 @@ define double @f10(double %a, double %b, i64 %base, i64 %index) {
 ; CHECK: ldr %f0, %f2
 ; CHECK: br %r14
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i64 *
-  %val = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i64, ptr %ptr
   %cond = icmp ult i64 %val, 2
   %res = select i1 %cond, double %a, double %b
   ret double %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-36.ll b/llvm/test/CodeGen/SystemZ/int-cmp-36.ll
index eb1de728b86fb..211eff0d0fd0b 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-36.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-36.ll
@@ -13,7 +13,7 @@ define dso_local i32 @f1(i32 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i32
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -31,7 +31,7 @@ define dso_local i32 @f2(i32 %src1) {
 ; CHECK-NOT: chrl
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i32
   %cond = icmp ult i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -50,7 +50,7 @@ define dso_local i32 @f3(i32 %src1) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i32
   %cond = icmp eq i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -69,7 +69,7 @@ define dso_local i32 @f4(i32 %src1) {
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i32
   %cond = icmp ne i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -89,7 +89,7 @@ define dso_local i32 @f5(i32 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@h, align 1
+  %val = load i16, ptr at h, align 1
   %src2 = sext i16 %val to i32
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -108,7 +108,7 @@ define dso_local i32 @f6(i32 %src2) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src1 = sext i16 %val to i32
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-37.ll b/llvm/test/CodeGen/SystemZ/int-cmp-37.ll
index 3eb338c0248c8..176289a9ebc9e 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-37.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-37.ll
@@ -13,7 +13,7 @@ define dso_local i32 @f1(i32 %src1) {
 ; CHECK-NEXT: jl
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i32
   %cond = icmp ult i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -32,7 +32,7 @@ define dso_local i32 @f2(i32 %src1) {
 ; CHECK-NOT: clhrl
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i32
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -52,7 +52,7 @@ define dso_local i32 @f3(i32 %src1) {
 ; CHECK-NEXT: je
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i32
   %cond = icmp eq i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -72,7 +72,7 @@ define dso_local i32 @f4(i32 %src1) {
 ; CHECK-NEXT: jlh
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i32
   %cond = icmp ne i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -93,7 +93,7 @@ define dso_local i32 @f5(i32 %src1) {
 ; CHECK: clrjl %r2, [[VAL]],
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@h, align 1
+  %val = load i16, ptr at h, align 1
   %src2 = zext i16 %val to i32
   %cond = icmp ult i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -113,7 +113,7 @@ define dso_local i32 @f6(i32 %src2) {
 ; CHECK-NEXT: jh {{\.L.*}}
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src1 = zext i16 %val to i32
   %cond = icmp ult i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-38.ll b/llvm/test/CodeGen/SystemZ/int-cmp-38.ll
index 32ab73b37ba7b..d95e5d8ada5f7 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-38.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-38.ll
@@ -13,7 +13,7 @@ define dso_local i32 @f1(i32 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i32, i32 *@g
+  %src2 = load i32, ptr at g
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -31,7 +31,7 @@ define dso_local i32 @f2(i32 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i32, i32 *@g
+  %src2 = load i32, ptr at g
   %cond = icmp ult i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -49,7 +49,7 @@ define dso_local i32 @f3(i32 %src1) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i32, i32 *@g
+  %src2 = load i32, ptr at g
   %cond = icmp eq i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -67,7 +67,7 @@ define dso_local i32 @f4(i32 %src1) {
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i32, i32 *@g
+  %src2 = load i32, ptr at g
   %cond = icmp ne i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -86,7 +86,7 @@ define dso_local i32 @f5(i32 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i32, i32 *@h, align 2
+  %src2 = load i32, ptr at h, align 2
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -105,7 +105,7 @@ define dso_local i32 @f6(i32 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i32, i32 *@h, align 2
+  %src2 = load i32, ptr at h, align 2
   %cond = icmp ult i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -123,7 +123,7 @@ define dso_local i32 @f7(i32 %src2) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %src1 = load i32, i32 *@g
+  %src1 = load i32, ptr at g
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-39.ll b/llvm/test/CodeGen/SystemZ/int-cmp-39.ll
index c5f07e5240516..164a432e27ccd 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-39.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-39.ll
@@ -13,7 +13,7 @@ define dso_local i64 @f1(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -31,7 +31,7 @@ define dso_local i64 @f2(i64 %src1) {
 ; CHECK-NOT: cghrl
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -50,7 +50,7 @@ define dso_local i64 @f3(i64 %src1) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i64
   %cond = icmp eq i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -69,7 +69,7 @@ define dso_local i64 @f4(i64 %src1) {
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = sext i16 %val to i64
   %cond = icmp ne i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -89,7 +89,7 @@ define dso_local i64 @f5(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@h, align 1
+  %val = load i16, ptr at h, align 1
   %src2 = sext i16 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -108,7 +108,7 @@ define dso_local i64 @f6(i64 %src2) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src1 = sext i16 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-40.ll b/llvm/test/CodeGen/SystemZ/int-cmp-40.ll
index 8851d4aa94d07..55f4cea8fc043 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-40.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-40.ll
@@ -13,7 +13,7 @@ define dso_local i64 @f1(i64 %src1) {
 ; CHECK-NEXT: jl
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -32,7 +32,7 @@ define dso_local i64 @f2(i64 %src1) {
 ; CHECK-NOT: clghrl
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -52,7 +52,7 @@ define dso_local i64 @f3(i64 %src1) {
 ; CHECK-NEXT: je
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i64
   %cond = icmp eq i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -72,7 +72,7 @@ define dso_local i64 @f4(i64 %src1) {
 ; CHECK-NEXT: jlh
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src2 = zext i16 %val to i64
   %cond = icmp ne i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -93,7 +93,7 @@ define dso_local i64 @f5(i64 %src1) {
 ; CHECK: clgrjl %r2, [[VAL]],
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@h, align 1
+  %val = load i16, ptr at h, align 1
   %src2 = zext i16 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -113,7 +113,7 @@ define dso_local i64 @f6(i64 %src2) {
 ; CHECK-NEXT: jh {{\.L.*}}
 ; CHECK: br %r14
 entry:
-  %val = load i16, i16 *@g
+  %val = load i16, ptr at g
   %src1 = zext i16 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-41.ll b/llvm/test/CodeGen/SystemZ/int-cmp-41.ll
index 8435140ec4e89..693c294f84f1c 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-41.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-41.ll
@@ -13,7 +13,7 @@ define dso_local i64 @f1(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = sext i32 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -31,7 +31,7 @@ define dso_local i64 @f2(i64 %src1) {
 ; CHECK-NOT: cgfrl
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = sext i32 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -50,7 +50,7 @@ define dso_local i64 @f3(i64 %src1) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = sext i32 %val to i64
   %cond = icmp eq i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -69,7 +69,7 @@ define dso_local i64 @f4(i64 %src1) {
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = sext i32 %val to i64
   %cond = icmp ne i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -89,7 +89,7 @@ define dso_local i64 @f5(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@h, align 2
+  %val = load i32, ptr at h, align 2
   %src2 = sext i32 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -108,7 +108,7 @@ define dso_local i64 @f6(i64 %src2) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src1 = sext i32 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-42.ll b/llvm/test/CodeGen/SystemZ/int-cmp-42.ll
index 7e0533d489e9b..79e923bd8e554 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-42.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-42.ll
@@ -13,7 +13,7 @@ define dso_local i64 @f1(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = zext i32 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -31,7 +31,7 @@ define dso_local i64 @f2(i64 %src1) {
 ; CHECK-NOT: clgfrl
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = zext i32 %val to i64
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -50,7 +50,7 @@ define dso_local i64 @f3(i64 %src1) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = zext i32 %val to i64
   %cond = icmp eq i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -69,7 +69,7 @@ define dso_local i64 @f4(i64 %src1) {
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src2 = zext i32 %val to i64
   %cond = icmp ne i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -89,7 +89,7 @@ define dso_local i64 @f5(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@h, align 2
+  %val = load i32, ptr at h, align 2
   %src2 = zext i32 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
@@ -108,7 +108,7 @@ define dso_local i64 @f6(i64 %src2) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *@g
+  %val = load i32, ptr at g
   %src1 = zext i32 %val to i64
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-43.ll b/llvm/test/CodeGen/SystemZ/int-cmp-43.ll
index cab58ae10831e..5874ce55267dd 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-43.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-43.ll
@@ -13,7 +13,7 @@ define dso_local i64 @f1(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i64, i64 *@g
+  %src2 = load i64, ptr at g
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -31,7 +31,7 @@ define dso_local i64 @f2(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i64, i64 *@g
+  %src2 = load i64, ptr at g
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -49,7 +49,7 @@ define dso_local i64 @f3(i64 %src1) {
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i64, i64 *@g
+  %src2 = load i64, ptr at g
   %cond = icmp eq i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -67,7 +67,7 @@ define dso_local i64 @f4(i64 %src1) {
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i64, i64 *@g
+  %src2 = load i64, ptr at g
   %cond = icmp ne i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -86,7 +86,7 @@ define dso_local i64 @f5(i64 %src1) {
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %src2 = load i64, i64 *@h, align 4
+  %src2 = load i64, ptr at h, align 4
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -104,7 +104,7 @@ define dso_local i64 @f6(i64 %src2) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %src1 = load i64, i64 *@g
+  %src1 = load i64, ptr at g
   %cond = icmp slt i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-44.ll b/llvm/test/CodeGen/SystemZ/int-cmp-44.ll
index 2321b7d16a2b8..41ace057706c3 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-44.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-44.ll
@@ -9,7 +9,7 @@ declare void @foo()
 ; Addition provides enough for comparisons with zero if we know no
 ; signed overflow happens, which is when the "nsw" flag is set.
 ; First test the EQ case.
-define i32 @f1(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f1(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: ber %r14
@@ -20,7 +20,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -28,7 +28,7 @@ exit:
 }
 
 ; ...and again with NE.
-define i32 @f2(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f2(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: blhr %r14
@@ -39,7 +39,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -47,7 +47,7 @@ exit:
 }
 
 ; ...and again with SLT.
-define i32 @f3(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f3(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: blr %r14
@@ -57,7 +57,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -65,7 +65,7 @@ exit:
 }
 
 ; ...and again with SLE.
-define i32 @f4(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f4(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: bler %r14
@@ -75,7 +75,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -83,7 +83,7 @@ exit:
 }
 
 ; ...and again with SGT.
-define i32 @f5(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f5(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: bhr %r14
@@ -93,7 +93,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -101,7 +101,7 @@ exit:
 }
 
 ; ...and again with SGE.
-define i32 @f6(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f6(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: bher %r14
@@ -111,7 +111,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -120,19 +120,19 @@ exit:
 
 ; Subtraction provides in addition also enough for equality comparisons with
 ; zero even without "nsw".
-define i32 @f7(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f7(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK: s %r2, 0(%r4)
 ; CHECK-NEXT: bner %r14
 ; CHECK: br %r14
 entry:
-  %cur = load i32, i32 *%dest
+  %cur = load i32, ptr %dest
   %res = sub i32 %a, %cur
   %cmp = icmp ne i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -140,18 +140,18 @@ exit:
 }
 
 ; ...and again with SLT.
-define i32 @f8(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f8(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK: s %r2, 0(%r4)
 ; CHECK-NEXT: blr %r14
 entry:
-  %cur = load i32, i32 *%dest
+  %cur = load i32, ptr %dest
   %res = sub nsw i32 %a, %cur
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -160,7 +160,7 @@ exit:
 
 ; Logic register-register instructions also provide enough for equality
 ; comparisons with zero.
-define i32 @f9(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f9(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: nr %r2, %r3
 ; CHECK-NEXT: blr %r14
@@ -171,7 +171,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -179,7 +179,7 @@ exit:
 }
 
 ; ...but not for ordered comparisons.
-define i32 @f10(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f10(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: nr %r2, %r3
 ; CHECK-NEXT: cibl %r2, 0, 0(%r14)
@@ -190,7 +190,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -199,7 +199,7 @@ exit:
 
 ; Logic register-immediate instructions also provide enough for equality
 ; comparisons with zero if the immediate covers the whole register.
-define i32 @f11(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f11(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f11:
 ; CHECK: nilf %r2, 100000001
 ; CHECK-NEXT: blr %r14
@@ -210,7 +210,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -219,7 +219,7 @@ exit:
 
 ; Partial logic register-immediate instructions do not provide simple
 ; zero results.
-define i32 @f12(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f12(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK: nill %r2, 65436
 ; CHECK-NEXT: ciblh %r2, 0, 0(%r14)
@@ -230,7 +230,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -238,7 +238,7 @@ exit:
 }
 
 ; SRA provides the same CC result as a comparison with zero.
-define i32 @f13(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f13(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK: sra %r2, 0(%r3)
 ; CHECK-NEXT: ber %r14
@@ -249,7 +249,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -257,7 +257,7 @@ exit:
 }
 
 ; ...and again with NE.
-define i32 @f14(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f14(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f14:
 ; CHECK: sra %r2, 0(%r3)
 ; CHECK-NEXT: blhr %r14
@@ -268,7 +268,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -276,7 +276,7 @@ exit:
 }
 
 ; ...and SLT.
-define i32 @f15(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f15(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: sra %r2, 0(%r3)
 ; CHECK-NEXT: blr %r14
@@ -287,7 +287,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -295,7 +295,7 @@ exit:
 }
 
 ; ...and SLE.
-define i32 @f16(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f16(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: sra %r2, 0(%r3)
 ; CHECK-NEXT: bler %r14
@@ -306,7 +306,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -314,7 +314,7 @@ exit:
 }
 
 ; ...and SGT.
-define i32 @f17(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f17(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f17:
 ; CHECK: sra %r2, 0(%r3)
 ; CHECK-NEXT: bhr %r14
@@ -325,7 +325,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -333,7 +333,7 @@ exit:
 }
 
 ; ...and SGE.
-define i32 @f18(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f18(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f18:
 ; CHECK: sra %r2, 0(%r3)
 ; CHECK-NEXT: bher %r14
@@ -344,7 +344,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -353,7 +353,7 @@ exit:
 
 ; RISBG provides the same result as a comparison against zero.
 ; Test the EQ case.
-define i64 @f19(i64 %a, i64 %b, i64 *%dest) {
+define i64 @f19(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f19:
 ; CHECK: risbg %r2, %r3, 0, 190, 0
 ; CHECK-NEXT: ber %r14
@@ -364,7 +364,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %b, i64 *%dest
+  store i64 %b, ptr %dest
   br label %exit
 
 exit:
@@ -372,7 +372,7 @@ exit:
 }
 
 ; ...and the SLT case.
-define i64 @f20(i64 %a, i64 %b, i64 *%dest) {
+define i64 @f20(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f20:
 ; CHECK: risbg %r2, %r3, 0, 190, 0
 ; CHECK-NEXT: blr %r14
@@ -383,7 +383,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %b, i64 *%dest
+  store i64 %b, ptr %dest
   br label %exit
 
 exit:
@@ -392,7 +392,7 @@ exit:
 
 ; Test a case where the register we're testing is set by a non-CC-clobbering
 ; instruction.
-define i32 @f21(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f21(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f21:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: #APP
@@ -407,7 +407,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -415,7 +415,7 @@ exit:
 }
 
 ; ...and again with a CC-clobbering instruction.
-define i32 @f22(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f22(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f22:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: #APP
@@ -430,7 +430,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -438,7 +438,7 @@ exit:
 }
 
 ; Check that stores do not interfere.
-define i32 @f23(i32 %a, i32 %b, i32 *%dest1, i32 *%dest2) {
+define i32 @f23(i32 %a, i32 %b, ptr %dest1, ptr %dest2) {
 ; CHECK-LABEL: f23:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: st %r2, 0(%r4)
@@ -446,12 +446,12 @@ define i32 @f23(i32 %a, i32 %b, i32 *%dest1, i32 *%dest2) {
 ; CHECK: br %r14
 entry:
   %res = add nsw i32 %a, 1000000
-  store i32 %res, i32 *%dest1
+  store i32 %res, ptr %dest1
   %cmp = icmp ne i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest2
+  store i32 %b, ptr %dest2
   br label %exit
 
 exit:
@@ -459,14 +459,14 @@ exit:
 }
 
 ; Check that calls do interfere.
-define void @f24(i32 *%ptr) {
+define void @f24(ptr %ptr) {
 ; CHECK-LABEL: f24:
 ; CHECK: afi [[REG:%r[0-9]+]], 1000000
 ; CHECK-NEXT: brasl %r14, foo at PLT
 ; CHECK-NEXT: cijlh [[REG]], 0, .L{{.*}}
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %xor = xor i32 %val, 1
   %add = add i32 %xor, 1000000
   call void @foo()
@@ -474,7 +474,7 @@ entry:
   br i1 %cmp, label %store, label %exit, !prof !1
 
 store:
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   br label %exit
 
 exit:
@@ -482,7 +482,7 @@ exit:
 }
 
 ; Check that inline asms don't interfere if they don't clobber CC.
-define void @f25(i32 %a, i32 *%ptr) {
+define void @f25(i32 %a, ptr %ptr) {
 ; CHECK-LABEL: f25:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: #APP
@@ -497,7 +497,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   br label %exit
 
 exit:
@@ -505,7 +505,7 @@ exit:
 }
 
 ; ...but do interfere if they do clobber CC.
-define void @f26(i32 %a, i32 *%ptr) {
+define void @f26(i32 %a, ptr %ptr) {
 ; CHECK-LABEL: f26:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: #APP
@@ -520,7 +520,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %add, i32 *%ptr
+  store i32 %add, ptr %ptr
   br label %exit
 
 exit:
@@ -529,7 +529,7 @@ exit:
 
 ; Test a case where CC is set based on a 
diff erent register from the
 ; compare input.
-define i32 @f27(i32 %a, i32 %b, i32 *%dest1, i32 *%dest2) {
+define i32 @f27(i32 %a, i32 %b, ptr %dest1, ptr %dest2) {
 ; CHECK-LABEL: f27:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: sr %r3, %r2
@@ -539,12 +539,12 @@ define i32 @f27(i32 %a, i32 %b, i32 *%dest1, i32 *%dest2) {
 entry:
   %add = add nsw i32 %a, 1000000
   %sub = sub i32 %b, %add
-  store i32 %sub, i32 *%dest1
+  store i32 %sub, ptr %dest1
   %cmp = icmp eq i32 %add, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %sub, i32 *%dest2
+  store i32 %sub, ptr %dest2
   br label %exit
 
 exit:
@@ -552,21 +552,21 @@ exit:
 }
 
 ; Make sure that we don't confuse a base register for a destination.
-define void @f28(i64 %a, i64 *%dest) {
+define void @f28(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f28:
 ; CHECK: xi 0(%r2), 15
 ; CHECK: cgibe %r2, 0, 0(%r14)
 ; CHECK: br %r14
 entry:
-  %ptr = inttoptr i64 %a to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %a to ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 15
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   %cmp = icmp eq i64 %a, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %a, i64 *%dest
+  store i64 %a, ptr %dest
   br label %exit
 
 exit:
@@ -574,20 +574,20 @@ exit:
 }
 
 ; Test that L gets converted to LT where useful.
-define i32 @f29(i64 %base, i64 %index, i32 *%dest) {
+define i32 @f29(i64 %base, i64 %index, ptr %dest) {
 ; CHECK-LABEL: f29:
 ; CHECK: lt %r2, 0({{%r2,%r3|%r3,%r2}})
 ; CHECK-NEXT: bler %r14
 ; CHECK: br %r14
 entry:
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %res = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %res = load i32, ptr %ptr
   %cmp = icmp sle i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %res, i32 *%dest
+  store i32 %res, ptr %dest
   br label %exit
 
 exit:
@@ -595,7 +595,7 @@ exit:
 }
 
 ; Test that LY gets converted to LT where useful.
-define i32 @f30(i64 %base, i64 %index, i32 *%dest) {
+define i32 @f30(i64 %base, i64 %index, ptr %dest) {
 ; CHECK-LABEL: f30:
 ; CHECK: lt %r2, 100000({{%r2,%r3|%r3,%r2}})
 ; CHECK-NEXT: bler %r14
@@ -603,13 +603,13 @@ define i32 @f30(i64 %base, i64 %index, i32 *%dest) {
 entry:
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 100000
-  %ptr = inttoptr i64 %add2 to i32 *
-  %res = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %res = load i32, ptr %ptr
   %cmp = icmp sle i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %res, i32 *%dest
+  store i32 %res, ptr %dest
   br label %exit
 
 exit:
@@ -617,20 +617,20 @@ exit:
 }
 
 ; Test that LG gets converted to LTG where useful.
-define i64 @f31(i64 %base, i64 %index, i64 *%dest) {
+define i64 @f31(i64 %base, i64 %index, ptr %dest) {
 ; CHECK-LABEL: f31:
 ; CHECK: ltg %r2, 0({{%r2,%r3|%r3,%r2}})
 ; CHECK-NEXT: bher %r14
 ; CHECK: br %r14
 entry:
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i64 *
-  %res = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %res = load i64, ptr %ptr
   %cmp = icmp sge i64 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %res, i64 *%dest
+  store i64 %res, ptr %dest
   br label %exit
 
 exit:
@@ -638,21 +638,21 @@ exit:
 }
 
 ; Test that LGF gets converted to LTGF where useful.
-define i64 @f32(i64 %base, i64 %index, i64 *%dest) {
+define i64 @f32(i64 %base, i64 %index, ptr %dest) {
 ; CHECK-LABEL: f32:
 ; CHECK: ltgf %r2, 0({{%r2,%r3|%r3,%r2}})
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i32, ptr %ptr
   %res = sext i32 %val to i64
   %cmp = icmp sgt i64 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %res, i64 *%dest
+  store i64 %res, ptr %dest
   br label %exit
 
 exit:
@@ -660,7 +660,7 @@ exit:
 }
 
 ; Test that LR gets converted to LTR where useful.
-define i32 @f33(i32 %dummy, i32 %val, i32 *%dest) {
+define i32 @f33(i32 %dummy, i32 %val, ptr %dest) {
 ; CHECK-LABEL: f33:
 ; CHECK: ltr %r2, %r3
 ; CHECK-NEXT: #APP
@@ -674,7 +674,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %val, i32 *%dest
+  store i32 %val, ptr %dest
   br label %exit
 
 exit:
@@ -682,7 +682,7 @@ exit:
 }
 
 ; Test that LGR gets converted to LTGR where useful.
-define i64 @f34(i64 %dummy, i64 %val, i64 *%dest) {
+define i64 @f34(i64 %dummy, i64 %val, ptr %dest) {
 ; CHECK-LABEL: f34:
 ; CHECK: ltgr %r2, %r3
 ; CHECK-NEXT: #APP
@@ -696,7 +696,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %val, i64 *%dest
+  store i64 %val, ptr %dest
   br label %exit
 
 exit:
@@ -704,7 +704,7 @@ exit:
 }
 
 ; Test that LGFR gets converted to LTGFR where useful.
-define i64 @f35(i64 %dummy, i32 %val, i64 *%dest) {
+define i64 @f35(i64 %dummy, i32 %val, ptr %dest) {
 ; CHECK-LABEL: f35:
 ; CHECK: ltgfr %r2, %r3
 ; CHECK-NEXT: #APP
@@ -719,7 +719,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %ext, i64 *%dest
+  store i64 %ext, ptr %dest
   br label %exit
 
 exit:
@@ -728,7 +728,7 @@ exit:
 
 ; Test a case where it is the source rather than destination of LR that
 ; we need.
-define i32 @f36(i32 %val, i32 %dummy, i32 *%dest) {
+define i32 @f36(i32 %val, i32 %dummy, ptr %dest) {
 ; CHECK-LABEL: f36:
 ; CHECK: ltr %r3, %r2
 ; CHECK-NEXT: #APP
@@ -742,7 +742,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %val, i32 *%dest
+  store i32 %val, ptr %dest
   br label %exit
 
 exit:
@@ -751,7 +751,7 @@ exit:
 
 ; Test a case where it is the source rather than destination of LGR that
 ; we need.
-define i64 @f37(i64 %val, i64 %dummy, i64 *%dest) {
+define i64 @f37(i64 %val, i64 %dummy, ptr %dest) {
 ; CHECK-LABEL: f37:
 ; CHECK: ltgr %r3, %r2
 ; CHECK-NEXT: #APP
@@ -765,7 +765,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %val, i64 *%dest
+  store i64 %val, ptr %dest
   br label %exit
 
 exit:
@@ -774,7 +774,7 @@ exit:
 
 ; Test a case where it is the source rather than destination of LGFR that
 ; we need.
-define i32 @f38(i32 %val, i64 %dummy, i32 *%dest) {
+define i32 @f38(i32 %val, i64 %dummy, ptr %dest) {
 ; CHECK-LABEL: f38:
 ; CHECK: ltgfr %r3, %r2
 ; CHECK-NEXT: #APP
@@ -789,7 +789,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %val, i32 *%dest
+  store i32 %val, ptr %dest
   br label %exit
 
 exit:
@@ -797,7 +797,7 @@ exit:
 }
 
 ; Test f35 for in-register extensions.
-define i64 @f39(i64 %dummy, i64 %a, i64 *%dest) {
+define i64 @f39(i64 %dummy, i64 %a, ptr %dest) {
 ; CHECK-LABEL: f39:
 ; CHECK: ltgfr %r2, %r3
 ; CHECK-NEXT: #APP
@@ -813,7 +813,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %ext, i64 *%dest
+  store i64 %ext, ptr %dest
   br label %exit
 
 exit:
@@ -821,7 +821,7 @@ exit:
 }
 
 ; ...and again with what InstCombine would produce for f40.
-define i64 @f40(i64 %dummy, i64 %a, i64 *%dest) {
+define i64 @f40(i64 %dummy, i64 %a, ptr %dest) {
 ; CHECK-LABEL: f40:
 ; CHECK: ltgfr %r2, %r3
 ; CHECK-NEXT: #APP
@@ -837,7 +837,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %ext, i64 *%dest
+  store i64 %ext, ptr %dest
   br label %exit
 
 exit:
@@ -845,19 +845,19 @@ exit:
 }
 
 ; Try a form of f7 in which the subtraction operands are compared directly.
-define i32 @f41(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f41(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f41:
 ; CHECK: s %r2, 0(%r4)
 ; CHECK-NEXT: bner %r14
 ; CHECK: br %r14
 entry:
-  %cur = load i32, i32 *%dest
+  %cur = load i32, ptr %dest
   %res = sub i32 %a, %cur
   %cmp = icmp ne i32 %a, %cur
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 %b, i32 *%dest
+  store i32 %b, ptr %dest
   br label %exit
 
 exit:
@@ -865,21 +865,21 @@ exit:
 }
 
 ; A version of f32 that tests the unextended value.
-define i64 @f42(i64 %base, i64 %index, i64 *%dest) {
+define i64 @f42(i64 %base, i64 %index, ptr %dest) {
 ; CHECK-LABEL: f42:
 ; CHECK: ltgf %r2, 0({{%r2,%r3|%r3,%r2}})
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
   %add = add i64 %base, %index
-  %ptr = inttoptr i64 %add to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %val = load i32, ptr %ptr
   %res = sext i32 %val to i64
   %cmp = icmp sgt i32 %val, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i64 %res, i64 *%dest
+  store i64 %res, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-45.ll b/llvm/test/CodeGen/SystemZ/int-cmp-45.ll
index 296cf4497428f..3b8a008f1d8bd 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-45.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-45.ll
@@ -6,30 +6,30 @@
 ; Addition provides enough for comparisons with zero if we know no
 ; signed overflow happens, which is when the "nsw" flag is set.
 ; First test the EQ case with LOC.
-define i32 @f1(i32 %a, i32 %b, i32 *%cptr) {
+define i32 @f1(i32 %a, i32 %b, ptr %cptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: loce %r3, 0(%r4)
 ; CHECK: br %r14
   %add = add nsw i32 %a, 1000000
   %cmp = icmp eq i32 %add, 0
-  %c = load i32, i32 *%cptr
+  %c = load i32, ptr %cptr
   %arg = select i1 %cmp, i32 %c, i32 %b
   call void asm sideeffect "blah $0", "{r3}"(i32 %arg)
   ret i32 %add
 }
 
 ; ...and again with STOC.
-define i32 @f2(i32 %a, i32 %b, i32 *%cptr) {
+define i32 @f2(i32 %a, i32 %b, ptr %cptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: stoce %r3, 0(%r4)
 ; CHECK: br %r14
   %add = add nsw i32 %a, 1000000
   %cmp = icmp eq i32 %add, 0
-  %c = load i32, i32 *%cptr
+  %c = load i32, ptr %cptr
   %newval = select i1 %cmp, i32 %b, i32 %c
-  store i32 %newval, i32 *%cptr
+  store i32 %newval, ptr %cptr
   ret i32 %add
 }
 
@@ -47,30 +47,30 @@ define i32 @f3(i32 %a, i32 %b, i32 %c) {
 }
 
 ; ...and again with LOC.
-define i32 @f4(i32 %a, i32 %b, i32 *%cptr) {
+define i32 @f4(i32 %a, i32 %b, ptr %cptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: loclh %r3, 0(%r4)
 ; CHECK: br %r14
   %add = add nsw i32 %a, 1000000
   %cmp = icmp eq i32 %add, 0
-  %c = load i32, i32 *%cptr
+  %c = load i32, ptr %cptr
   %arg = select i1 %cmp, i32 %b, i32 %c
   call void asm sideeffect "blah $0", "{r3}"(i32 %arg)
   ret i32 %add
 }
 
 ; ...and again with STOC.
-define i32 @f5(i32 %a, i32 %b, i32 *%cptr) {
+define i32 @f5(i32 %a, i32 %b, ptr %cptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: stoclh %r3, 0(%r4)
 ; CHECK: br %r14
   %add = add nsw i32 %a, 1000000
   %cmp = icmp eq i32 %add, 0
-  %c = load i32, i32 *%cptr
+  %c = load i32, ptr %cptr
   %newval = select i1 %cmp, i32 %c, i32 %b
-  store i32 %newval, i32 *%cptr
+  store i32 %newval, ptr %cptr
   ret i32 %add
 }
 
@@ -88,29 +88,29 @@ define i32 @f6(i32 %a, i32 %b, i32 %c) {
 }
 
 ; ...and again with LOC.
-define i32 @f7(i32 %a, i32 %b, i32 *%cptr) {
+define i32 @f7(i32 %a, i32 %b, ptr %cptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: loce %r3, 0(%r4)
 ; CHECK: br %r14
   %add = add nsw i32 %a, 1000000
   %cmp = icmp ne i32 %add, 0
-  %c = load i32, i32 *%cptr
+  %c = load i32, ptr %cptr
   %arg = select i1 %cmp, i32 %b, i32 %c
   call void asm sideeffect "blah $0", "{r3}"(i32 %arg)
   ret i32 %add
 }
 
 ; ...and again with STOC.
-define i32 @f8(i32 %a, i32 %b, i32 *%cptr) {
+define i32 @f8(i32 %a, i32 %b, ptr %cptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: afi %r2, 1000000
 ; CHECK-NEXT: stoce %r3, 0(%r4)
 ; CHECK: br %r14
   %add = add nsw i32 %a, 1000000
   %cmp = icmp ne i32 %add, 0
-  %c = load i32, i32 *%cptr
+  %c = load i32, ptr %cptr
   %newval = select i1 %cmp, i32 %c, i32 %b
-  store i32 %newval, i32 *%cptr
+  store i32 %newval, ptr %cptr
   ret i32 %add
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-46.ll b/llvm/test/CodeGen/SystemZ/int-cmp-46.ll
index 8374cd3bec50a..364063d9f2703 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-46.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-46.ll
@@ -16,7 +16,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -35,7 +35,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -54,7 +54,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -72,7 +72,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -91,7 +91,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -111,7 +111,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -130,7 +130,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -150,7 +150,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -169,7 +169,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -189,7 +189,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -208,7 +208,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -228,7 +228,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -247,7 +247,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -266,7 +266,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -285,7 +285,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -305,7 +305,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -324,7 +324,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -344,7 +344,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -363,7 +363,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -383,7 +383,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -403,7 +403,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -423,7 +423,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -443,7 +443,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -463,7 +463,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -483,7 +483,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-47.ll b/llvm/test/CodeGen/SystemZ/int-cmp-47.ll
index cfb7ae2ecde96..e59c1a7c852ee 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-47.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-47.ll
@@ -22,7 +22,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -45,7 +45,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -68,7 +68,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -92,7 +92,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -115,7 +115,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -138,7 +138,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -163,7 +163,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -186,7 +186,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -209,7 +209,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -232,7 +232,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -256,7 +256,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -280,7 +280,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -302,7 +302,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -324,7 +324,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -346,7 +346,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -368,7 +368,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -391,7 +391,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -412,7 +412,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -436,7 +436,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-48.ll b/llvm/test/CodeGen/SystemZ/int-cmp-48.ll
index 0111906b9ce28..a882ce1295ddc 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-48.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-48.ll
@@ -5,19 +5,19 @@
 @g = global i32 0
 
 ; Check a simple branching use of TM.
-define void @f1(i8 *%src) {
+define void @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: tm 0(%r2), 1
 ; CHECK: ber %r14
 ; CHECK: br %r14
 entry:
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -26,21 +26,21 @@ exit:
 
 
 ; Check that we do not fold across an aliasing store.
-define void @f2(i8 *%src) {
+define void @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: tm 0(%r2), 1
 ; CHECK: mvi 0(%r2), 0
 ; CHECK: ber %r14
 ; CHECK: br %r14
 entry:
-  %byte = load i8, i8 *%src
-  store i8 0, i8 *%src
+  %byte = load i8, ptr %src
+  store i8 0, ptr %src
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -48,12 +48,12 @@ exit:
 }
 
 ; Check a simple select-based use of TM.
-define double @f3(i8 *%src, double %a, double %b) {
+define double @f3(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: tm 0(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -61,27 +61,27 @@ define double @f3(i8 *%src, double %a, double %b) {
 }
 
 ; Check that we do not fold across an aliasing store.
-define double @f4(i8 *%src, double %a, double %b) {
+define double @f4(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f4:
 ; CHECK: tm 0(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: mvi 0(%r2), 0
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
-  store i8 0, i8 *%src
+  store i8 0, ptr %src
   ret double %res
 }
 
 ; Check an inequality check.
-define double @f5(i8 *%src, double %a, double %b) {
+define double @f5(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f5:
 ; CHECK: tm 0(%r2), 1
 ; CHECK: jne {{\.L.*}}
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 1
   %cmp = icmp ne i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -89,12 +89,12 @@ define double @f5(i8 *%src, double %a, double %b) {
 }
 
 ; Check that we can also use TM for equality comparisons with the mask.
-define double @f6(i8 *%src, double %a, double %b) {
+define double @f6(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f6:
 ; CHECK: tm 0(%r2), 254
 ; CHECK: jo {{\.L.*}}
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 254
   %cmp = icmp eq i8 %and, 254
   %res = select i1 %cmp, double %b, double %a
@@ -102,12 +102,12 @@ define double @f6(i8 *%src, double %a, double %b) {
 }
 
 ; Check inequality comparisons with the mask.
-define double @f7(i8 *%src, double %a, double %b) {
+define double @f7(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f7:
 ; CHECK: tm 0(%r2), 254
 ; CHECK: jno {{\.L.*}}
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 254
   %cmp = icmp ne i8 %and, 254
   %res = select i1 %cmp, double %b, double %a
@@ -116,13 +116,13 @@ define double @f7(i8 *%src, double %a, double %b) {
 
 ; Check that we do not use the memory TM instruction when CC is being tested
 ; for 2.
-define double @f8(i8 *%src, double %a, double %b) {
+define double @f8(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f8:
 ; CHECK: llc [[REG:%r[0-5]]], 0(%r2)
 ; CHECK: tmll [[REG]], 3
 ; CHECK: jh {{\.L.*}}
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 3
   %cmp = icmp eq i8 %and, 2
   %res = select i1 %cmp, double %b, double %a
@@ -130,13 +130,13 @@ define double @f8(i8 *%src, double %a, double %b) {
 }
 
 ; ...likewise 1.
-define double @f9(i8 *%src, double %a, double %b) {
+define double @f9(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f9:
 ; CHECK: llc [[REG:%r[0-5]]], 0(%r2)
 ; CHECK: tmll [[REG]], 3
 ; CHECK: jl {{\.L.*}}
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %and = and i8 %byte, 3
   %cmp = icmp eq i8 %and, 1
   %res = select i1 %cmp, double %b, double %a
@@ -144,13 +144,13 @@ define double @f9(i8 *%src, double %a, double %b) {
 }
 
 ; Check the high end of the TM range.
-define double @f10(i8 *%src, double %a, double %b) {
+define double @f10(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f10:
 ; CHECK: tm 4095(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -158,13 +158,13 @@ define double @f10(i8 *%src, double %a, double %b) {
 }
 
 ; Check the low end of the positive TMY range.
-define double @f11(i8 *%src, double %a, double %b) {
+define double @f11(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f11:
 ; CHECK: tmy 4096(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -172,13 +172,13 @@ define double @f11(i8 *%src, double %a, double %b) {
 }
 
 ; Check the high end of the TMY range.
-define double @f12(i8 *%src, double %a, double %b) {
+define double @f12(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f12:
 ; CHECK: tmy 524287(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -186,14 +186,14 @@ define double @f12(i8 *%src, double %a, double %b) {
 }
 
 ; Check the next byte up, which needs separate address logic.
-define double @f13(i8 *%src, double %a, double %b) {
+define double @f13(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f13:
 ; CHECK: agfi %r2, 524288
 ; CHECK: tm 0(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -201,13 +201,13 @@ define double @f13(i8 *%src, double %a, double %b) {
 }
 
 ; Check the low end of the TMY range.
-define double @f14(i8 *%src, double %a, double %b) {
+define double @f14(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f14:
 ; CHECK: tmy -524288(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -215,14 +215,14 @@ define double @f14(i8 *%src, double %a, double %b) {
 }
 
 ; Check the next byte down, which needs separate address logic.
-define double @f15(i8 *%src, double %a, double %b) {
+define double @f15(ptr %src, double %a, double %b) {
 ; CHECK-LABEL: f15:
 ; CHECK: agfi %r2, -524289
 ; CHECK: tm 0(%r2), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a
@@ -230,13 +230,13 @@ define double @f15(i8 *%src, double %a, double %b) {
 }
 
 ; Check that TM(Y) does not allow an index
-define double @f16(i8 *%src, i64 %index, double %a, double %b) {
+define double @f16(ptr %src, i64 %index, double %a, double %b) {
 ; CHECK-LABEL: f16:
 ; CHECK: tm 0({{%r[1-5]}}), 1
 ; CHECK: je {{\.L.*}}
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 %index
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 %index
+  %byte = load i8, ptr %ptr
   %and = and i8 %byte, 1
   %cmp = icmp eq i8 %and, 0
   %res = select i1 %cmp, double %b, double %a

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-49.ll b/llvm/test/CodeGen/SystemZ/int-cmp-49.ll
index 83f18a2a18a62..9b7259eaf42ed 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-49.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-49.ll
@@ -19,7 +19,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:
@@ -41,7 +41,7 @@ entry:
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 1, i32 *@g
+  store i32 1, ptr at g
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-50.ll b/llvm/test/CodeGen/SystemZ/int-cmp-50.ll
index 287ac2c49a782..8c3db634f28be 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-50.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-50.ll
@@ -12,13 +12,13 @@
 define signext i32 @test(i64 %x) {
 entry:
   %x.addr = alloca i64, align 8
-  store i64 %x, i64* %x.addr, align 8
-  %0 = load i64, i64* %x.addr, align 8
+  store i64 %x, ptr %x.addr, align 8
+  %0 = load i64, ptr %x.addr, align 8
   %cmp = icmp uge i64 %0, 0
   br i1 %cmp, label %land.rhs, label %land.end
 
 land.rhs:                                         ; preds = %entry
-  %1 = load i64, i64* %x.addr, align 8
+  %1 = load i64, ptr %x.addr, align 8
   %cmp1 = icmp ule i64 %1, 15
   br label %land.end
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-52.ll b/llvm/test/CodeGen/SystemZ/int-cmp-52.ll
index a0b72371d1c5d..694cc6eea8265 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-52.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-52.ll
@@ -3,19 +3,19 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu
 
-define void @test(i16 *%input, i32 *%result) {
+define void @test(ptr %input, ptr %result) {
 entry:
-  %0 = load i16, i16* %input, align 2
+  %0 = load i16, ptr %input, align 2
   %1 = zext i16 %0 to i32
   %2 = icmp slt i32 %1, 0
   br i1 %2, label %if.then, label %if.else
 
 if.then:
-  store i32 1, i32* %result, align 4
+  store i32 1, ptr %result, align 4
   br label %return
 
 if.else:
-  store i32 0, i32* %result, align 4
+  store i32 0, ptr %result, align 4
   br label %return
 
 return:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-53.ll b/llvm/test/CodeGen/SystemZ/int-cmp-53.ll
index b7d985eeefe7c..708d1873a1f52 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-53.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-53.ll
@@ -2,22 +2,22 @@
 ;
 ; RUN: llc -O0 < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @test(i8 *%input, i32 *%result) {
+define void @test(ptr %input, ptr %result) {
 entry:
 ; CHECK-NOT: tmll
 
-  %0 = load i8, i8* %input, align 1
+  %0 = load i8, ptr %input, align 1
   %1 = trunc i8 %0 to i1
   %2 = zext i1 %1 to i32
   %3 = icmp sge i32 %2, 0
   br i1 %3, label %if.then, label %if.else
 
 if.then:
-  store i32 1, i32* %result, align 4
+  store i32 1, ptr %result, align 4
   br label %return
 
 if.else:
-  store i32 0, i32* %result, align 4
+  store i32 0, ptr %result, align 4
   br label %return
 
 return:

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-54.ll b/llvm/test/CodeGen/SystemZ/int-cmp-54.ll
index 6e157959a19c2..b8942b4e10e92 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-54.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-54.ll
@@ -7,7 +7,7 @@
 
 ; Function Attrs: nounwind
 define void @main() local_unnamed_addr #0 {
-  %1 = load volatile i88, i88* bitcast (<{ i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32 }>* @g_2166 to i88*), align 8
+  %1 = load volatile i88, ptr @g_2166, align 8
   %2 = lshr i88 %1, 87
   %3 = trunc i88 %2 to i64
   %4 = icmp sgt i64 %3, 9293
@@ -15,6 +15,6 @@ define void @main() local_unnamed_addr #0 {
   %6 = lshr i32 %5, 0
   %7 = shl i32 %6, 6
   %8 = trunc i32 %7 to i8
-  store i8 %8, i8* getelementptr inbounds ([4 x i8], [4 x i8]* @g_39, i64 0, i64 1), align 1
+  store i8 %8, ptr getelementptr inbounds ([4 x i8], ptr @g_39, i64 0, i64 1), align 1
   unreachable
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-55.ll b/llvm/test/CodeGen/SystemZ/int-cmp-55.ll
index 5028784197d91..8fcd8a5ba6848 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-55.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-55.ll
@@ -4,11 +4,11 @@
 
 declare signext i32 @f()
 
-define signext i32 @test(i32* %ptr) {
+define signext i32 @test(ptr %ptr) {
 ; CHECK-NOT: ipm
 
 entry:
-  %0 = load i32, i32* %ptr, align 4
+  %0 = load i32, ptr %ptr, align 4
   %tobool = icmp eq i32 %0, 0
   %call = tail call signext i32 @f()
   %1 = icmp slt i32 %call, 40

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-59.ll b/llvm/test/CodeGen/SystemZ/int-cmp-59.ll
index 7d00d12dd831c..cdd688aab0829 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-59.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-59.ll
@@ -3,7 +3,7 @@
 ;
 ; Check that an i1 in memory used in a comparison is loaded correctly.
 
- at bPtr = external dso_local local_unnamed_addr global i32*, align 8
+ at bPtr = external dso_local local_unnamed_addr global ptr, align 8
 @c = external hidden unnamed_addr global i1, align 4
 
 define i64 @main() {
@@ -15,10 +15,10 @@ define i64 @main() {
 ; CHECK-NEXT: %5:gr64bit = LCGR killed %3, implicit-def dead $cc
 ; CHECK-NEXT: CGHI killed %5, 1, implicit-def $cc
 entry:
-  %0 = load i32*, i32** @bPtr
-  store i1 true, i1* @c
-  store i32 8, i32* %0
-  %.b = load i1, i1* @c
+  %0 = load ptr, ptr @bPtr
+  store i1 true, ptr @c
+  store i32 8, ptr %0
+  %.b = load i1, ptr @c
   %conv.i = select i1 %.b, i64 1, i64 3
   %div.i = sdiv i64 -1, %conv.i
   %cmp.i = icmp eq i64 %div.i, 1

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-60.ll b/llvm/test/CodeGen/SystemZ/int-cmp-60.ll
index faae4f9bced23..7c6a2102720c0 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-60.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-60.ll
@@ -4,7 +4,7 @@
 ; Test that DAGCombiner properly clears the NUW/NSW flags on the memoized add
 ; node.
 
-define void @fun(i64* %Src, i32* %Dst) {
+define void @fun(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun:
 ; CHECK:       # %bb.0: # %entry
 ; CHECK-NEXT:    iilf %r0, 1303940520
@@ -15,7 +15,7 @@ define void @fun(i64* %Src, i32* %Dst) {
 ; CHECK-NEXT:    st %r1, 0(%r3)
 ; CHECK-NEXT:    br %r14
 entry:
-  %0 = load i64, i64* %Src, align 8
+  %0 = load i64, ptr %Src, align 8
   %1 = trunc i64 %0 to i32
   %conv = and i32 %1, 1303940520
   %xor11.i = or i32 %conv, -2147483648
@@ -23,7 +23,7 @@ entry:
   %cmp.i = icmp slt i32 %xor2.i, 0
   %sub3.i = add nuw nsw i32 %conv, 1628135358
   %cond.i = select i1 %cmp.i, i32 %conv, i32 %sub3.i
-  store i32 %cond.i, i32* %Dst
+  store i32 %cond.i, ptr %Dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-cmp-61.ll b/llvm/test/CodeGen/SystemZ/int-cmp-61.ll
index f57944c738d5c..d636293abdcbf 100644
--- a/llvm/test/CodeGen/SystemZ/int-cmp-61.ll
+++ b/llvm/test/CodeGen/SystemZ/int-cmp-61.ll
@@ -4,7 +4,7 @@
 ; Test using bitwise logic on icmp operands instead of i1 logic when
 ; possible.
 
-define i32 @fun(i32* %Src) {
+define i32 @fun(ptr %Src) {
 ; CHECK-LABEL: fun:
 ; CHECK:       # %bb.0: # %bb
 ; CHECK-NEXT:    lhi %r0, -2
@@ -15,7 +15,7 @@ define i32 @fun(i32* %Src) {
 ; CHECK-NEXT:    lochilh %r2, 1
 ; CHECK-NEXT:    br %r14
 bb:
-  %i = load i32, i32* %Src
+  %i = load i32, ptr %Src
   %i3 = sub nsw i32 0, %i
   %i4 = icmp ne i32 %i3, 2
   %i5 = icmp ne i32 %i3, 4

diff  --git a/llvm/test/CodeGen/SystemZ/int-const-02.ll b/llvm/test/CodeGen/SystemZ/int-const-02.ll
index 3310605fe8499..6b8544a8dbcc6 100644
--- a/llvm/test/CodeGen/SystemZ/int-const-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-const-02.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 declare void @foo(i64, i64, i64, i64)
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture, i8* nocapture, i64, i1 immarg)
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1 immarg)
 
 ; Check 0.
 define i64 @f1() {
@@ -287,42 +287,42 @@ define i64 @f31() {
 
 ; Verify that we do not crash on OR with two constant inputs
 ; (this was PR34859).
-define i64 @f32(i64 *%ptr) {
+define i64 @f32(ptr %ptr) {
 ; CHECK-LABEL: f32:
 ; CHECK: llihf %r1, 918324340
 ; CHECK: oilf %r1, 1806197964
 ; CHECK: la %r0, 1(%r1)
-  store i64 -1, i64* %ptr, align 8
-  %1 = load i64, i64* %ptr, align 8
+  store i64 -1, ptr %ptr, align 8
+  %1 = load i64, ptr %ptr, align 8
   %2 = icmp ne i64 %1, 0
   %3 = zext i1 %2 to i64
   %4 = or i64 %3, 3944173009226982604
-  store i64 %4, i64* %ptr, align 8
+  store i64 %4, ptr %ptr, align 8
   ret i64 3944173009226982604
 }
 
 ; Check that huge constants can be loaded during isel pseudo expansion. This
 ; is the iteration count loaded into a register after dividing by 256.
-define void @f33(i8* %Src, i8* %Dst)  {
+define void @f33(ptr %Src, ptr %Dst)  {
 ; CHECK-LABEL: f33:
 ; CHECK: iihf    %r0, 1
 ; CHECK: iilf    %r0, 1
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %Src, i8* %Dst, i64 1099511628032, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %Src, ptr %Dst, i64 1099511628032, i1 false)
   ret void
 }
 
-define void @f34(i8* %Src, i8* %Dst)  {
+define void @f34(ptr %Src, ptr %Dst)  {
 ; CHECK-LABEL: f34:
 ; CHECK: iihf    %r0, 2
 ; CHECK: iilf    %r0, 0
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %Src, i8* %Dst, i64 2199023255552, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %Src, ptr %Dst, i64 2199023255552, i1 false)
   ret void
 }
 
-define void @f35(i8* %Src, i8* %Dst)  {
+define void @f35(ptr %Src, ptr %Dst)  {
 ; CHECK-LABEL: f35:
 ; CHECK: iihf    %r0, 8388607
 ; CHECK: iilf    %r0, 4294967295
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %Src, i8* %Dst, i64 9223372036854775800, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %Src, ptr %Dst, i64 9223372036854775800, i1 false)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-const-03.ll b/llvm/test/CodeGen/SystemZ/int-const-03.ll
index 7352ea32e76aa..a56e324262073 100644
--- a/llvm/test/CodeGen/SystemZ/int-const-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-const-03.ll
@@ -3,139 +3,139 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the unsigned range.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: mvi 0(%r2), 0
 ; CHECK: br %r14
-  store i8 0, i8 *%ptr
+  store i8 0, ptr %ptr
   ret void
 }
 
 ; Check the high end of the signed range.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: mvi 0(%r2), 127
 ; CHECK: br %r14
-  store i8 127, i8 *%ptr
+  store i8 127, ptr %ptr
   ret void
 }
 
 ; Check the next value up.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: br %r14
-  store i8 -128, i8 *%ptr
+  store i8 -128, ptr %ptr
   ret void
 }
 
 ; Check the high end of the unsigned range.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: br %r14
-  store i8 255, i8 *%ptr
+  store i8 255, ptr %ptr
   ret void
 }
 
 ; Check -1.
-define void @f5(i8 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: br %r14
-  store i8 -1, i8 *%ptr
+  store i8 -1, ptr %ptr
   ret void
 }
 
 ; Check the low end of the signed range.
-define void @f6(i8 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: br %r14
-  store i8 -128, i8 *%ptr
+  store i8 -128, ptr %ptr
   ret void
 }
 
 ; Check the next value down.
-define void @f7(i8 *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: mvi 0(%r2), 127
 ; CHECK: br %r14
-  store i8 -129, i8 *%ptr
+  store i8 -129, ptr %ptr
   ret void
 }
 
 ; Check the high end of the MVI range.
-define void @f8(i8 *%src) {
+define void @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: mvi 4095(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  store i8 42, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which should use MVIY instead of MVI.
-define void @f9(i8 *%src) {
+define void @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: mviy 4096(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  store i8 42, ptr %ptr
   ret void
 }
 
 ; Check the high end of the MVIY range.
-define void @f10(i8 *%src) {
+define void @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: mviy 524287(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  store i8 42, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f11(i8 *%src) {
+define void @f11(ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r2, 524288
 ; CHECK: mvi 0(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  store i8 42, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative MVIY range.
-define void @f12(i8 *%src) {
+define void @f12(ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: mviy -1(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  store i8 42, ptr %ptr
   ret void
 }
 
 ; Check the low end of the MVIY range.
-define void @f13(i8 *%src) {
+define void @f13(ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: mviy -524288(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  store i8 42, ptr %ptr
   ret void
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f14(i8 *%src) {
+define void @f14(ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: agfi %r2, -524289
 ; CHECK: mvi 0(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  store i8 42, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  store i8 42, ptr %ptr
   ret void
 }
 
@@ -147,8 +147,8 @@ define void @f15(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i8 *
-  store i8 42, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i8 42, ptr %ptr
   ret void
 }
 
@@ -160,7 +160,7 @@ define void @f16(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
-  store i8 42, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i8 42, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-const-04.ll b/llvm/test/CodeGen/SystemZ/int-const-04.ll
index fd943991196ea..29745edceaf39 100644
--- a/llvm/test/CodeGen/SystemZ/int-const-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-const-04.ll
@@ -3,98 +3,98 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the unsigned range.
-define void @f1(i16 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: mvhhi 0(%r2), 0
 ; CHECK: br %r14
-  store i16 0, i16 *%ptr
+  store i16 0, ptr %ptr
   ret void
 }
 
 ; Check the high end of the signed range.
-define void @f2(i16 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: mvhhi 0(%r2), 32767
 ; CHECK: br %r14
-  store i16 32767, i16 *%ptr
+  store i16 32767, ptr %ptr
   ret void
 }
 
 ; Check the next value up.
-define void @f3(i16 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvhhi 0(%r2), -32768
 ; CHECK: br %r14
-  store i16 -32768, i16 *%ptr
+  store i16 -32768, ptr %ptr
   ret void
 }
 
 ; Check the high end of the unsigned range.
-define void @f4(i16 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvhhi 0(%r2), -1
 ; CHECK: br %r14
-  store i16 65535, i16 *%ptr
+  store i16 65535, ptr %ptr
   ret void
 }
 
 ; Check -1.
-define void @f5(i16 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvhhi 0(%r2), -1
 ; CHECK: br %r14
-  store i16 -1, i16 *%ptr
+  store i16 -1, ptr %ptr
   ret void
 }
 
 ; Check the low end of the signed range.
-define void @f6(i16 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvhhi 0(%r2), -32768
 ; CHECK: br %r14
-  store i16 -32768, i16 *%ptr
+  store i16 -32768, ptr %ptr
   ret void
 }
 
 ; Check the next value down.
-define void @f7(i16 *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: mvhhi 0(%r2), 32767
 ; CHECK: br %r14
-  store i16 -32769, i16 *%ptr
+  store i16 -32769, ptr %ptr
   ret void
 }
 
 ; Check the high end of the MVHHI range.
-define void @f8(i16 *%a) {
+define void @f8(ptr %a) {
 ; CHECK-LABEL: f8:
 ; CHECK: mvhhi 4094(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%a, i64 2047
-  store i16 42, i16 *%ptr
+  %ptr = getelementptr i16, ptr %a, i64 2047
+  store i16 42, ptr %ptr
   ret void
 }
 
 ; Check the next halfword up, which is out of range.  We prefer STHY
 ; in that case.
-define void @f9(i16 *%a) {
+define void @f9(ptr %a) {
 ; CHECK-LABEL: f9:
 ; CHECK: lhi [[TMP:%r[0-5]]], 42
 ; CHECK: sthy [[TMP]], 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%a, i64 2048
-  store i16 42, i16 *%ptr
+  %ptr = getelementptr i16, ptr %a, i64 2048
+  store i16 42, ptr %ptr
   ret void
 }
 
 ; Check negative displacements, for which we again prefer STHY.
-define void @f10(i16 *%a) {
+define void @f10(ptr %a) {
 ; CHECK-LABEL: f10:
 ; CHECK: lhi [[TMP:%r[0-5]]], 42
 ; CHECK: sthy [[TMP]], -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%a, i64 -1
-  store i16 42, i16 *%ptr
+  %ptr = getelementptr i16, ptr %a, i64 -1
+  store i16 42, ptr %ptr
   ret void
 }
 
@@ -105,7 +105,7 @@ define void @f11(i64 %src, i64 %index) {
 ; CHECK: sth [[TMP]], 0({{%r2,%r3|%r3,%r2}})
 ; CHECK: br %r14
   %add = add i64 %src, %index
-  %ptr = inttoptr i64 %add to i16 *
-  store i16 42, i16 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  store i16 42, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-const-05.ll b/llvm/test/CodeGen/SystemZ/int-const-05.ll
index c7b455168990d..0f62270cc20f5 100644
--- a/llvm/test/CodeGen/SystemZ/int-const-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-const-05.ll
@@ -3,88 +3,88 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check moves of zero.
-define void @f1(i32 *%a) {
+define void @f1(ptr %a) {
 ; CHECK-LABEL: f1:
 ; CHECK: mvhi 0(%r2), 0
 ; CHECK: br %r14
-  store i32 0, i32 *%a
+  store i32 0, ptr %a
   ret void
 }
 
 ; Check the high end of the signed 16-bit range.
-define void @f2(i32 *%a) {
+define void @f2(ptr %a) {
 ; CHECK-LABEL: f2:
 ; CHECK: mvhi 0(%r2), 32767
 ; CHECK: br %r14
-  store i32 32767, i32 *%a
+  store i32 32767, ptr %a
   ret void
 }
 
 ; Check the next value up, which can't use MVHI.
-define void @f3(i32 *%a) {
+define void @f3(ptr %a) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: mvhi
 ; CHECK: br %r14
-  store i32 32768, i32 *%a
+  store i32 32768, ptr %a
   ret void
 }
 
 ; Check moves of -1.
-define void @f4(i32 *%a) {
+define void @f4(ptr %a) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvhi 0(%r2), -1
 ; CHECK: br %r14
-  store i32 -1, i32 *%a
+  store i32 -1, ptr %a
   ret void
 }
 
 ; Check the low end of the MVHI range.
-define void @f5(i32 *%a) {
+define void @f5(ptr %a) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvhi 0(%r2), -32768
 ; CHECK: br %r14
-  store i32 -32768, i32 *%a
+  store i32 -32768, ptr %a
   ret void
 }
 
 ; Check the next value down, which can't use MVHI.
-define void @f6(i32 *%a) {
+define void @f6(ptr %a) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: mvhi
 ; CHECK: br %r14
-  store i32 -32769, i32 *%a
+  store i32 -32769, ptr %a
   ret void
 }
 
 ; Check the high end of the MVHI range.
-define void @f7(i32 *%a) {
+define void @f7(ptr %a) {
 ; CHECK-LABEL: f7:
 ; CHECK: mvhi 4092(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%a, i64 1023
-  store i32 42, i32 *%ptr
+  %ptr = getelementptr i32, ptr %a, i64 1023
+  store i32 42, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which is out of range.  We prefer STY in that case.
-define void @f8(i32 *%a) {
+define void @f8(ptr %a) {
 ; CHECK-LABEL: f8:
 ; CHECK: lhi [[TMP:%r[0-5]]], 42
 ; CHECK: sty [[TMP]], 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%a, i64 1024
-  store i32 42, i32 *%ptr
+  %ptr = getelementptr i32, ptr %a, i64 1024
+  store i32 42, ptr %ptr
   ret void
 }
 
 ; Check negative displacements, for which we again prefer STY.
-define void @f9(i32 *%a) {
+define void @f9(ptr %a) {
 ; CHECK-LABEL: f9:
 ; CHECK: lhi [[TMP:%r[0-5]]], 42
 ; CHECK: sty [[TMP]], -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%a, i64 -1
-  store i32 42, i32 *%ptr
+  %ptr = getelementptr i32, ptr %a, i64 -1
+  store i32 42, ptr %ptr
   ret void
 }
 
@@ -95,7 +95,7 @@ define void @f10(i64 %src, i64 %index) {
 ; CHECK: st [[TMP]], 0({{%r2,%r3|%r3,%r2}})
 ; CHECK: br %r14
   %add = add i64 %src, %index
-  %ptr = inttoptr i64 %add to i32 *
-  store i32 42, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  store i32 42, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-const-06.ll b/llvm/test/CodeGen/SystemZ/int-const-06.ll
index fc47a04094b54..5c36d558ff65f 100644
--- a/llvm/test/CodeGen/SystemZ/int-const-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-const-06.ll
@@ -3,89 +3,89 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check moves of zero.
-define void @f1(i64 *%a) {
+define void @f1(ptr %a) {
 ; CHECK-LABEL: f1:
 ; CHECK: mvghi 0(%r2), 0
 ; CHECK: br %r14
-  store i64 0, i64 *%a
+  store i64 0, ptr %a
   ret void
 }
 
 ; Check the high end of the signed 16-bit range.
-define void @f2(i64 *%a) {
+define void @f2(ptr %a) {
 ; CHECK-LABEL: f2:
 ; CHECK: mvghi 0(%r2), 32767
 ; CHECK: br %r14
-  store i64 32767, i64 *%a
+  store i64 32767, ptr %a
   ret void
 }
 
 ; Check the next value up, which can't use MVGHI.
-define void @f3(i64 *%a) {
+define void @f3(ptr %a) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: mvghi
 ; CHECK: br %r14
-  store i64 32768, i64 *%a
+  store i64 32768, ptr %a
   ret void
 }
 
 ; Check moves of -1.
-define void @f4(i64 *%a) {
+define void @f4(ptr %a) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvghi 0(%r2), -1
 ; CHECK: br %r14
-  store i64 -1, i64 *%a
+  store i64 -1, ptr %a
   ret void
 }
 
 ; Check the low end of the MVGHI range.
-define void @f5(i64 *%a) {
+define void @f5(ptr %a) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvghi 0(%r2), -32768
 ; CHECK: br %r14
-  store i64 -32768, i64 *%a
+  store i64 -32768, ptr %a
   ret void
 }
 
 ; Check the next value down, which can't use MVGHI.
-define void @f6(i64 *%a) {
+define void @f6(ptr %a) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: mvghi
 ; CHECK: br %r14
-  store i64 -32769, i64 *%a
+  store i64 -32769, ptr %a
   ret void
 }
 
 ; Check the high end of the MVGHI range.
-define void @f7(i64 *%a) {
+define void @f7(ptr %a) {
 ; CHECK-LABEL: f7:
 ; CHECK: mvghi 4088(%r2), 42
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%a, i64 511
-  store i64 42, i64 *%ptr
+  %ptr = getelementptr i64, ptr %a, i64 511
+  store i64 42, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which is out of range.  We prefer STG
 ; in that case.
-define void @f8(i64 *%a) {
+define void @f8(ptr %a) {
 ; CHECK-LABEL: f8:
 ; CHECK: lghi [[TMP:%r[0-5]]], 42
 ; CHECK: stg [[TMP]], 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%a, i64 512
-  store i64 42, i64 *%ptr
+  %ptr = getelementptr i64, ptr %a, i64 512
+  store i64 42, ptr %ptr
   ret void
 }
 
 ; Check negative displacements, for which we again prefer STG.
-define void @f9(i64 *%a) {
+define void @f9(ptr %a) {
 ; CHECK-LABEL: f9:
 ; CHECK: lghi [[TMP:%r[0-5]]], 42
 ; CHECK: stg [[TMP]], -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%a, i64 -1
-  store i64 42, i64 *%ptr
+  %ptr = getelementptr i64, ptr %a, i64 -1
+  store i64 42, ptr %ptr
   ret void
 }
 
@@ -96,7 +96,7 @@ define void @f10(i64 %src, i64 %index) {
 ; CHECK: stg [[TMP]], 0({{%r2,%r3|%r3,%r2}})
 ; CHECK: br %r14
   %add = add i64 %src, %index
-  %ptr = inttoptr i64 %add to i64 *
-  store i64 42, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  store i64 42, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-01.ll b/llvm/test/CodeGen/SystemZ/int-conv-01.ll
index 4e6aed7e6f9f7..91ef0802223ed 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-01.ll
@@ -23,70 +23,70 @@ define i32 @f2(i64 %a) {
 }
 
 ; Check LB with no displacement.
-define i32 @f3(i8 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lb %r2, 0(%r2)
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the high end of the LB range.
-define i32 @f4(i8 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lb %r2, 524287(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f5(i8 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lb %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the high end of the negative LB range.
-define i32 @f6(i8 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lb %r2, -1(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the low end of the LB range.
-define i32 @f7(i8 *%src) {
+define i32 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: lb %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i8 *%src) {
+define i32 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524289
 ; CHECK: lb %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
@@ -98,34 +98,34 @@ define i32 @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i8 *
-  %byte = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Test a case where we spill the source of at least one LBR.  We want
 ; to use LB if possible.
-define void @f10(i32 *%ptr) {
+define void @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: lb {{%r[0-9]+}}, 191(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %trunc0 = trunc i32 %val0 to i8
   %trunc1 = trunc i32 %val1 to i8
@@ -161,39 +161,39 @@ define void @f10(i32 *%ptr) {
   %ext14 = sext i8 %trunc14 to i32
   %ext15 = sext i8 %trunc15 to i32
 
-  store volatile i32 %val0, i32 *%ptr
-  store volatile i32 %val1, i32 *%ptr
-  store volatile i32 %val2, i32 *%ptr
-  store volatile i32 %val3, i32 *%ptr
-  store volatile i32 %val4, i32 *%ptr
-  store volatile i32 %val5, i32 *%ptr
-  store volatile i32 %val6, i32 *%ptr
-  store volatile i32 %val7, i32 *%ptr
-  store volatile i32 %val8, i32 *%ptr
-  store volatile i32 %val9, i32 *%ptr
-  store volatile i32 %val10, i32 *%ptr
-  store volatile i32 %val11, i32 *%ptr
-  store volatile i32 %val12, i32 *%ptr
-  store volatile i32 %val13, i32 *%ptr
-  store volatile i32 %val14, i32 *%ptr
-  store volatile i32 %val15, i32 *%ptr
+  store volatile i32 %val0, ptr %ptr
+  store volatile i32 %val1, ptr %ptr
+  store volatile i32 %val2, ptr %ptr
+  store volatile i32 %val3, ptr %ptr
+  store volatile i32 %val4, ptr %ptr
+  store volatile i32 %val5, ptr %ptr
+  store volatile i32 %val6, ptr %ptr
+  store volatile i32 %val7, ptr %ptr
+  store volatile i32 %val8, ptr %ptr
+  store volatile i32 %val9, ptr %ptr
+  store volatile i32 %val10, ptr %ptr
+  store volatile i32 %val11, ptr %ptr
+  store volatile i32 %val12, ptr %ptr
+  store volatile i32 %val13, ptr %ptr
+  store volatile i32 %val14, ptr %ptr
+  store volatile i32 %val15, ptr %ptr
 
-  store volatile i32 %ext0, i32 *%ptr
-  store volatile i32 %ext1, i32 *%ptr
-  store volatile i32 %ext2, i32 *%ptr
-  store volatile i32 %ext3, i32 *%ptr
-  store volatile i32 %ext4, i32 *%ptr
-  store volatile i32 %ext5, i32 *%ptr
-  store volatile i32 %ext6, i32 *%ptr
-  store volatile i32 %ext7, i32 *%ptr
-  store volatile i32 %ext8, i32 *%ptr
-  store volatile i32 %ext9, i32 *%ptr
-  store volatile i32 %ext10, i32 *%ptr
-  store volatile i32 %ext11, i32 *%ptr
-  store volatile i32 %ext12, i32 *%ptr
-  store volatile i32 %ext13, i32 *%ptr
-  store volatile i32 %ext14, i32 *%ptr
-  store volatile i32 %ext15, i32 *%ptr
+  store volatile i32 %ext0, ptr %ptr
+  store volatile i32 %ext1, ptr %ptr
+  store volatile i32 %ext2, ptr %ptr
+  store volatile i32 %ext3, ptr %ptr
+  store volatile i32 %ext4, ptr %ptr
+  store volatile i32 %ext5, ptr %ptr
+  store volatile i32 %ext6, ptr %ptr
+  store volatile i32 %ext7, ptr %ptr
+  store volatile i32 %ext8, ptr %ptr
+  store volatile i32 %ext9, ptr %ptr
+  store volatile i32 %ext10, ptr %ptr
+  store volatile i32 %ext11, ptr %ptr
+  store volatile i32 %ext12, ptr %ptr
+  store volatile i32 %ext13, ptr %ptr
+  store volatile i32 %ext14, ptr %ptr
+  store volatile i32 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-02.ll b/llvm/test/CodeGen/SystemZ/int-conv-02.ll
index 8e5ee8c51f3e1..9134e5bdbe17b 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-02.ll
@@ -33,70 +33,70 @@ define i32 @f3(i32 %a) {
 }
 
 ; Check LLC with no displacement.
-define i32 @f4(i8 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: llc %r2, 0(%r2)
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the high end of the LLC range.
-define i32 @f5(i8 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llc %r2, 524287(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i8 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llc %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the high end of the negative LLC range.
-define i32 @f7(i8 *%src) {
+define i32 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llc %r2, -1(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the low end of the LLC range.
-define i32 @f8(i8 *%src) {
+define i32 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llc %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i8 *%src) {
+define i32 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524289
 ; CHECK: llc %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
@@ -108,34 +108,34 @@ define i32 @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i8 *
-  %byte = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i32
   ret i32 %ext
 }
 
 ; Test a case where we spill the source of at least one LLCR.  We want
 ; to use LLC if possible.
-define void @f11(i32 *%ptr) {
+define void @f11(ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: llc {{%r[0-9]+}}, 187(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %trunc0 = trunc i32 %val0 to i8
   %trunc1 = trunc i32 %val1 to i8
@@ -171,39 +171,39 @@ define void @f11(i32 *%ptr) {
   %ext14 = zext i8 %trunc14 to i32
   %ext15 = zext i8 %trunc15 to i32
 
-  store volatile i32 %val0, i32 *%ptr
-  store volatile i32 %val1, i32 *%ptr
-  store volatile i32 %val2, i32 *%ptr
-  store volatile i32 %val3, i32 *%ptr
-  store volatile i32 %val4, i32 *%ptr
-  store volatile i32 %val5, i32 *%ptr
-  store volatile i32 %val6, i32 *%ptr
-  store volatile i32 %val7, i32 *%ptr
-  store volatile i32 %val8, i32 *%ptr
-  store volatile i32 %val9, i32 *%ptr
-  store volatile i32 %val10, i32 *%ptr
-  store volatile i32 %val11, i32 *%ptr
-  store volatile i32 %val12, i32 *%ptr
-  store volatile i32 %val13, i32 *%ptr
-  store volatile i32 %val14, i32 *%ptr
-  store volatile i32 %val15, i32 *%ptr
-
-  store volatile i32 %ext0, i32 *%ptr
-  store volatile i32 %ext1, i32 *%ptr
-  store volatile i32 %ext2, i32 *%ptr
-  store volatile i32 %ext3, i32 *%ptr
-  store volatile i32 %ext4, i32 *%ptr
-  store volatile i32 %ext5, i32 *%ptr
-  store volatile i32 %ext6, i32 *%ptr
-  store volatile i32 %ext7, i32 *%ptr
-  store volatile i32 %ext8, i32 *%ptr
-  store volatile i32 %ext9, i32 *%ptr
-  store volatile i32 %ext10, i32 *%ptr
-  store volatile i32 %ext11, i32 *%ptr
-  store volatile i32 %ext12, i32 *%ptr
-  store volatile i32 %ext13, i32 *%ptr
-  store volatile i32 %ext14, i32 *%ptr
-  store volatile i32 %ext15, i32 *%ptr
+  store volatile i32 %val0, ptr %ptr
+  store volatile i32 %val1, ptr %ptr
+  store volatile i32 %val2, ptr %ptr
+  store volatile i32 %val3, ptr %ptr
+  store volatile i32 %val4, ptr %ptr
+  store volatile i32 %val5, ptr %ptr
+  store volatile i32 %val6, ptr %ptr
+  store volatile i32 %val7, ptr %ptr
+  store volatile i32 %val8, ptr %ptr
+  store volatile i32 %val9, ptr %ptr
+  store volatile i32 %val10, ptr %ptr
+  store volatile i32 %val11, ptr %ptr
+  store volatile i32 %val12, ptr %ptr
+  store volatile i32 %val13, ptr %ptr
+  store volatile i32 %val14, ptr %ptr
+  store volatile i32 %val15, ptr %ptr
+
+  store volatile i32 %ext0, ptr %ptr
+  store volatile i32 %ext1, ptr %ptr
+  store volatile i32 %ext2, ptr %ptr
+  store volatile i32 %ext3, ptr %ptr
+  store volatile i32 %ext4, ptr %ptr
+  store volatile i32 %ext5, ptr %ptr
+  store volatile i32 %ext6, ptr %ptr
+  store volatile i32 %ext7, ptr %ptr
+  store volatile i32 %ext8, ptr %ptr
+  store volatile i32 %ext9, ptr %ptr
+  store volatile i32 %ext10, ptr %ptr
+  store volatile i32 %ext11, ptr %ptr
+  store volatile i32 %ext12, ptr %ptr
+  store volatile i32 %ext13, ptr %ptr
+  store volatile i32 %ext14, ptr %ptr
+  store volatile i32 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-03.ll b/llvm/test/CodeGen/SystemZ/int-conv-03.ll
index f53477d27cae4..9c364651edf70 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-03.ll
@@ -23,70 +23,70 @@ define i64 @f2(i64 %a) {
 }
 
 ; Check LGB with no displacement.
-define i64 @f3(i8 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lgb %r2, 0(%r2)
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LGB range.
-define i64 @f4(i8 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lgb %r2, 524287(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f5(i8 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lgb %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LGB range.
-define i64 @f6(i8 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lgb %r2, -1(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LGB range.
-define i64 @f7(i8 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: lgb %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f8(i8 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524289
 ; CHECK: lgb %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
@@ -98,34 +98,34 @@ define i64 @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i8 *
-  %byte = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %byte = load i8, ptr %ptr
   %ext = sext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Test a case where we spill the source of at least one LGBR.  We want
 ; to use LGB if possible.
-define void @f10(i64 *%ptr) {
+define void @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: lgb {{%r[0-9]+}}, 167(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %trunc0 = trunc i64 %val0 to i8
   %trunc1 = trunc i64 %val1 to i8
@@ -161,39 +161,39 @@ define void @f10(i64 *%ptr) {
   %ext14 = sext i8 %trunc14 to i64
   %ext15 = sext i8 %trunc15 to i64
 
-  store volatile i64 %val0, i64 *%ptr
-  store volatile i64 %val1, i64 *%ptr
-  store volatile i64 %val2, i64 *%ptr
-  store volatile i64 %val3, i64 *%ptr
-  store volatile i64 %val4, i64 *%ptr
-  store volatile i64 %val5, i64 *%ptr
-  store volatile i64 %val6, i64 *%ptr
-  store volatile i64 %val7, i64 *%ptr
-  store volatile i64 %val8, i64 *%ptr
-  store volatile i64 %val9, i64 *%ptr
-  store volatile i64 %val10, i64 *%ptr
-  store volatile i64 %val11, i64 *%ptr
-  store volatile i64 %val12, i64 *%ptr
-  store volatile i64 %val13, i64 *%ptr
-  store volatile i64 %val14, i64 *%ptr
-  store volatile i64 %val15, i64 *%ptr
+  store volatile i64 %val0, ptr %ptr
+  store volatile i64 %val1, ptr %ptr
+  store volatile i64 %val2, ptr %ptr
+  store volatile i64 %val3, ptr %ptr
+  store volatile i64 %val4, ptr %ptr
+  store volatile i64 %val5, ptr %ptr
+  store volatile i64 %val6, ptr %ptr
+  store volatile i64 %val7, ptr %ptr
+  store volatile i64 %val8, ptr %ptr
+  store volatile i64 %val9, ptr %ptr
+  store volatile i64 %val10, ptr %ptr
+  store volatile i64 %val11, ptr %ptr
+  store volatile i64 %val12, ptr %ptr
+  store volatile i64 %val13, ptr %ptr
+  store volatile i64 %val14, ptr %ptr
+  store volatile i64 %val15, ptr %ptr
 
-  store volatile i64 %ext0, i64 *%ptr
-  store volatile i64 %ext1, i64 *%ptr
-  store volatile i64 %ext2, i64 *%ptr
-  store volatile i64 %ext3, i64 *%ptr
-  store volatile i64 %ext4, i64 *%ptr
-  store volatile i64 %ext5, i64 *%ptr
-  store volatile i64 %ext6, i64 *%ptr
-  store volatile i64 %ext7, i64 *%ptr
-  store volatile i64 %ext8, i64 *%ptr
-  store volatile i64 %ext9, i64 *%ptr
-  store volatile i64 %ext10, i64 *%ptr
-  store volatile i64 %ext11, i64 *%ptr
-  store volatile i64 %ext12, i64 *%ptr
-  store volatile i64 %ext13, i64 *%ptr
-  store volatile i64 %ext14, i64 *%ptr
-  store volatile i64 %ext15, i64 *%ptr
+  store volatile i64 %ext0, ptr %ptr
+  store volatile i64 %ext1, ptr %ptr
+  store volatile i64 %ext2, ptr %ptr
+  store volatile i64 %ext3, ptr %ptr
+  store volatile i64 %ext4, ptr %ptr
+  store volatile i64 %ext5, ptr %ptr
+  store volatile i64 %ext6, ptr %ptr
+  store volatile i64 %ext7, ptr %ptr
+  store volatile i64 %ext8, ptr %ptr
+  store volatile i64 %ext9, ptr %ptr
+  store volatile i64 %ext10, ptr %ptr
+  store volatile i64 %ext11, ptr %ptr
+  store volatile i64 %ext12, ptr %ptr
+  store volatile i64 %ext13, ptr %ptr
+  store volatile i64 %ext14, ptr %ptr
+  store volatile i64 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-04.ll b/llvm/test/CodeGen/SystemZ/int-conv-04.ll
index 8edfb6297cea0..c589d0d0d4cfe 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-04.ll
@@ -32,70 +32,70 @@ define i64 @f3(i64 %a) {
 }
 
 ; Check LLGC with no displacement.
-define i64 @f4(i8 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: llgc %r2, 0(%r2)
 ; CHECK: br %r14
-  %byte = load i8, i8 *%src
+  %byte = load i8, ptr %src
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LLGC range.
-define i64 @f5(i8 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llgc %r2, 524287(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i8 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llgc %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LLGC range.
-define i64 @f7(i8 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llgc %r2, -1(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LLGC range.
-define i64 @f8(i8 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llgc %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f9(i8 *%src) {
+define i64 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524289
 ; CHECK: llgc %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %byte = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
@@ -107,34 +107,34 @@ define i64 @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i8 *
-  %byte = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %byte = load i8, ptr %ptr
   %ext = zext i8 %byte to i64
   ret i64 %ext
 }
 
 ; Test a case where we spill the source of at least one LLGCR.  We want
 ; to use LLGC if possible.
-define void @f11(i64 *%ptr) {
+define void @f11(ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: llgc {{%r[0-9]+}}, 167(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %trunc0 = trunc i64 %val0 to i8
   %trunc1 = trunc i64 %val1 to i8
@@ -170,39 +170,39 @@ define void @f11(i64 *%ptr) {
   %ext14 = zext i8 %trunc14 to i64
   %ext15 = zext i8 %trunc15 to i64
 
-  store volatile i64 %val0, i64 *%ptr
-  store volatile i64 %val1, i64 *%ptr
-  store volatile i64 %val2, i64 *%ptr
-  store volatile i64 %val3, i64 *%ptr
-  store volatile i64 %val4, i64 *%ptr
-  store volatile i64 %val5, i64 *%ptr
-  store volatile i64 %val6, i64 *%ptr
-  store volatile i64 %val7, i64 *%ptr
-  store volatile i64 %val8, i64 *%ptr
-  store volatile i64 %val9, i64 *%ptr
-  store volatile i64 %val10, i64 *%ptr
-  store volatile i64 %val11, i64 *%ptr
-  store volatile i64 %val12, i64 *%ptr
-  store volatile i64 %val13, i64 *%ptr
-  store volatile i64 %val14, i64 *%ptr
-  store volatile i64 %val15, i64 *%ptr
-
-  store volatile i64 %ext0, i64 *%ptr
-  store volatile i64 %ext1, i64 *%ptr
-  store volatile i64 %ext2, i64 *%ptr
-  store volatile i64 %ext3, i64 *%ptr
-  store volatile i64 %ext4, i64 *%ptr
-  store volatile i64 %ext5, i64 *%ptr
-  store volatile i64 %ext6, i64 *%ptr
-  store volatile i64 %ext7, i64 *%ptr
-  store volatile i64 %ext8, i64 *%ptr
-  store volatile i64 %ext9, i64 *%ptr
-  store volatile i64 %ext10, i64 *%ptr
-  store volatile i64 %ext11, i64 *%ptr
-  store volatile i64 %ext12, i64 *%ptr
-  store volatile i64 %ext13, i64 *%ptr
-  store volatile i64 %ext14, i64 *%ptr
-  store volatile i64 %ext15, i64 *%ptr
+  store volatile i64 %val0, ptr %ptr
+  store volatile i64 %val1, ptr %ptr
+  store volatile i64 %val2, ptr %ptr
+  store volatile i64 %val3, ptr %ptr
+  store volatile i64 %val4, ptr %ptr
+  store volatile i64 %val5, ptr %ptr
+  store volatile i64 %val6, ptr %ptr
+  store volatile i64 %val7, ptr %ptr
+  store volatile i64 %val8, ptr %ptr
+  store volatile i64 %val9, ptr %ptr
+  store volatile i64 %val10, ptr %ptr
+  store volatile i64 %val11, ptr %ptr
+  store volatile i64 %val12, ptr %ptr
+  store volatile i64 %val13, ptr %ptr
+  store volatile i64 %val14, ptr %ptr
+  store volatile i64 %val15, ptr %ptr
+
+  store volatile i64 %ext0, ptr %ptr
+  store volatile i64 %ext1, ptr %ptr
+  store volatile i64 %ext2, ptr %ptr
+  store volatile i64 %ext3, ptr %ptr
+  store volatile i64 %ext4, ptr %ptr
+  store volatile i64 %ext5, ptr %ptr
+  store volatile i64 %ext6, ptr %ptr
+  store volatile i64 %ext7, ptr %ptr
+  store volatile i64 %ext8, ptr %ptr
+  store volatile i64 %ext9, ptr %ptr
+  store volatile i64 %ext10, ptr %ptr
+  store volatile i64 %ext11, ptr %ptr
+  store volatile i64 %ext12, ptr %ptr
+  store volatile i64 %ext13, ptr %ptr
+  store volatile i64 %ext14, ptr %ptr
+  store volatile i64 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-05.ll b/llvm/test/CodeGen/SystemZ/int-conv-05.ll
index a19f27586523f..e5fe079ec6704 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-05.ll
@@ -23,92 +23,92 @@ define i32 @f2(i64 %a) {
 }
 
 ; Check the low end of the LH range.
-define i32 @f3(i16 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lh %r2, 0(%r2)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the high end of the LH range.
-define i32 @f4(i16 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lh %r2, 4094(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the next halfword up, which needs LHY rather than LH.
-define i32 @f5(i16 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: lhy %r2, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the high end of the LHY range.
-define i32 @f6(i16 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lhy %r2, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f7(i16 *%src) {
+define i32 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the high end of the negative LHY range.
-define i32 @f8(i16 *%src) {
+define i32 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: lhy %r2, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the low end of the LHY range.
-define i32 @f9(i16 *%src) {
+define i32 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: lhy %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f10(i16 *%src) {
+define i32 @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r2, -524290
 ; CHECK: lh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
@@ -120,8 +120,8 @@ define i32 @f11(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
@@ -133,34 +133,34 @@ define i32 @f12(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i32
   ret i32 %ext
 }
 
 ; Test a case where we spill the source of at least one LHR.  We want
 ; to use LH if possible.
-define void @f13(i32 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: lh {{%r[0-9]+}}, 16{{[26]}}(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %trunc0 = trunc i32 %val0 to i16
   %trunc1 = trunc i32 %val1 to i16
@@ -196,39 +196,39 @@ define void @f13(i32 *%ptr) {
   %ext14 = sext i16 %trunc14 to i32
   %ext15 = sext i16 %trunc15 to i32
 
-  store volatile i32 %val0, i32 *%ptr
-  store volatile i32 %val1, i32 *%ptr
-  store volatile i32 %val2, i32 *%ptr
-  store volatile i32 %val3, i32 *%ptr
-  store volatile i32 %val4, i32 *%ptr
-  store volatile i32 %val5, i32 *%ptr
-  store volatile i32 %val6, i32 *%ptr
-  store volatile i32 %val7, i32 *%ptr
-  store volatile i32 %val8, i32 *%ptr
-  store volatile i32 %val9, i32 *%ptr
-  store volatile i32 %val10, i32 *%ptr
-  store volatile i32 %val11, i32 *%ptr
-  store volatile i32 %val12, i32 *%ptr
-  store volatile i32 %val13, i32 *%ptr
-  store volatile i32 %val14, i32 *%ptr
-  store volatile i32 %val15, i32 *%ptr
-
-  store volatile i32 %ext0, i32 *%ptr
-  store volatile i32 %ext1, i32 *%ptr
-  store volatile i32 %ext2, i32 *%ptr
-  store volatile i32 %ext3, i32 *%ptr
-  store volatile i32 %ext4, i32 *%ptr
-  store volatile i32 %ext5, i32 *%ptr
-  store volatile i32 %ext6, i32 *%ptr
-  store volatile i32 %ext7, i32 *%ptr
-  store volatile i32 %ext8, i32 *%ptr
-  store volatile i32 %ext9, i32 *%ptr
-  store volatile i32 %ext10, i32 *%ptr
-  store volatile i32 %ext11, i32 *%ptr
-  store volatile i32 %ext12, i32 *%ptr
-  store volatile i32 %ext13, i32 *%ptr
-  store volatile i32 %ext14, i32 *%ptr
-  store volatile i32 %ext15, i32 *%ptr
+  store volatile i32 %val0, ptr %ptr
+  store volatile i32 %val1, ptr %ptr
+  store volatile i32 %val2, ptr %ptr
+  store volatile i32 %val3, ptr %ptr
+  store volatile i32 %val4, ptr %ptr
+  store volatile i32 %val5, ptr %ptr
+  store volatile i32 %val6, ptr %ptr
+  store volatile i32 %val7, ptr %ptr
+  store volatile i32 %val8, ptr %ptr
+  store volatile i32 %val9, ptr %ptr
+  store volatile i32 %val10, ptr %ptr
+  store volatile i32 %val11, ptr %ptr
+  store volatile i32 %val12, ptr %ptr
+  store volatile i32 %val13, ptr %ptr
+  store volatile i32 %val14, ptr %ptr
+  store volatile i32 %val15, ptr %ptr
+
+  store volatile i32 %ext0, ptr %ptr
+  store volatile i32 %ext1, ptr %ptr
+  store volatile i32 %ext2, ptr %ptr
+  store volatile i32 %ext3, ptr %ptr
+  store volatile i32 %ext4, ptr %ptr
+  store volatile i32 %ext5, ptr %ptr
+  store volatile i32 %ext6, ptr %ptr
+  store volatile i32 %ext7, ptr %ptr
+  store volatile i32 %ext8, ptr %ptr
+  store volatile i32 %ext9, ptr %ptr
+  store volatile i32 %ext10, ptr %ptr
+  store volatile i32 %ext11, ptr %ptr
+  store volatile i32 %ext12, ptr %ptr
+  store volatile i32 %ext13, ptr %ptr
+  store volatile i32 %ext14, ptr %ptr
+  store volatile i32 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-06.ll b/llvm/test/CodeGen/SystemZ/int-conv-06.ll
index 908ac00bc9e45..ff91c91f8f14c 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-06.ll
@@ -33,70 +33,70 @@ define i32 @f3(i32 %a) {
 }
 
 ; Check LLH with no displacement.
-define i32 @f4(i16 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: llh %r2, 0(%r2)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the high end of the LLH range.
-define i32 @f5(i16 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llh %r2, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i16 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the high end of the negative LLH range.
-define i32 @f7(i16 *%src) {
+define i32 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llh %r2, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the low end of the LLH range.
-define i32 @f8(i16 *%src) {
+define i32 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llh %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i16 *%src) {
+define i32 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524290
 ; CHECK: llh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
@@ -108,34 +108,34 @@ define i32 @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i32
   ret i32 %ext
 }
 
 ; Test a case where we spill the source of at least one LLHR.  We want
 ; to use LLH if possible.
-define void @f11(i32 *%ptr) {
+define void @f11(ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: llh {{%r[0-9]+}}, 186(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %trunc0 = trunc i32 %val0 to i16
   %trunc1 = trunc i32 %val1 to i16
@@ -171,39 +171,39 @@ define void @f11(i32 *%ptr) {
   %ext14 = zext i16 %trunc14 to i32
   %ext15 = zext i16 %trunc15 to i32
 
-  store volatile i32 %val0, i32 *%ptr
-  store volatile i32 %val1, i32 *%ptr
-  store volatile i32 %val2, i32 *%ptr
-  store volatile i32 %val3, i32 *%ptr
-  store volatile i32 %val4, i32 *%ptr
-  store volatile i32 %val5, i32 *%ptr
-  store volatile i32 %val6, i32 *%ptr
-  store volatile i32 %val7, i32 *%ptr
-  store volatile i32 %val8, i32 *%ptr
-  store volatile i32 %val9, i32 *%ptr
-  store volatile i32 %val10, i32 *%ptr
-  store volatile i32 %val11, i32 *%ptr
-  store volatile i32 %val12, i32 *%ptr
-  store volatile i32 %val13, i32 *%ptr
-  store volatile i32 %val14, i32 *%ptr
-  store volatile i32 %val15, i32 *%ptr
-
-  store volatile i32 %ext0, i32 *%ptr
-  store volatile i32 %ext1, i32 *%ptr
-  store volatile i32 %ext2, i32 *%ptr
-  store volatile i32 %ext3, i32 *%ptr
-  store volatile i32 %ext4, i32 *%ptr
-  store volatile i32 %ext5, i32 *%ptr
-  store volatile i32 %ext6, i32 *%ptr
-  store volatile i32 %ext7, i32 *%ptr
-  store volatile i32 %ext8, i32 *%ptr
-  store volatile i32 %ext9, i32 *%ptr
-  store volatile i32 %ext10, i32 *%ptr
-  store volatile i32 %ext11, i32 *%ptr
-  store volatile i32 %ext12, i32 *%ptr
-  store volatile i32 %ext13, i32 *%ptr
-  store volatile i32 %ext14, i32 *%ptr
-  store volatile i32 %ext15, i32 *%ptr
+  store volatile i32 %val0, ptr %ptr
+  store volatile i32 %val1, ptr %ptr
+  store volatile i32 %val2, ptr %ptr
+  store volatile i32 %val3, ptr %ptr
+  store volatile i32 %val4, ptr %ptr
+  store volatile i32 %val5, ptr %ptr
+  store volatile i32 %val6, ptr %ptr
+  store volatile i32 %val7, ptr %ptr
+  store volatile i32 %val8, ptr %ptr
+  store volatile i32 %val9, ptr %ptr
+  store volatile i32 %val10, ptr %ptr
+  store volatile i32 %val11, ptr %ptr
+  store volatile i32 %val12, ptr %ptr
+  store volatile i32 %val13, ptr %ptr
+  store volatile i32 %val14, ptr %ptr
+  store volatile i32 %val15, ptr %ptr
+
+  store volatile i32 %ext0, ptr %ptr
+  store volatile i32 %ext1, ptr %ptr
+  store volatile i32 %ext2, ptr %ptr
+  store volatile i32 %ext3, ptr %ptr
+  store volatile i32 %ext4, ptr %ptr
+  store volatile i32 %ext5, ptr %ptr
+  store volatile i32 %ext6, ptr %ptr
+  store volatile i32 %ext7, ptr %ptr
+  store volatile i32 %ext8, ptr %ptr
+  store volatile i32 %ext9, ptr %ptr
+  store volatile i32 %ext10, ptr %ptr
+  store volatile i32 %ext11, ptr %ptr
+  store volatile i32 %ext12, ptr %ptr
+  store volatile i32 %ext13, ptr %ptr
+  store volatile i32 %ext14, ptr %ptr
+  store volatile i32 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-07.ll b/llvm/test/CodeGen/SystemZ/int-conv-07.ll
index 93f93a454f00d..a36154fd78a8f 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-07.ll
@@ -23,70 +23,70 @@ define i64 @f2(i32 %a) {
 }
 
 ; Check LGH with no displacement.
-define i64 @f3(i16 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lgh %r2, 0(%r2)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LGH range.
-define i64 @f4(i16 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lgh %r2, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f5(i16 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lgh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LGH range.
-define i64 @f6(i16 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lgh %r2, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LGH range.
-define i64 @f7(i16 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: lgh %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f8(i16 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524290
 ; CHECK: lgh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
@@ -98,34 +98,34 @@ define i64 @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %ext = sext i16 %half to i64
   ret i64 %ext
 }
 
 ; Test a case where we spill the source of at least one LGHR.  We want
 ; to use LGH if possible.
-define void @f10(i64 *%ptr) {
+define void @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: lgh {{%r[0-9]+}}, 166(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %trunc0 = trunc i64 %val0 to i16
   %trunc1 = trunc i64 %val1 to i16
@@ -161,39 +161,39 @@ define void @f10(i64 *%ptr) {
   %ext14 = sext i16 %trunc14 to i64
   %ext15 = sext i16 %trunc15 to i64
 
-  store volatile i64 %val0, i64 *%ptr
-  store volatile i64 %val1, i64 *%ptr
-  store volatile i64 %val2, i64 *%ptr
-  store volatile i64 %val3, i64 *%ptr
-  store volatile i64 %val4, i64 *%ptr
-  store volatile i64 %val5, i64 *%ptr
-  store volatile i64 %val6, i64 *%ptr
-  store volatile i64 %val7, i64 *%ptr
-  store volatile i64 %val8, i64 *%ptr
-  store volatile i64 %val9, i64 *%ptr
-  store volatile i64 %val10, i64 *%ptr
-  store volatile i64 %val11, i64 *%ptr
-  store volatile i64 %val12, i64 *%ptr
-  store volatile i64 %val13, i64 *%ptr
-  store volatile i64 %val14, i64 *%ptr
-  store volatile i64 %val15, i64 *%ptr
+  store volatile i64 %val0, ptr %ptr
+  store volatile i64 %val1, ptr %ptr
+  store volatile i64 %val2, ptr %ptr
+  store volatile i64 %val3, ptr %ptr
+  store volatile i64 %val4, ptr %ptr
+  store volatile i64 %val5, ptr %ptr
+  store volatile i64 %val6, ptr %ptr
+  store volatile i64 %val7, ptr %ptr
+  store volatile i64 %val8, ptr %ptr
+  store volatile i64 %val9, ptr %ptr
+  store volatile i64 %val10, ptr %ptr
+  store volatile i64 %val11, ptr %ptr
+  store volatile i64 %val12, ptr %ptr
+  store volatile i64 %val13, ptr %ptr
+  store volatile i64 %val14, ptr %ptr
+  store volatile i64 %val15, ptr %ptr
 
-  store volatile i64 %ext0, i64 *%ptr
-  store volatile i64 %ext1, i64 *%ptr
-  store volatile i64 %ext2, i64 *%ptr
-  store volatile i64 %ext3, i64 *%ptr
-  store volatile i64 %ext4, i64 *%ptr
-  store volatile i64 %ext5, i64 *%ptr
-  store volatile i64 %ext6, i64 *%ptr
-  store volatile i64 %ext7, i64 *%ptr
-  store volatile i64 %ext8, i64 *%ptr
-  store volatile i64 %ext9, i64 *%ptr
-  store volatile i64 %ext10, i64 *%ptr
-  store volatile i64 %ext11, i64 *%ptr
-  store volatile i64 %ext12, i64 *%ptr
-  store volatile i64 %ext13, i64 *%ptr
-  store volatile i64 %ext14, i64 *%ptr
-  store volatile i64 %ext15, i64 *%ptr
+  store volatile i64 %ext0, ptr %ptr
+  store volatile i64 %ext1, ptr %ptr
+  store volatile i64 %ext2, ptr %ptr
+  store volatile i64 %ext3, ptr %ptr
+  store volatile i64 %ext4, ptr %ptr
+  store volatile i64 %ext5, ptr %ptr
+  store volatile i64 %ext6, ptr %ptr
+  store volatile i64 %ext7, ptr %ptr
+  store volatile i64 %ext8, ptr %ptr
+  store volatile i64 %ext9, ptr %ptr
+  store volatile i64 %ext10, ptr %ptr
+  store volatile i64 %ext11, ptr %ptr
+  store volatile i64 %ext12, ptr %ptr
+  store volatile i64 %ext13, ptr %ptr
+  store volatile i64 %ext14, ptr %ptr
+  store volatile i64 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-08.ll b/llvm/test/CodeGen/SystemZ/int-conv-08.ll
index 9f24a2b24ac37..0abe41f299e75 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-08.ll
@@ -32,70 +32,70 @@ define i64 @f3(i64 %a) {
 }
 
 ; Check LLGH with no displacement.
-define i64 @f4(i16 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: llgh %r2, 0(%r2)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LLGH range.
-define i64 @f5(i16 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llgh %r2, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i16 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llgh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LLGH range.
-define i64 @f7(i16 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llgh %r2, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LLGH range.
-define i64 @f8(i16 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llgh %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f9(i16 *%src) {
+define i64 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524290
 ; CHECK: llgh %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
@@ -107,34 +107,34 @@ define i64 @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %ext = zext i16 %half to i64
   ret i64 %ext
 }
 
 ; Test a case where we spill the source of at least one LLGHR.  We want
 ; to use LLGH if possible.
-define void @f11(i64 *%ptr) {
+define void @f11(ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: llgh {{%r[0-9]+}}, 166(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %trunc0 = trunc i64 %val0 to i16
   %trunc1 = trunc i64 %val1 to i16
@@ -170,39 +170,39 @@ define void @f11(i64 *%ptr) {
   %ext14 = zext i16 %trunc14 to i64
   %ext15 = zext i16 %trunc15 to i64
 
-  store volatile i64 %val0, i64 *%ptr
-  store volatile i64 %val1, i64 *%ptr
-  store volatile i64 %val2, i64 *%ptr
-  store volatile i64 %val3, i64 *%ptr
-  store volatile i64 %val4, i64 *%ptr
-  store volatile i64 %val5, i64 *%ptr
-  store volatile i64 %val6, i64 *%ptr
-  store volatile i64 %val7, i64 *%ptr
-  store volatile i64 %val8, i64 *%ptr
-  store volatile i64 %val9, i64 *%ptr
-  store volatile i64 %val10, i64 *%ptr
-  store volatile i64 %val11, i64 *%ptr
-  store volatile i64 %val12, i64 *%ptr
-  store volatile i64 %val13, i64 *%ptr
-  store volatile i64 %val14, i64 *%ptr
-  store volatile i64 %val15, i64 *%ptr
-
-  store volatile i64 %ext0, i64 *%ptr
-  store volatile i64 %ext1, i64 *%ptr
-  store volatile i64 %ext2, i64 *%ptr
-  store volatile i64 %ext3, i64 *%ptr
-  store volatile i64 %ext4, i64 *%ptr
-  store volatile i64 %ext5, i64 *%ptr
-  store volatile i64 %ext6, i64 *%ptr
-  store volatile i64 %ext7, i64 *%ptr
-  store volatile i64 %ext8, i64 *%ptr
-  store volatile i64 %ext9, i64 *%ptr
-  store volatile i64 %ext10, i64 *%ptr
-  store volatile i64 %ext11, i64 *%ptr
-  store volatile i64 %ext12, i64 *%ptr
-  store volatile i64 %ext13, i64 *%ptr
-  store volatile i64 %ext14, i64 *%ptr
-  store volatile i64 %ext15, i64 *%ptr
+  store volatile i64 %val0, ptr %ptr
+  store volatile i64 %val1, ptr %ptr
+  store volatile i64 %val2, ptr %ptr
+  store volatile i64 %val3, ptr %ptr
+  store volatile i64 %val4, ptr %ptr
+  store volatile i64 %val5, ptr %ptr
+  store volatile i64 %val6, ptr %ptr
+  store volatile i64 %val7, ptr %ptr
+  store volatile i64 %val8, ptr %ptr
+  store volatile i64 %val9, ptr %ptr
+  store volatile i64 %val10, ptr %ptr
+  store volatile i64 %val11, ptr %ptr
+  store volatile i64 %val12, ptr %ptr
+  store volatile i64 %val13, ptr %ptr
+  store volatile i64 %val14, ptr %ptr
+  store volatile i64 %val15, ptr %ptr
+
+  store volatile i64 %ext0, ptr %ptr
+  store volatile i64 %ext1, ptr %ptr
+  store volatile i64 %ext2, ptr %ptr
+  store volatile i64 %ext3, ptr %ptr
+  store volatile i64 %ext4, ptr %ptr
+  store volatile i64 %ext5, ptr %ptr
+  store volatile i64 %ext6, ptr %ptr
+  store volatile i64 %ext7, ptr %ptr
+  store volatile i64 %ext8, ptr %ptr
+  store volatile i64 %ext9, ptr %ptr
+  store volatile i64 %ext10, ptr %ptr
+  store volatile i64 %ext11, ptr %ptr
+  store volatile i64 %ext12, ptr %ptr
+  store volatile i64 %ext13, ptr %ptr
+  store volatile i64 %ext14, ptr %ptr
+  store volatile i64 %ext15, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-09.ll b/llvm/test/CodeGen/SystemZ/int-conv-09.ll
index 9c3e57ed12185..9d79bf38737ec 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-09.ll
@@ -22,70 +22,70 @@ define i64 @f2(i64 %a) {
 }
 
 ; Check LGF with no displacement.
-define i64 @f3(i32 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: lgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %word = load i32, i32 *%src
+  %word = load i32, ptr %src
   %ext = sext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LGF range.
-define i64 @f4(i32 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lgf %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %word = load i32, ptr %ptr
   %ext = sext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f5(i32 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %word = load i32, ptr %ptr
   %ext = sext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LGF range.
-define i64 @f6(i32 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lgf %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %word = load i32, ptr %ptr
   %ext = sext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LGF range.
-define i64 @f7(i32 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: lgf %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %word = load i32, ptr %ptr
   %ext = sext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f8(i32 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524292
 ; CHECK: lgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %word = load i32, ptr %ptr
   %ext = sext i32 %word to i64
   ret i64 %ext
 }
@@ -97,8 +97,8 @@ define i64 @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %word = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %word = load i32, ptr %ptr
   %ext = sext i32 %word to i64
   ret i64 %ext
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-10.ll b/llvm/test/CodeGen/SystemZ/int-conv-10.ll
index f21f6698be87f..4006c7ce1f5c0 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-10.ll
@@ -31,70 +31,70 @@ define i64 @f3(i64 %a) {
 }
 
 ; Check LLGF with no displacement.
-define i64 @f4(i32 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: llgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %word = load i32, i32 *%src
+  %word = load i32, ptr %src
   %ext = zext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LLGF range.
-define i64 @f5(i32 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llgf %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i32 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LLGF range.
-define i64 @f7(i32 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: llgf %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LLGF range.
-define i64 @f8(i32 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llgf %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   ret i64 %ext
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f9(i32 *%src) {
+define i64 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: llgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   ret i64 %ext
 }
@@ -106,8 +106,8 @@ define i64 @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %word = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   ret i64 %ext
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-11.ll b/llvm/test/CodeGen/SystemZ/int-conv-11.ll
index 9a9c15fcfbe01..48e3a4d0dda63 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-11.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-11.ll
@@ -4,42 +4,42 @@
 
 ; Test a case where we spill the source of at least one LLCRMux.  We want
 ; to use LLC(H) if possible.
-define void @f1(i32 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: llc{{h?}} {{%r[0-9]+}}, 1{{[67]}}{{[379]}}(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
-  %val16 = load volatile i32, i32 *%ptr
-  %val17 = load volatile i32, i32 *%ptr
-  %val18 = load volatile i32, i32 *%ptr
-  %val19 = load volatile i32, i32 *%ptr
-  %val20 = load volatile i32, i32 *%ptr
-  %val21 = load volatile i32, i32 *%ptr
-  %val22 = load volatile i32, i32 *%ptr
-  %val23 = load volatile i32, i32 *%ptr
-  %val24 = load volatile i32, i32 *%ptr
-  %val25 = load volatile i32, i32 *%ptr
-  %val26 = load volatile i32, i32 *%ptr
-  %val27 = load volatile i32, i32 *%ptr
-  %val28 = load volatile i32, i32 *%ptr
-  %val29 = load volatile i32, i32 *%ptr
-  %val30 = load volatile i32, i32 *%ptr
-  %val31 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
+  %val16 = load volatile i32, ptr %ptr
+  %val17 = load volatile i32, ptr %ptr
+  %val18 = load volatile i32, ptr %ptr
+  %val19 = load volatile i32, ptr %ptr
+  %val20 = load volatile i32, ptr %ptr
+  %val21 = load volatile i32, ptr %ptr
+  %val22 = load volatile i32, ptr %ptr
+  %val23 = load volatile i32, ptr %ptr
+  %val24 = load volatile i32, ptr %ptr
+  %val25 = load volatile i32, ptr %ptr
+  %val26 = load volatile i32, ptr %ptr
+  %val27 = load volatile i32, ptr %ptr
+  %val28 = load volatile i32, ptr %ptr
+  %val29 = load volatile i32, ptr %ptr
+  %val30 = load volatile i32, ptr %ptr
+  %val31 = load volatile i32, ptr %ptr
 
   %trunc0 = trunc i32 %val0 to i8
   %trunc1 = trunc i32 %val1 to i8
@@ -107,112 +107,112 @@ define void @f1(i32 *%ptr) {
   %ext30 = zext i8 %trunc30 to i32
   %ext31 = zext i8 %trunc31 to i32
 
-  store volatile i32 %val0, i32 *%ptr
-  store volatile i32 %val1, i32 *%ptr
-  store volatile i32 %val2, i32 *%ptr
-  store volatile i32 %val3, i32 *%ptr
-  store volatile i32 %val4, i32 *%ptr
-  store volatile i32 %val5, i32 *%ptr
-  store volatile i32 %val6, i32 *%ptr
-  store volatile i32 %val7, i32 *%ptr
-  store volatile i32 %val8, i32 *%ptr
-  store volatile i32 %val9, i32 *%ptr
-  store volatile i32 %val10, i32 *%ptr
-  store volatile i32 %val11, i32 *%ptr
-  store volatile i32 %val12, i32 *%ptr
-  store volatile i32 %val13, i32 *%ptr
-  store volatile i32 %val14, i32 *%ptr
-  store volatile i32 %val15, i32 *%ptr
-  store volatile i32 %val16, i32 *%ptr
-  store volatile i32 %val17, i32 *%ptr
-  store volatile i32 %val18, i32 *%ptr
-  store volatile i32 %val19, i32 *%ptr
-  store volatile i32 %val20, i32 *%ptr
-  store volatile i32 %val21, i32 *%ptr
-  store volatile i32 %val22, i32 *%ptr
-  store volatile i32 %val23, i32 *%ptr
-  store volatile i32 %val24, i32 *%ptr
-  store volatile i32 %val25, i32 *%ptr
-  store volatile i32 %val26, i32 *%ptr
-  store volatile i32 %val27, i32 *%ptr
-  store volatile i32 %val28, i32 *%ptr
-  store volatile i32 %val29, i32 *%ptr
-  store volatile i32 %val30, i32 *%ptr
-  store volatile i32 %val31, i32 *%ptr
+  store volatile i32 %val0, ptr %ptr
+  store volatile i32 %val1, ptr %ptr
+  store volatile i32 %val2, ptr %ptr
+  store volatile i32 %val3, ptr %ptr
+  store volatile i32 %val4, ptr %ptr
+  store volatile i32 %val5, ptr %ptr
+  store volatile i32 %val6, ptr %ptr
+  store volatile i32 %val7, ptr %ptr
+  store volatile i32 %val8, ptr %ptr
+  store volatile i32 %val9, ptr %ptr
+  store volatile i32 %val10, ptr %ptr
+  store volatile i32 %val11, ptr %ptr
+  store volatile i32 %val12, ptr %ptr
+  store volatile i32 %val13, ptr %ptr
+  store volatile i32 %val14, ptr %ptr
+  store volatile i32 %val15, ptr %ptr
+  store volatile i32 %val16, ptr %ptr
+  store volatile i32 %val17, ptr %ptr
+  store volatile i32 %val18, ptr %ptr
+  store volatile i32 %val19, ptr %ptr
+  store volatile i32 %val20, ptr %ptr
+  store volatile i32 %val21, ptr %ptr
+  store volatile i32 %val22, ptr %ptr
+  store volatile i32 %val23, ptr %ptr
+  store volatile i32 %val24, ptr %ptr
+  store volatile i32 %val25, ptr %ptr
+  store volatile i32 %val26, ptr %ptr
+  store volatile i32 %val27, ptr %ptr
+  store volatile i32 %val28, ptr %ptr
+  store volatile i32 %val29, ptr %ptr
+  store volatile i32 %val30, ptr %ptr
+  store volatile i32 %val31, ptr %ptr
 
-  store volatile i32 %ext0, i32 *%ptr
-  store volatile i32 %ext1, i32 *%ptr
-  store volatile i32 %ext2, i32 *%ptr
-  store volatile i32 %ext3, i32 *%ptr
-  store volatile i32 %ext4, i32 *%ptr
-  store volatile i32 %ext5, i32 *%ptr
-  store volatile i32 %ext6, i32 *%ptr
-  store volatile i32 %ext7, i32 *%ptr
-  store volatile i32 %ext8, i32 *%ptr
-  store volatile i32 %ext9, i32 *%ptr
-  store volatile i32 %ext10, i32 *%ptr
-  store volatile i32 %ext11, i32 *%ptr
-  store volatile i32 %ext12, i32 *%ptr
-  store volatile i32 %ext13, i32 *%ptr
-  store volatile i32 %ext14, i32 *%ptr
-  store volatile i32 %ext15, i32 *%ptr
-  store volatile i32 %ext16, i32 *%ptr
-  store volatile i32 %ext17, i32 *%ptr
-  store volatile i32 %ext18, i32 *%ptr
-  store volatile i32 %ext19, i32 *%ptr
-  store volatile i32 %ext20, i32 *%ptr
-  store volatile i32 %ext21, i32 *%ptr
-  store volatile i32 %ext22, i32 *%ptr
-  store volatile i32 %ext23, i32 *%ptr
-  store volatile i32 %ext24, i32 *%ptr
-  store volatile i32 %ext25, i32 *%ptr
-  store volatile i32 %ext26, i32 *%ptr
-  store volatile i32 %ext27, i32 *%ptr
-  store volatile i32 %ext28, i32 *%ptr
-  store volatile i32 %ext29, i32 *%ptr
-  store volatile i32 %ext30, i32 *%ptr
-  store volatile i32 %ext31, i32 *%ptr
+  store volatile i32 %ext0, ptr %ptr
+  store volatile i32 %ext1, ptr %ptr
+  store volatile i32 %ext2, ptr %ptr
+  store volatile i32 %ext3, ptr %ptr
+  store volatile i32 %ext4, ptr %ptr
+  store volatile i32 %ext5, ptr %ptr
+  store volatile i32 %ext6, ptr %ptr
+  store volatile i32 %ext7, ptr %ptr
+  store volatile i32 %ext8, ptr %ptr
+  store volatile i32 %ext9, ptr %ptr
+  store volatile i32 %ext10, ptr %ptr
+  store volatile i32 %ext11, ptr %ptr
+  store volatile i32 %ext12, ptr %ptr
+  store volatile i32 %ext13, ptr %ptr
+  store volatile i32 %ext14, ptr %ptr
+  store volatile i32 %ext15, ptr %ptr
+  store volatile i32 %ext16, ptr %ptr
+  store volatile i32 %ext17, ptr %ptr
+  store volatile i32 %ext18, ptr %ptr
+  store volatile i32 %ext19, ptr %ptr
+  store volatile i32 %ext20, ptr %ptr
+  store volatile i32 %ext21, ptr %ptr
+  store volatile i32 %ext22, ptr %ptr
+  store volatile i32 %ext23, ptr %ptr
+  store volatile i32 %ext24, ptr %ptr
+  store volatile i32 %ext25, ptr %ptr
+  store volatile i32 %ext26, ptr %ptr
+  store volatile i32 %ext27, ptr %ptr
+  store volatile i32 %ext28, ptr %ptr
+  store volatile i32 %ext29, ptr %ptr
+  store volatile i32 %ext30, ptr %ptr
+  store volatile i32 %ext31, ptr %ptr
 
   ret void
 }
 
 ; Same again with i16, which should use LLH(H).
-define void @f2(i32 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: llh{{h?}} {{%r[0-9]+}}, 1{{[67]}}{{[268]}}(%r15)
 ; CHECK: br %r14
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
-  %val16 = load volatile i32, i32 *%ptr
-  %val17 = load volatile i32, i32 *%ptr
-  %val18 = load volatile i32, i32 *%ptr
-  %val19 = load volatile i32, i32 *%ptr
-  %val20 = load volatile i32, i32 *%ptr
-  %val21 = load volatile i32, i32 *%ptr
-  %val22 = load volatile i32, i32 *%ptr
-  %val23 = load volatile i32, i32 *%ptr
-  %val24 = load volatile i32, i32 *%ptr
-  %val25 = load volatile i32, i32 *%ptr
-  %val26 = load volatile i32, i32 *%ptr
-  %val27 = load volatile i32, i32 *%ptr
-  %val28 = load volatile i32, i32 *%ptr
-  %val29 = load volatile i32, i32 *%ptr
-  %val30 = load volatile i32, i32 *%ptr
-  %val31 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
+  %val16 = load volatile i32, ptr %ptr
+  %val17 = load volatile i32, ptr %ptr
+  %val18 = load volatile i32, ptr %ptr
+  %val19 = load volatile i32, ptr %ptr
+  %val20 = load volatile i32, ptr %ptr
+  %val21 = load volatile i32, ptr %ptr
+  %val22 = load volatile i32, ptr %ptr
+  %val23 = load volatile i32, ptr %ptr
+  %val24 = load volatile i32, ptr %ptr
+  %val25 = load volatile i32, ptr %ptr
+  %val26 = load volatile i32, ptr %ptr
+  %val27 = load volatile i32, ptr %ptr
+  %val28 = load volatile i32, ptr %ptr
+  %val29 = load volatile i32, ptr %ptr
+  %val30 = load volatile i32, ptr %ptr
+  %val31 = load volatile i32, ptr %ptr
 
   %trunc0 = trunc i32 %val0 to i16
   %trunc1 = trunc i32 %val1 to i16
@@ -280,71 +280,71 @@ define void @f2(i32 *%ptr) {
   %ext30 = zext i16 %trunc30 to i32
   %ext31 = zext i16 %trunc31 to i32
 
-  store volatile i32 %val0, i32 *%ptr
-  store volatile i32 %val1, i32 *%ptr
-  store volatile i32 %val2, i32 *%ptr
-  store volatile i32 %val3, i32 *%ptr
-  store volatile i32 %val4, i32 *%ptr
-  store volatile i32 %val5, i32 *%ptr
-  store volatile i32 %val6, i32 *%ptr
-  store volatile i32 %val7, i32 *%ptr
-  store volatile i32 %val8, i32 *%ptr
-  store volatile i32 %val9, i32 *%ptr
-  store volatile i32 %val10, i32 *%ptr
-  store volatile i32 %val11, i32 *%ptr
-  store volatile i32 %val12, i32 *%ptr
-  store volatile i32 %val13, i32 *%ptr
-  store volatile i32 %val14, i32 *%ptr
-  store volatile i32 %val15, i32 *%ptr
-  store volatile i32 %val16, i32 *%ptr
-  store volatile i32 %val17, i32 *%ptr
-  store volatile i32 %val18, i32 *%ptr
-  store volatile i32 %val19, i32 *%ptr
-  store volatile i32 %val20, i32 *%ptr
-  store volatile i32 %val21, i32 *%ptr
-  store volatile i32 %val22, i32 *%ptr
-  store volatile i32 %val23, i32 *%ptr
-  store volatile i32 %val24, i32 *%ptr
-  store volatile i32 %val25, i32 *%ptr
-  store volatile i32 %val26, i32 *%ptr
-  store volatile i32 %val27, i32 *%ptr
-  store volatile i32 %val28, i32 *%ptr
-  store volatile i32 %val29, i32 *%ptr
-  store volatile i32 %val30, i32 *%ptr
-  store volatile i32 %val31, i32 *%ptr
+  store volatile i32 %val0, ptr %ptr
+  store volatile i32 %val1, ptr %ptr
+  store volatile i32 %val2, ptr %ptr
+  store volatile i32 %val3, ptr %ptr
+  store volatile i32 %val4, ptr %ptr
+  store volatile i32 %val5, ptr %ptr
+  store volatile i32 %val6, ptr %ptr
+  store volatile i32 %val7, ptr %ptr
+  store volatile i32 %val8, ptr %ptr
+  store volatile i32 %val9, ptr %ptr
+  store volatile i32 %val10, ptr %ptr
+  store volatile i32 %val11, ptr %ptr
+  store volatile i32 %val12, ptr %ptr
+  store volatile i32 %val13, ptr %ptr
+  store volatile i32 %val14, ptr %ptr
+  store volatile i32 %val15, ptr %ptr
+  store volatile i32 %val16, ptr %ptr
+  store volatile i32 %val17, ptr %ptr
+  store volatile i32 %val18, ptr %ptr
+  store volatile i32 %val19, ptr %ptr
+  store volatile i32 %val20, ptr %ptr
+  store volatile i32 %val21, ptr %ptr
+  store volatile i32 %val22, ptr %ptr
+  store volatile i32 %val23, ptr %ptr
+  store volatile i32 %val24, ptr %ptr
+  store volatile i32 %val25, ptr %ptr
+  store volatile i32 %val26, ptr %ptr
+  store volatile i32 %val27, ptr %ptr
+  store volatile i32 %val28, ptr %ptr
+  store volatile i32 %val29, ptr %ptr
+  store volatile i32 %val30, ptr %ptr
+  store volatile i32 %val31, ptr %ptr
 
-  store volatile i32 %ext0, i32 *%ptr
-  store volatile i32 %ext1, i32 *%ptr
-  store volatile i32 %ext2, i32 *%ptr
-  store volatile i32 %ext3, i32 *%ptr
-  store volatile i32 %ext4, i32 *%ptr
-  store volatile i32 %ext5, i32 *%ptr
-  store volatile i32 %ext6, i32 *%ptr
-  store volatile i32 %ext7, i32 *%ptr
-  store volatile i32 %ext8, i32 *%ptr
-  store volatile i32 %ext9, i32 *%ptr
-  store volatile i32 %ext10, i32 *%ptr
-  store volatile i32 %ext11, i32 *%ptr
-  store volatile i32 %ext12, i32 *%ptr
-  store volatile i32 %ext13, i32 *%ptr
-  store volatile i32 %ext14, i32 *%ptr
-  store volatile i32 %ext15, i32 *%ptr
-  store volatile i32 %ext16, i32 *%ptr
-  store volatile i32 %ext17, i32 *%ptr
-  store volatile i32 %ext18, i32 *%ptr
-  store volatile i32 %ext19, i32 *%ptr
-  store volatile i32 %ext20, i32 *%ptr
-  store volatile i32 %ext21, i32 *%ptr
-  store volatile i32 %ext22, i32 *%ptr
-  store volatile i32 %ext23, i32 *%ptr
-  store volatile i32 %ext24, i32 *%ptr
-  store volatile i32 %ext25, i32 *%ptr
-  store volatile i32 %ext26, i32 *%ptr
-  store volatile i32 %ext27, i32 *%ptr
-  store volatile i32 %ext28, i32 *%ptr
-  store volatile i32 %ext29, i32 *%ptr
-  store volatile i32 %ext30, i32 *%ptr
-  store volatile i32 %ext31, i32 *%ptr
+  store volatile i32 %ext0, ptr %ptr
+  store volatile i32 %ext1, ptr %ptr
+  store volatile i32 %ext2, ptr %ptr
+  store volatile i32 %ext3, ptr %ptr
+  store volatile i32 %ext4, ptr %ptr
+  store volatile i32 %ext5, ptr %ptr
+  store volatile i32 %ext6, ptr %ptr
+  store volatile i32 %ext7, ptr %ptr
+  store volatile i32 %ext8, ptr %ptr
+  store volatile i32 %ext9, ptr %ptr
+  store volatile i32 %ext10, ptr %ptr
+  store volatile i32 %ext11, ptr %ptr
+  store volatile i32 %ext12, ptr %ptr
+  store volatile i32 %ext13, ptr %ptr
+  store volatile i32 %ext14, ptr %ptr
+  store volatile i32 %ext15, ptr %ptr
+  store volatile i32 %ext16, ptr %ptr
+  store volatile i32 %ext17, ptr %ptr
+  store volatile i32 %ext18, ptr %ptr
+  store volatile i32 %ext19, ptr %ptr
+  store volatile i32 %ext20, ptr %ptr
+  store volatile i32 %ext21, ptr %ptr
+  store volatile i32 %ext22, ptr %ptr
+  store volatile i32 %ext23, ptr %ptr
+  store volatile i32 %ext24, ptr %ptr
+  store volatile i32 %ext25, ptr %ptr
+  store volatile i32 %ext26, ptr %ptr
+  store volatile i32 %ext27, ptr %ptr
+  store volatile i32 %ext28, ptr %ptr
+  store volatile i32 %ext29, ptr %ptr
+  store volatile i32 %ext30, ptr %ptr
+  store volatile i32 %ext31, ptr %ptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-12.ll b/llvm/test/CodeGen/SystemZ/int-conv-12.ll
index 2f4bd3c2deabd..cb4265f46f3a9 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-12.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-12.ll
@@ -32,34 +32,34 @@ define i64 @f3(i32 %a) {
 }
 
 ; Check LLGT with no displacement.
-define i64 @f4(i32 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: llgt %r2, 0(%r2)
 ; CHECK: br %r14
-  %word = load i32, i32 *%src
+  %word = load i32, ptr %src
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and
 }
 
 ; ... and the other way around.
-define i64 @f5(i32 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: llgt %r2, 0(%r2)
 ; CHECK: br %r14
-  %word = load i32, i32 *%src
+  %word = load i32, ptr %src
   %and = and i32 %word, 2147483647
   %ext = zext i32 %and to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LLGT range.
-define i64 @f6(i32 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: llgt %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and
@@ -67,37 +67,37 @@ define i64 @f6(i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i32 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llgt %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and
 }
 
 ; Check the high end of the negative LLGT range.
-define i64 @f8(i32 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: llgt %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and
 }
 
 ; Check the low end of the LLGT range.
-define i64 @f9(i32 *%src) {
+define i64 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: llgt %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and
@@ -105,13 +105,13 @@ define i64 @f9(i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f10(i32 *%src) {
+define i64 @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r2, -524292
 ; CHECK: llgt %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %word = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and
@@ -124,8 +124,8 @@ define i64 @f11(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %word = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %word = load i32, ptr %ptr
   %ext = zext i32 %word to i64
   %and = and i64 %ext, 2147483647
   ret i64 %and

diff  --git a/llvm/test/CodeGen/SystemZ/int-conv-13.ll b/llvm/test/CodeGen/SystemZ/int-conv-13.ll
index 645f3fa8fc9b6..44ad8c348ed0f 100644
--- a/llvm/test/CodeGen/SystemZ/int-conv-13.ll
+++ b/llvm/test/CodeGen/SystemZ/int-conv-13.ll
@@ -3,70 +3,70 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Check LZRF with no displacement.
-define i32 @f1(i32 *%src) {
+define i32 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lzrf %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%src
+  %val = load i32, ptr %src
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
 
 ; Check the high end of the LZRF range.
-define i32 @f2(i32 *%src) {
+define i32 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lzrf %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f3(i32 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lzrf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
 
 ; Check the high end of the negative LZRF range.
-define i32 @f4(i32 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lzrf %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
 
 ; Check the low end of the LZRF range.
-define i32 @f5(i32 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: lzrf %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524292
 ; CHECK: lzrf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
@@ -78,77 +78,77 @@ define i32 @f7(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   ret i32 %and
 }
 
 ; Check LZRG with no displacement.
-define i64 @f8(i64 *%src) {
+define i64 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: lzrg %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%src
+  %val = load i64, ptr %src
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
 
 ; Check the high end of the LZRG range.
-define i64 @f9(i64 *%src) {
+define i64 @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: lzrg %r2, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %val = load i64, ptr %ptr
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f10(i64 *%src) {
+define i64 @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lzrg %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %val = load i64, ptr %ptr
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
 
 ; Check the high end of the negative LZRG range.
-define i64 @f11(i64 *%src) {
+define i64 @f11(ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: lzrg %r2, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %val = load i64, ptr %ptr
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
 
 ; Check the low end of the LZRG range.
-define i64 @f12(i64 *%src) {
+define i64 @f12(ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: lzrg %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %val = load i64, ptr %ptr
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f13(i64 *%src) {
+define i64 @f13(ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: agfi %r2, -524296
 ; CHECK: lzrg %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %val = load i64, ptr %ptr
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
@@ -160,41 +160,41 @@ define i64 @f14(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %val = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i64, ptr %ptr
   %and = and i64 %val, 18446744073709551360
   ret i64 %and
 }
 
 ; Check LLZRGF with no displacement.
-define i64 @f15(i32 *%src) {
+define i64 @f15(ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: llzrgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%src
+  %val = load i32, ptr %src
   %ext = zext i32 %val to i64
   %and = and i64 %ext, 18446744073709551360
   ret i64 %and
 }
 
 ; ... and the other way around.
-define i64 @f16(i32 *%src) {
+define i64 @f16(ptr %src) {
 ; CHECK-LABEL: f16:
 ; CHECK: llzrgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%src
+  %val = load i32, ptr %src
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext
 }
 
 ; Check the high end of the LLZRGF range.
-define i64 @f17(i32 *%src) {
+define i64 @f17(ptr %src) {
 ; CHECK-LABEL: f17:
 ; CHECK: llzrgf %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext
@@ -202,37 +202,37 @@ define i64 @f17(i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f18(i32 *%src) {
+define i64 @f18(ptr %src) {
 ; CHECK-LABEL: f18:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llzrgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext
 }
 
 ; Check the high end of the negative LLZRGF range.
-define i64 @f19(i32 *%src) {
+define i64 @f19(ptr %src) {
 ; CHECK-LABEL: f19:
 ; CHECK: llzrgf %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext
 }
 
 ; Check the low end of the LLZRGF range.
-define i64 @f20(i32 *%src) {
+define i64 @f20(ptr %src) {
 ; CHECK-LABEL: f20:
 ; CHECK: llzrgf %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext
@@ -240,13 +240,13 @@ define i64 @f20(i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f21(i32 *%src) {
+define i64 @f21(ptr %src) {
 ; CHECK-LABEL: f21:
 ; CHECK: agfi %r2, -524292
 ; CHECK: llzrgf %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext
@@ -259,8 +259,8 @@ define i64 @f22(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %and = and i32 %val, 4294967040
   %ext = zext i32 %and to i64
   ret i64 %ext

diff  --git a/llvm/test/CodeGen/SystemZ/int-div-01.ll b/llvm/test/CodeGen/SystemZ/int-div-01.ll
index 04bff41e4c9b7..6bc7fb80dbeb9 100644
--- a/llvm/test/CodeGen/SystemZ/int-div-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-div-01.ll
@@ -5,26 +5,26 @@
 declare i32 @foo()
 
 ; Test register division.  The result is in the second of the two registers.
-define void @f1(i32 *%dest, i32 %a, i32 %b) {
+define void @f1(ptr %dest, i32 %a, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: lgfr %r1, %r3
 ; CHECK: dsgfr %r0, %r4
 ; CHECK: st %r1, 0(%r2)
 ; CHECK: br %r14
   %div = sdiv i32 %a, %b
-  store i32 %div, i32 *%dest
+  store i32 %div, ptr %dest
   ret void
 }
 
 ; Test register remainder.  The result is in the first of the two registers.
-define void @f2(i32 *%dest, i32 %a, i32 %b) {
+define void @f2(ptr %dest, i32 %a, i32 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: lgfr %r1, %r3
 ; CHECK: dsgfr %r0, %r4
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
   %rem = srem i32 %a, %b
-  store i32 %rem, i32 *%dest
+  store i32 %rem, ptr %dest
   ret void
 }
 
@@ -61,7 +61,7 @@ define i32 @f4(i32 %dummy, i32 signext %a, i32 %b) {
 }
 
 ; Test that memory dividends are loaded using sign extension (LGF).
-define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
+define i32 @f5(i32 %dummy, ptr %src, i32 %b) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r2
 ; CHECK: lgf %r3, 0(%r3)
@@ -70,7 +70,7 @@ define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
 ; CHECK-NOT: dsgfr
 ; CHECK: or %r2, %r3
 ; CHECK: br %r14
-  %a = load i32, i32 *%src
+  %a = load i32, ptr %src
   %div = sdiv i32 %a, %b
   %rem = srem i32 %a, %b
   %or = or i32 %rem, %div
@@ -78,33 +78,33 @@ define i32 @f5(i32 %dummy, i32 *%src, i32 %b) {
 }
 
 ; Test memory division with no displacement.
-define void @f6(i32 *%dest, i32 %a, i32 *%src) {
+define void @f6(ptr %dest, i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lgfr %r1, %r3
 ; CHECK: dsgf %r0, 0(%r4)
 ; CHECK: st %r1, 0(%r2)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %div = sdiv i32 %a, %b
-  store i32 %div, i32 *%dest
+  store i32 %div, ptr %dest
   ret void
 }
 
 ; Test memory remainder with no displacement.
-define void @f7(i32 *%dest, i32 %a, i32 *%src) {
+define void @f7(ptr %dest, i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: lgfr %r1, %r3
 ; CHECK: dsgf %r0, 0(%r4)
 ; CHECK: st %r0, 0(%r2)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %rem = srem i32 %a, %b
-  store i32 %rem, i32 *%dest
+  store i32 %rem, ptr %dest
   ret void
 }
 
 ; Test both memory division and memory remainder.
-define i32 @f8(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f8(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: %r2
 ; CHECK: lgfr %r3, %r3
@@ -113,7 +113,7 @@ define i32 @f8(i32 %dummy, i32 %a, i32 *%src) {
 ; CHECK-NOT: {{dsgf|dsgfr}}
 ; CHECK: or %r2, %r3
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %div = sdiv i32 %a, %b
   %rem = srem i32 %a, %b
   %or = or i32 %rem, %div
@@ -121,60 +121,60 @@ define i32 @f8(i32 %dummy, i32 %a, i32 *%src) {
 }
 
 ; Check the high end of the DSGF range.
-define i32 @f9(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f9(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: dsgf %r2, 524284(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %rem = srem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f10(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f10(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r4, 524288
 ; CHECK: dsgf %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %rem = srem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the high end of the negative aligned DSGF range.
-define i32 @f11(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f11(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: dsgf %r2, -4(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %rem = srem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the low end of the DSGF range.
-define i32 @f12(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f12(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: dsgf %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %rem = srem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f13(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f13(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: agfi %r4, -524292
 ; CHECK: dsgf %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %rem = srem i32 %a, %b
   ret i32 %rem
 }
@@ -186,54 +186,54 @@ define i32 @f14(i32 %dummy, i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %rem = srem i32 %a, %b
   ret i32 %rem
 }
 
 ; Make sure that we still use DSGFR rather than DSGR in cases where
 ; a load and division cannot be combined.
-define void @f15(i32 *%dest, i32 *%src) {
+define void @f15(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: l [[B:%r[0-9]+]], 0(%r3)
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: lgfr %r1, %r2
 ; CHECK: dsgfr %r0, [[B]]
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %a = call i32 @foo()
   %div = sdiv i32 %a, %b
-  store i32 %div, i32 *%dest
+  store i32 %div, ptr %dest
   ret void
 }
 
 ; Check that divisions of spilled values can use DSGF rather than DSGFR.
-define i32 @f16(i32 *%ptr0) {
+define i32 @f16(ptr %ptr0) {
 ; CHECK-LABEL: f16:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: dsgf {{%r[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-div-02.ll b/llvm/test/CodeGen/SystemZ/int-div-02.ll
index eca3d9d2f6cca..5f72eeb1599e3 100644
--- a/llvm/test/CodeGen/SystemZ/int-div-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-div-02.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Test register division.  The result is in the second of the two registers.
-define void @f1(i32 %dummy, i32 %a, i32 %b, i32 *%dest) {
+define void @f1(i32 %dummy, i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lhi}} %r2, 0
@@ -14,12 +14,12 @@ define void @f1(i32 %dummy, i32 %a, i32 %b, i32 *%dest) {
 ; CHECK: st %r3, 0(%r5)
 ; CHECK: br %r14
   %div = udiv i32 %a, %b
-  store i32 %div, i32 *%dest
+  store i32 %div, ptr %dest
   ret void
 }
 
 ; Test register remainder.  The result is in the first of the two registers.
-define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%dest) {
+define void @f2(i32 %dummy, i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lhi}} %r2, 0
@@ -28,7 +28,7 @@ define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%dest) {
 ; CHECK: st %r2, 0(%r5)
 ; CHECK: br %r14
   %rem = urem i32 %a, %b
-  store i32 %rem, i32 *%dest
+  store i32 %rem, ptr %dest
   ret void
 }
 
@@ -49,7 +49,7 @@ define i32 @f3(i32 %dummy1, i32 %a, i32 %b) {
 }
 
 ; Test memory division with no displacement.
-define void @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%dest) {
+define void @f4(i32 %dummy, i32 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lhi}} %r2, 0
@@ -57,14 +57,14 @@ define void @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%dest) {
 ; CHECK: dl %r2, 0(%r4)
 ; CHECK: st %r3, 0(%r5)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %div = udiv i32 %a, %b
-  store i32 %div, i32 *%dest
+  store i32 %div, ptr %dest
   ret void
 }
 
 ; Test memory remainder with no displacement.
-define void @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%dest) {
+define void @f5(i32 %dummy, i32 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lhi}} %r2, 0
@@ -72,14 +72,14 @@ define void @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%dest) {
 ; CHECK: dl %r2, 0(%r4)
 ; CHECK: st %r2, 0(%r5)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %rem = urem i32 %a, %b
-  store i32 %rem, i32 *%dest
+  store i32 %rem, ptr %dest
   ret void
 }
 
 ; Test both memory division and memory remainder.
-define i32 @f6(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f6(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lhi}} %r2, 0
@@ -88,7 +88,7 @@ define i32 @f6(i32 %dummy, i32 %a, i32 *%src) {
 ; CHECK-NOT: {{dl|dlr}}
 ; CHECK: or %r2, %r3
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %div = udiv i32 %a, %b
   %rem = urem i32 %a, %b
   %or = or i32 %rem, %div
@@ -96,60 +96,60 @@ define i32 @f6(i32 %dummy, i32 %a, i32 *%src) {
 }
 
 ; Check the high end of the DL range.
-define i32 @f7(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f7(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: dl %r2, 524284(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %rem = urem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f8(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: dl %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %rem = urem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the high end of the negative aligned DL range.
-define i32 @f9(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f9(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: dl %r2, -4(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %rem = urem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the low end of the DL range.
-define i32 @f10(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f10(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: dl %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %rem = urem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f11(i32 %dummy, i32 %a, i32 *%src) {
+define i32 @f11(i32 %dummy, i32 %a, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524292
 ; CHECK: dl %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %rem = urem i32 %a, %b
   ret i32 %rem
 }
@@ -161,38 +161,38 @@ define i32 @f12(i32 %dummy, i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %rem = urem i32 %a, %b
   ret i32 %rem
 }
 
 ; Check that divisions of spilled values can use DL rather than DLR.
-define i32 @f13(i32 *%ptr0) {
+define i32 @f13(ptr %ptr0) {
 ; CHECK-LABEL: f13:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: dl {{%r[0-9]+}}, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-div-03.ll b/llvm/test/CodeGen/SystemZ/int-div-03.ll
index c4a00ca0aaafc..0567c10c453cf 100644
--- a/llvm/test/CodeGen/SystemZ/int-div-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-div-03.ll
@@ -6,7 +6,7 @@
 declare i64 @foo()
 
 ; Test register division.  The result is in the second of the two registers.
-define void @f1(i64 %dummy, i64 %a, i32 %b, i64 *%dest) {
+define void @f1(i64 %dummy, i64 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgfr %r2, %r4
@@ -14,12 +14,12 @@ define void @f1(i64 %dummy, i64 %a, i32 %b, i64 *%dest) {
 ; CHECK: br %r14
   %bext = sext i32 %b to i64
   %div = sdiv i64 %a, %bext
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; Test register remainder.  The result is in the first of the two registers.
-define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%dest) {
+define void @f2(i64 %dummy, i64 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgfr %r2, %r4
@@ -27,7 +27,7 @@ define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%dest) {
 ; CHECK: br %r14
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
@@ -48,57 +48,57 @@ define i64 @f3(i64 %dummy, i64 %a, i32 %b) {
 
 ; Test register division when the dividend is zero rather than sign extended.
 ; We can't use dsgfr here
-define void @f4(i64 %dummy, i64 %a, i32 %b, i64 *%dest) {
+define void @f4(i64 %dummy, i64 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: dsgfr
 ; CHECK: br %r14
   %bext = zext i32 %b to i64
   %div = sdiv i64 %a, %bext
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; ...likewise remainder.
-define void @f5(i64 %dummy, i64 %a, i32 %b, i64 *%dest) {
+define void @f5(i64 %dummy, i64 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: dsgfr
 ; CHECK: br %r14
   %bext = zext i32 %b to i64
   %rem = srem i64 %a, %bext
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
 ; Test memory division with no displacement.
-define void @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%dest) {
+define void @f6(i64 %dummy, i64 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgf %r2, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %div = sdiv i64 %a, %bext
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; Test memory remainder with no displacement.
-define void @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%dest) {
+define void @f7(i64 %dummy, i64 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgf %r2, 0(%r4)
 ; CHECK: stg %r2, 0(%r5)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
 ; Test both memory division and memory remainder.
-define i64 @f8(i64 %dummy, i64 %a, i32 *%src) {
+define i64 @f8(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgf %r2, 0(%r4)
@@ -106,7 +106,7 @@ define i64 @f8(i64 %dummy, i64 %a, i32 *%src) {
 ; CHECK: ogr %r3, %r2
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %div = sdiv i64 %a, %bext
   %rem = srem i64 %a, %bext
@@ -115,12 +115,12 @@ define i64 @f8(i64 %dummy, i64 %a, i32 *%src) {
 }
 
 ; Check the high end of the DSGF range.
-define i64 @f9(i64 %dummy, i64 %a, i32 *%src) {
+define i64 @f9(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: dsgf %r2, 524284(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
   ret i64 %rem
@@ -128,37 +128,37 @@ define i64 @f9(i64 %dummy, i64 %a, i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f10(i64 %dummy, i64 %a, i32 *%src) {
+define i64 @f10(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r4, 524288
 ; CHECK: dsgf %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
   ret i64 %rem
 }
 
 ; Check the high end of the negative aligned DSGF range.
-define i64 @f11(i64 %dummy, i64 %a, i32 *%src) {
+define i64 @f11(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: dsgf %r2, -4(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
   ret i64 %rem
 }
 
 ; Check the low end of the DSGF range.
-define i64 @f12(i64 %dummy, i64 %a, i32 *%src) {
+define i64 @f12(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f12:
 ; CHECK: dsgf %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
   ret i64 %rem
@@ -166,13 +166,13 @@ define i64 @f12(i64 %dummy, i64 %a, i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f13(i64 %dummy, i64 %a, i32 *%src) {
+define i64 @f13(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f13:
 ; CHECK: agfi %r4, -524292
 ; CHECK: dsgf %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
   ret i64 %rem
@@ -185,8 +185,8 @@ define i64 @f14(i64 %dummy, i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %rem = srem i64 %a, %bext
   ret i64 %rem
@@ -194,17 +194,17 @@ define i64 @f14(i64 %dummy, i64 %a, i64 %src, i64 %index) {
 
 ; Make sure that we still use DSGFR rather than DSGR in cases where
 ; a load and division cannot be combined.
-define void @f15(i64 *%dest, i32 *%src) {
+define void @f15(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: l [[B:%r[0-9]+]], 0(%r3)
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: lgr %r1, %r2
 ; CHECK: dsgfr %r0, [[B]]
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %a = call i64 @foo()
   %ext = sext i32 %b to i64
   %div = sdiv i64 %a, %ext
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-div-04.ll b/llvm/test/CodeGen/SystemZ/int-div-04.ll
index 0448eedcba5ac..840423e91d349 100644
--- a/llvm/test/CodeGen/SystemZ/int-div-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-div-04.ll
@@ -5,26 +5,26 @@
 declare i64 @foo()
 
 ; Testg register division.  The result is in the second of the two registers.
-define void @f1(i64 %dummy, i64 %a, i64 %b, i64 *%dest) {
+define void @f1(i64 %dummy, i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgr %r2, %r4
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: br %r14
   %div = sdiv i64 %a, %b
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; Testg register remainder.  The result is in the first of the two registers.
-define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%dest) {
+define void @f2(i64 %dummy, i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsgr %r2, %r4
 ; CHECK: stg %r2, 0(%r5)
 ; CHECK: br %r14
   %rem = srem i64 %a, %b
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
@@ -44,33 +44,33 @@ define i64 @f3(i64 %dummy1, i64 %a, i64 %b) {
 }
 
 ; Testg memory division with no displacement.
-define void @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%dest) {
+define void @f4(i64 %dummy, i64 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsg %r2, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %div = sdiv i64 %a, %b
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; Testg memory remainder with no displacement.
-define void @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%dest) {
+define void @f5(i64 %dummy, i64 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsg %r2, 0(%r4)
 ; CHECK: stg %r2, 0(%r5)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %rem = srem i64 %a, %b
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
 ; Testg both memory division and memory remainder.
-define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f6(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: dsg %r2, 0(%r4)
@@ -78,7 +78,7 @@ define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
 ; CHECK: ogr %r3, %r2
 ; CHECK: lgr %r2, %r3
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %div = sdiv i64 %a, %b
   %rem = srem i64 %a, %b
   %or = or i64 %rem, %div
@@ -86,60 +86,60 @@ define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the high end of the DSG range.
-define i64 @f7(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f7(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: dsg %r2, 524280(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %rem = srem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f8(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f8(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: dsg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %rem = srem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the high end of the negative aligned DSG range.
-define i64 @f9(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f9(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: dsg %r2, -8(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %rem = srem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the low end of the DSG range.
-define i64 @f10(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f10(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: dsg %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %rem = srem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f11(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f11(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524296
 ; CHECK: dsg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %rem = srem i64 %a, %b
   ret i64 %rem
 }
@@ -151,40 +151,40 @@ define i64 @f12(i64 %dummy, i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %rem = srem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check that divisions of spilled values can use DSG rather than DSGR.
-define i64 @f13(i64 *%ptr0) {
+define i64 @f13(ptr %ptr0) {
 ; CHECK-LABEL: f13:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: dsg {{%r[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
-  %ptr10 = getelementptr i64, i64 *%ptr0, i64 20
-
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
-  %val10 = load i64, i64 *%ptr10
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
+  %ptr10 = getelementptr i64, ptr %ptr0, i64 20
+
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
+  %val10 = load i64, ptr %ptr10
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-div-05.ll b/llvm/test/CodeGen/SystemZ/int-div-05.ll
index fcb35c8bab18c..ba1fcb897253e 100644
--- a/llvm/test/CodeGen/SystemZ/int-div-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-div-05.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Testg register division.  The result is in the second of the two registers.
-define void @f1(i64 %dummy, i64 %a, i64 %b, i64 *%dest) {
+define void @f1(i64 %dummy, i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lghi}} %r2, 0
@@ -14,12 +14,12 @@ define void @f1(i64 %dummy, i64 %a, i64 %b, i64 *%dest) {
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: br %r14
   %div = udiv i64 %a, %b
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; Testg register remainder.  The result is in the first of the two registers.
-define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%dest) {
+define void @f2(i64 %dummy, i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lghi}} %r2, 0
@@ -28,7 +28,7 @@ define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%dest) {
 ; CHECK: stg %r2, 0(%r5)
 ; CHECK: br %r14
   %rem = urem i64 %a, %b
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
@@ -49,7 +49,7 @@ define i64 @f3(i64 %dummy1, i64 %a, i64 %b) {
 }
 
 ; Testg memory division with no displacement.
-define void @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%dest) {
+define void @f4(i64 %dummy, i64 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lghi}} %r2, 0
@@ -57,14 +57,14 @@ define void @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%dest) {
 ; CHECK: dlg %r2, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %div = udiv i64 %a, %b
-  store i64 %div, i64 *%dest
+  store i64 %div, ptr %dest
   ret void
 }
 
 ; Testg memory remainder with no displacement.
-define void @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%dest) {
+define void @f5(i64 %dummy, i64 %a, ptr %src, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lghi}} %r2, 0
@@ -72,14 +72,14 @@ define void @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%dest) {
 ; CHECK: dlg %r2, 0(%r4)
 ; CHECK: stg %r2, 0(%r5)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %rem = urem i64 %a, %b
-  store i64 %rem, i64 *%dest
+  store i64 %rem, ptr %dest
   ret void
 }
 
 ; Testg both memory division and memory remainder.
-define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f6(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: %r3
 ; CHECK: {{llill|lghi}} %r2, 0
@@ -88,7 +88,7 @@ define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
 ; CHECK-NOT: {{dlg|dlgr}}
 ; CHECK: ogr %r2, %r3
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %div = udiv i64 %a, %b
   %rem = urem i64 %a, %b
   %or = or i64 %rem, %div
@@ -96,60 +96,60 @@ define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the high end of the DLG range.
-define i64 @f7(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f7(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: dlg %r2, 524280(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %rem = urem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f8(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f8(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: dlg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %rem = urem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the high end of the negative aligned DLG range.
-define i64 @f9(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f9(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: dlg %r2, -8(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %rem = urem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the low end of the DLG range.
-define i64 @f10(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f10(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: dlg %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %rem = urem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f11(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f11(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524296
 ; CHECK: dlg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %rem = urem i64 %a, %b
   ret i64 %rem
 }
@@ -161,40 +161,40 @@ define i64 @f12(i64 %dummy, i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %rem = urem i64 %a, %b
   ret i64 %rem
 }
 
 ; Check that divisions of spilled values can use DLG rather than DLGR.
-define i64 @f13(i64 *%ptr0) {
+define i64 @f13(ptr %ptr0) {
 ; CHECK-LABEL: f13:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: dlg {{%r[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
-  %ptr10 = getelementptr i64, i64 *%ptr0, i64 20
-
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
-  %val10 = load i64, i64 *%ptr10
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
+  %ptr10 = getelementptr i64, ptr %ptr0, i64 20
+
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
+  %val10 = load i64, ptr %ptr10
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-02.ll b/llvm/test/CodeGen/SystemZ/int-move-02.ll
index 8502f427462c3..d379e4fc8e2d9 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-02.ll
@@ -3,85 +3,85 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the L range.
-define i32 @f1(i32 *%src) {
+define i32 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: l %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%src
+  %val = load i32, ptr %src
   ret i32 %val
 }
 
 ; Check the high end of the aligned L range.
-define i32 @f2(i32 *%src) {
+define i32 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: l %r2, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
 ; Check the next word up, which should use LY instead of L.
-define i32 @f3(i32 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ly %r2, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
 ; Check the high end of the aligned LY range.
-define i32 @f4(i32 *%src) {
+define i32 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: ly %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f5(i32 *%src) {
+define i32 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r2, 524288
 ; CHECK: l %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
 ; Check the high end of the negative aligned LY range.
-define i32 @f6(i32 *%src) {
+define i32 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: ly %r2, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
 ; Check the low end of the LY range.
-define i32 @f7(i32 *%src) {
+define i32 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: ly %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i32 *%src) {
+define i32 @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, -524292
 ; CHECK: l %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
@@ -92,8 +92,8 @@ define i32 @f9(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   ret i32 %val
 }
 
@@ -104,7 +104,7 @@ define i32 @f10(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   ret i32 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-03.ll b/llvm/test/CodeGen/SystemZ/int-move-03.ll
index 3be54118c3d1b..c33a7805f2036 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-03.ll
@@ -3,65 +3,65 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check LG with no displacement.
-define i64 @f1(i64 *%src) {
+define i64 @f1(ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: lg %r2, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%src
+  %val = load i64, ptr %src
   ret i64 %val
 }
 
 ; Check the high end of the aligned LG range.
-define i64 @f2(i64 *%src) {
+define i64 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lg %r2, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %val = load i64, ptr %ptr
   ret i64 %val
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i64 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lg %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %val = load i64, ptr %ptr
   ret i64 %val
 }
 
 ; Check the high end of the negative aligned LG range.
-define i64 @f4(i64 *%src) {
+define i64 @f4(ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: lg %r2, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %val = load i64, ptr %ptr
   ret i64 %val
 }
 
 ; Check the low end of the LG range.
-define i64 @f5(i64 *%src) {
+define i64 @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: lg %r2, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %val = load i64, ptr %ptr
   ret i64 %val
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524296
 ; CHECK: lg %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %val = load i64, ptr %ptr
   ret i64 %val
 }
 
@@ -72,7 +72,7 @@ define i64 @f7(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %val = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i64, ptr %ptr
   ret i64 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-04.ll b/llvm/test/CodeGen/SystemZ/int-move-04.ll
index cb7d86428b7ed..2662c994628ff 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-04.ll
@@ -3,105 +3,105 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test an i8 store, which should get converted into an i32 truncation.
-define void @f1(i8 *%dst, i8 %val) {
+define void @f1(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  store i8 %val, i8 *%dst
+  store i8 %val, ptr %dst
   ret void
 }
 
 ; Test an i32 truncating store.
-define void @f2(i8 *%dst, i32 %val) {
+define void @f2(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f2:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc i32 %val to i8
-  store i8 %trunc, i8 *%dst
+  store i8 %trunc, ptr %dst
   ret void
 }
 
 ; Test an i64 truncating store.
-define void @f3(i8 *%dst, i64 %val) {
+define void @f3(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc i64 %val to i8
-  store i8 %trunc, i8 *%dst
+  store i8 %trunc, ptr %dst
   ret void
 }
 
 ; Check the high end of the STC range.
-define void @f4(i8 *%dst, i8 %val) {
+define void @f4(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: stc %r3, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 4095
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 4095
+  store i8 %val, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which should use STCY instead of STC.
-define void @f5(i8 *%dst, i8 %val) {
+define void @f5(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f5:
 ; CHECK: stcy %r3, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 4096
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 4096
+  store i8 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the STCY range.
-define void @f6(i8 *%dst, i8 %val) {
+define void @f6(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f6:
 ; CHECK: stcy %r3, 524287(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 524287
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 524287
+  store i8 %val, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f7(i8 *%dst, i8 %val) {
+define void @f7(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 524288
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 524288
+  store i8 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative STCY range.
-define void @f8(i8 *%dst, i8 %val) {
+define void @f8(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f8:
 ; CHECK: stcy %r3, -1(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 -1
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 -1
+  store i8 %val, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STCY range.
-define void @f9(i8 *%dst, i8 %val) {
+define void @f9(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f9:
 ; CHECK: stcy %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 -524288
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 -524288
+  store i8 %val, ptr %ptr
   ret void
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f10(i8 *%dst, i8 %val) {
+define void @f10(ptr %dst, i8 %val) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r2, -524289
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%dst, i64 -524289
-  store i8 %val, i8 *%ptr
+  %ptr = getelementptr i8, ptr %dst, i64 -524289
+  store i8 %val, ptr %ptr
   ret void
 }
 
@@ -112,8 +112,8 @@ define void @f11(i64 %dst, i64 %index, i8 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i8 *
-  store i8 %val, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i8 %val, ptr %ptr
   ret void
 }
 
@@ -124,7 +124,7 @@ define void @f12(i64 %dst, i64 %index, i8 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
-  store i8 %val, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i8 %val, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-05.ll b/llvm/test/CodeGen/SystemZ/int-move-05.ll
index 2bfe03447c840..1c3c324d6fa7f 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-05.ll
@@ -3,105 +3,105 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test an i16 store, which should get converted into an i32 truncation.
-define void @f1(i16 *%dst, i16 %val) {
+define void @f1(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
-  store i16 %val, i16 *%dst
+  store i16 %val, ptr %dst
   ret void
 }
 
 ; Test an i32 truncating store.
-define void @f2(i16 *%dst, i32 %val) {
+define void @f2(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f2:
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc i32 %val to i16
-  store i16 %trunc, i16 *%dst
+  store i16 %trunc, ptr %dst
   ret void
 }
 
 ; Test an i64 truncating store.
-define void @f3(i16 *%dst, i64 %val) {
+define void @f3(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc i64 %val to i16
-  store i16 %trunc, i16 *%dst
+  store i16 %trunc, ptr %dst
   ret void
 }
 
 ; Check the high end of the STH range.
-define void @f4(i16 *%dst, i16 %val) {
+define void @f4(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: sth %r3, 4094(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 2047
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 2047
+  store i16 %val, ptr %ptr
   ret void
 }
 
 ; Check the next halfword up, which should use STHY instead of STH.
-define void @f5(i16 *%dst, i16 %val) {
+define void @f5(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f5:
 ; CHECK: sthy %r3, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 2048
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 2048
+  store i16 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STHY range.
-define void @f6(i16 *%dst, i16 %val) {
+define void @f6(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f6:
 ; CHECK: sthy %r3, 524286(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 262143
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 262143
+  store i16 %val, ptr %ptr
   ret void
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f7(i16 *%dst, i16 %val) {
+define void @f7(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 262144
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 262144
+  store i16 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STHY range.
-define void @f8(i16 *%dst, i16 %val) {
+define void @f8(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f8:
 ; CHECK: sthy %r3, -2(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 -1
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 -1
+  store i16 %val, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STHY range.
-define void @f9(i16 *%dst, i16 %val) {
+define void @f9(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f9:
 ; CHECK: sthy %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 -262144
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 -262144
+  store i16 %val, ptr %ptr
   ret void
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f10(i16 *%dst, i16 %val) {
+define void @f10(ptr %dst, i16 %val) {
 ; CHECK-LABEL: f10:
 ; CHECK: agfi %r2, -524290
 ; CHECK: sth %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%dst, i64 -262145
-  store i16 %val, i16 *%ptr
+  %ptr = getelementptr i16, ptr %dst, i64 -262145
+  store i16 %val, ptr %ptr
   ret void
 }
 
@@ -112,8 +112,8 @@ define void @f11(i64 %dst, i64 %index, i16 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  store i16 %val, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i16 %val, ptr %ptr
   ret void
 }
 
@@ -124,7 +124,7 @@ define void @f12(i64 %dst, i64 %index, i16 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  store i16 %val, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i16 %val, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-06.ll b/llvm/test/CodeGen/SystemZ/int-move-06.ll
index f078ec62341ff..46ad2c2ee8205 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-06.ll
@@ -3,92 +3,92 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test an i32 store.
-define void @f1(i32 *%dst, i32 %val) {
+define void @f1(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
-  store i32 %val, i32 *%dst
+  store i32 %val, ptr %dst
   ret void
 }
 
 ; Test a truncating i64 store.
-define void @f2(i32 *%dst, i64 %val) {
+define void @f2(ptr %dst, i64 %val) {
   %word = trunc i64 %val to i32
-  store i32 %word, i32 *%dst
+  store i32 %word, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned ST range.
-define void @f3(i32 *%dst, i32 %val) {
+define void @f3(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: st %r3, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 1023
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 1023
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which should use STY instead of ST.
-define void @f4(i32 *%dst, i32 %val) {
+define void @f4(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: sty %r3, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 1024
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 1024
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the aligned STY range.
-define void @f5(i32 *%dst, i32 %val) {
+define void @f5(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f5:
 ; CHECK: sty %r3, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 131071
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 131071
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i32 *%dst, i32 %val) {
+define void @f6(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, 524288
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 131072
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 131072
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STY range.
-define void @f7(i32 *%dst, i32 %val) {
+define void @f7(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f7:
 ; CHECK: sty %r3, -4(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 -1
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 -1
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STY range.
-define void @f8(i32 *%dst, i32 %val) {
+define void @f8(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f8:
 ; CHECK: sty %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 -131072
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 -131072
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f9(i32 *%dst, i32 %val) {
+define void @f9(ptr %dst, i32 %val) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: st %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%dst, i64 -131073
-  store i32 %val, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dst, i64 -131073
+  store i32 %val, ptr %ptr
   ret void
 }
 
@@ -99,8 +99,8 @@ define void @f10(i64 %dst, i64 %index, i32 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i32 *
-  store i32 %val, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i32 %val, ptr %ptr
   ret void
 }
 
@@ -111,7 +111,7 @@ define void @f11(i64 %dst, i64 %index, i32 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  store i32 %val, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i32 %val, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-07.ll b/llvm/test/CodeGen/SystemZ/int-move-07.ll
index 77713adeebe35..11112202b1d07 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-07.ll
@@ -3,65 +3,65 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check STG with no displacement.
-define void @f1(i64 *%dst, i64 %val) {
+define void @f1(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
-  store i64 %val, i64 *%dst
+  store i64 %val, ptr %dst
   ret void
 }
 
 ; Check the high end of the aligned STG range.
-define void @f2(i64 *%dst, i64 %val) {
+define void @f2(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f2:
 ; CHECK: stg %r3, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 65535
-  store i64 %val, i64 *%ptr
+  %ptr = getelementptr i64, ptr %dst, i64 65535
+  store i64 %val, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f3(i64 *%dst, i64 %val) {
+define void @f3(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 65536
-  store i64 %val, i64 *%ptr
+  %ptr = getelementptr i64, ptr %dst, i64 65536
+  store i64 %val, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative aligned STG range.
-define void @f4(i64 *%dst, i64 %val) {
+define void @f4(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: stg %r3, -8(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 -1
-  store i64 %val, i64 *%ptr
+  %ptr = getelementptr i64, ptr %dst, i64 -1
+  store i64 %val, ptr %ptr
   ret void
 }
 
 ; Check the low end of the STG range.
-define void @f5(i64 *%dst, i64 %val) {
+define void @f5(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f5:
 ; CHECK: stg %r3, -524288(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 -65536
-  store i64 %val, i64 *%ptr
+  %ptr = getelementptr i64, ptr %dst, i64 -65536
+  store i64 %val, ptr %ptr
   ret void
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i64 *%dst, i64 %val) {
+define void @f6(ptr %dst, i64 %val) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r2, -524296
 ; CHECK: stg %r3, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%dst, i64 -65537
-  store i64 %val, i64 *%ptr
+  %ptr = getelementptr i64, ptr %dst, i64 -65537
+  store i64 %val, ptr %ptr
   ret void
 }
 
@@ -72,7 +72,7 @@ define void @f7(i64 %dst, i64 %index, i64 %val) {
 ; CHECK: br %r14
   %add1 = add i64 %dst, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  store i64 %val, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  store i64 %val, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-08.ll b/llvm/test/CodeGen/SystemZ/int-move-08.ll
index 67edbb8e69fbc..59a14e3377460 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-08.ll
@@ -18,7 +18,7 @@ define dso_local i32 @f1() {
 ; CHECK-LABEL: f1:
 ; CHECK: lhrl %r2, gsrc16
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16
+  %val = load i16, ptr at gsrc16
   %ext = sext i16 %val to i32
   ret i32 %ext
 }
@@ -28,7 +28,7 @@ define dso_local i32 @f2() {
 ; CHECK-LABEL: f2:
 ; CHECK: llhrl %r2, gsrc16
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16
+  %val = load i16, ptr at gsrc16
   %ext = zext i16 %val to i32
   ret i32 %ext
 }
@@ -39,7 +39,7 @@ define dso_local void @f3(i32 %val) {
 ; CHECK: sthrl %r2, gdst16
 ; CHECK: br %r14
   %half = trunc i32 %val to i16
-  store i16 %half, i16 *@gdst16
+  store i16 %half, ptr at gdst16
   ret void
 }
 
@@ -49,8 +49,8 @@ define dso_local void @f4() {
 ; CHECK: lrl %r0, gsrc32
 ; CHECK: strl %r0, gdst32
 ; CHECK: br %r14
-  %val = load i32, i32 *@gsrc32
-  store i32 %val, i32 *@gdst32
+  %val = load i32, ptr at gsrc32
+  store i32 %val, ptr at gdst32
   ret void
 }
 
@@ -60,7 +60,7 @@ define dso_local i32 @f5() {
 ; CHECK: lgrl [[REG:%r[0-5]]], gsrc16u
 ; CHECK: lh %r2, 0([[REG]])
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16u, align 1
+  %val = load i16, ptr at gsrc16u, align 1
   %ext = sext i16 %val to i32
   ret i32 %ext
 }
@@ -71,7 +71,7 @@ define dso_local i32 @f6() {
 ; CHECK: lgrl [[REG:%r[0-5]]], gsrc16u
 ; CHECK: llh %r2, 0([[REG]])
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16u, align 1
+  %val = load i16, ptr at gsrc16u, align 1
   %ext = zext i16 %val to i32
   ret i32 %ext
 }
@@ -83,7 +83,7 @@ define dso_local void @f7(i32 %val) {
 ; CHECK: sth %r2, 0([[REG]])
 ; CHECK: br %r14
   %half = trunc i32 %val to i16
-  store i16 %half, i16 *@gdst16u, align 1
+  store i16 %half, ptr at gdst16u, align 1
   ret void
 }
 
@@ -95,8 +95,8 @@ define dso_local void @f8() {
 ; CHECK: larl [[REG:%r[0-5]]], gdst32u
 ; CHECK: st [[VAL]], 0([[REG]])
 ; CHECK: br %r14
-  %val = load i32, i32 *@gsrc32u, align 2
-  store i32 %val, i32 *@gdst32u, align 2
+  %val = load i32, ptr at gsrc32u, align 2
+  store i32 %val, ptr at gdst32u, align 2
   ret void
 }
 
@@ -109,11 +109,11 @@ define dso_local void @f9() {
 ; CHECK: srl [[VAL]], 1
 ; CHECK: stc [[VAL]], 1([[REG]])
 ; CHECK: br %r14
-  %ptr1 = getelementptr [2 x i8], [2 x i8] *@garray8, i64 0, i64 0
-  %ptr2 = getelementptr [2 x i8], [2 x i8] *@garray8, i64 0, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr1 = getelementptr [2 x i8], ptr at garray8, i64 0, i64 0
+  %ptr2 = getelementptr [2 x i8], ptr at garray8, i64 0, i64 1
+  %val = load i8, ptr %ptr1
   %shr = lshr i8 %val, 1
-  store i8 %shr, i8 *%ptr2
+  store i8 %shr, ptr %ptr2
   ret void
 }
 
@@ -125,10 +125,10 @@ define dso_local void @f10() {
 ; CHECK: srl [[VAL]], 1
 ; CHECK: sthrl [[VAL]], garray16+2
 ; CHECK: br %r14
-  %ptr1 = getelementptr [2 x i16], [2 x i16] *@garray16, i64 0, i64 0
-  %ptr2 = getelementptr [2 x i16], [2 x i16] *@garray16, i64 0, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr1 = getelementptr [2 x i16], ptr at garray16, i64 0, i64 0
+  %ptr2 = getelementptr [2 x i16], ptr at garray16, i64 0, i64 1
+  %val = load i16, ptr %ptr1
   %shr = lshr i16 %val, 1
-  store i16 %shr, i16 *%ptr2
+  store i16 %shr, ptr %ptr2
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-09.ll b/llvm/test/CodeGen/SystemZ/int-move-09.ll
index 023365f0a3e9f..290a03295558c 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-09.ll
@@ -20,7 +20,7 @@ define dso_local i64 @f1() {
 ; CHECK-LABEL: f1:
 ; CHECK: lghrl %r2, gsrc16
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16
+  %val = load i16, ptr at gsrc16
   %ext = sext i16 %val to i64
   ret i64 %ext
 }
@@ -30,7 +30,7 @@ define dso_local i64 @f2() {
 ; CHECK-LABEL: f2:
 ; CHECK: llghrl %r2, gsrc16
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16
+  %val = load i16, ptr at gsrc16
   %ext = zext i16 %val to i64
   ret i64 %ext
 }
@@ -40,7 +40,7 @@ define dso_local i64 @f3() {
 ; CHECK-LABEL: f3:
 ; CHECK: lgfrl %r2, gsrc32
 ; CHECK: br %r14
-  %val = load i32, i32 *@gsrc32
+  %val = load i32, ptr at gsrc32
   %ext = sext i32 %val to i64
   ret i64 %ext
 }
@@ -50,7 +50,7 @@ define dso_local i64 @f4() {
 ; CHECK-LABEL: f4:
 ; CHECK: llgfrl %r2, gsrc32
 ; CHECK: br %r14
-  %val = load i32, i32 *@gsrc32
+  %val = load i32, ptr at gsrc32
   %ext = zext i32 %val to i64
   ret i64 %ext
 }
@@ -61,7 +61,7 @@ define dso_local void @f5(i64 %val) {
 ; CHECK: sthrl %r2, gdst16
 ; CHECK: br %r14
   %half = trunc i64 %val to i16
-  store i16 %half, i16 *@gdst16
+  store i16 %half, ptr at gdst16
   ret void
 }
 
@@ -71,7 +71,7 @@ define dso_local void @f6(i64 %val) {
 ; CHECK: strl %r2, gdst32
 ; CHECK: br %r14
   %word = trunc i64 %val to i32
-  store i32 %word, i32 *@gdst32
+  store i32 %word, ptr at gdst32
   ret void
 }
 
@@ -81,8 +81,8 @@ define dso_local void @f7() {
 ; CHECK: lgrl %r0, gsrc64
 ; CHECK: stgrl %r0, gdst64
 ; CHECK: br %r14
-  %val = load i64, i64 *@gsrc64
-  store i64 %val, i64 *@gdst64
+  %val = load i64, ptr at gsrc64
+  store i64 %val, ptr at gdst64
   ret void
 }
 
@@ -92,7 +92,7 @@ define dso_local i64 @f8() {
 ; CHECK: lgrl [[REG:%r[0-5]]], gsrc16u at GOT
 ; CHECK: lgh %r2, 0([[REG]])
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16u, align 1
+  %val = load i16, ptr at gsrc16u, align 1
   %ext = sext i16 %val to i64
   ret i64 %ext
 }
@@ -103,7 +103,7 @@ define dso_local i64 @f9() {
 ; CHECK: lgrl [[REG:%r[0-5]]], gsrc16u at GOT
 ; CHECK: llgh %r2, 0([[REG]])
 ; CHECK: br %r14
-  %val = load i16, i16 *@gsrc16u, align 1
+  %val = load i16, ptr at gsrc16u, align 1
   %ext = zext i16 %val to i64
   ret i64 %ext
 }
@@ -114,7 +114,7 @@ define dso_local i64 @f10() {
 ; CHECK: larl [[REG:%r[0-5]]], gsrc32u
 ; CHECK: lgf %r2, 0([[REG]])
 ; CHECK: br %r14
-  %val = load i32, i32 *@gsrc32u, align 2
+  %val = load i32, ptr at gsrc32u, align 2
   %ext = sext i32 %val to i64
   ret i64 %ext
 }
@@ -125,7 +125,7 @@ define dso_local i64 @f11() {
 ; CHECK: larl [[REG:%r[0-5]]], gsrc32u
 ; CHECK: llgf %r2, 0([[REG]])
 ; CHECK: br %r14
-  %val = load i32, i32 *@gsrc32u, align 2
+  %val = load i32, ptr at gsrc32u, align 2
   %ext = zext i32 %val to i64
   ret i64 %ext
 }
@@ -137,7 +137,7 @@ define dso_local void @f12(i64 %val) {
 ; CHECK: sth %r2, 0([[REG]])
 ; CHECK: br %r14
   %half = trunc i64 %val to i16
-  store i16 %half, i16 *@gdst16u, align 1
+  store i16 %half, ptr at gdst16u, align 1
   ret void
 }
 
@@ -148,7 +148,7 @@ define dso_local void @f13(i64 %val) {
 ; CHECK: st %r2, 0([[REG]])
 ; CHECK: br %r14
   %word = trunc i64 %val to i32
-  store i32 %word, i32 *@gdst32u, align 2
+  store i32 %word, ptr at gdst32u, align 2
   ret void
 }
 
@@ -160,7 +160,7 @@ define dso_local void @f14() {
 ; CHECK: larl [[REG:%r[0-5]]], gdst64u
 ; CHECK: stg [[VAL]], 0([[REG]])
 ; CHECK: br %r14
-  %val = load i64, i64 *@gsrc64u, align 4
-  store i64 %val, i64 *@gdst64u, align 4
+  %val = load i64, ptr at gsrc64u, align 4
+  store i64 %val, ptr at gdst64u, align 4
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-move-10.ll b/llvm/test/CodeGen/SystemZ/int-move-10.ll
index 190c3076d6cbc..4ae5d05a2e84a 100644
--- a/llvm/test/CodeGen/SystemZ/int-move-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-move-10.ll
@@ -37,7 +37,7 @@ define dso_local void @f1() {
 ; CHECK: larl %r1, A_align2
 ; CHECK: mvhi 2(%r1), 0
 ; CHECK: br %r14
-  store i32 0, i32* getelementptr inbounds (%packed.i16i32, %packed.i16i32* @A_align2, i64 0, i32 1), align 4
+  store i32 0, ptr getelementptr inbounds (%packed.i16i32, ptr @A_align2, i64 0, i32 1), align 4
   ret void
 }
 
@@ -47,7 +47,7 @@ define dso_local void @f2() {
 ; CHECK: larl %r1, B_align2
 ; CHECK: mvhi 8(%r1), 0
 ; CHECK: br %r14
-  store i32 0, i32* getelementptr inbounds (%packed.i16i32i16i32, %packed.i16i32i16i32* @B_align2, i64 0, i32 3), align 4
+  store i32 0, ptr getelementptr inbounds (%packed.i16i32i16i32, ptr @B_align2, i64 0, i32 3), align 4
   ret void
 }
 
@@ -57,7 +57,7 @@ define dso_local void @f3() {
 ; CHECK: larl %r1, D_align4
 ; CHECK: mvhi 2(%r1), 0
 ; CHECK: br %r14
-  store i32 0, i32* getelementptr inbounds (%packed.i16i32, %packed.i16i32* @D_align4, i64 0, i32 1), align 4
+  store i32 0, ptr getelementptr inbounds (%packed.i16i32, ptr @D_align4, i64 0, i32 1), align 4
   ret void
 }
 
@@ -67,7 +67,7 @@ define dso_local void @f4() {
 ; CHECK: lhi %r0, 0
 ; CHECK: strl %r0, E_align4+8
 ; CHECK: br %r14
-  store i32 0, i32* getelementptr inbounds (%packed.i16i32i16i32, %packed.i16i32i16i32* @E_align4, i64 0, i32 3), align 4
+  store i32 0, ptr getelementptr inbounds (%packed.i16i32i16i32, ptr @E_align4, i64 0, i32 3), align 4
   ret void
 }
 
@@ -76,35 +76,35 @@ define dso_local void @f5() {
 ; CHECK: larl %r1, C_align2
 ; CHECK: mvghi 2(%r1), 0
 ; CHECK: br %r14
-  store i64 0, i64* getelementptr inbounds (%packed.i16i64, %packed.i16i64* @C_align2, i64 0, i32 1), align 8
+  store i64 0, ptr getelementptr inbounds (%packed.i16i64, ptr @C_align2, i64 0, i32 1), align 8
   ret void
 }
 
 define dso_local void @f6() {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: sthrl
-  store i16 0, i16* getelementptr inbounds (%packed.i8i16, %packed.i8i16* @F_align2, i64 0, i32 1), align 2
+  store i16 0, ptr getelementptr inbounds (%packed.i8i16, ptr @F_align2, i64 0, i32 1), align 2
   ret void
 }
 
-define dso_local void @f7(i64* %Src) {
+define dso_local void @f7(ptr %Src) {
 ; CHECK-LABEL: f7:
 ; CHECK: lg %r0, 0(%r2)
 ; CHECK: larl %r1, D_align4
 ; CHECK: st %r0, 2(%r1)
 ; CHECK: br      %r14
-  %L = load i64, i64* %Src
+  %L = load i64, ptr %Src
   %T = trunc i64 %L to i32
-  store i32 %T, i32* getelementptr inbounds (%packed.i16i32, %packed.i16i32* @D_align4, i64 0, i32 1), align 4
+  store i32 %T, ptr getelementptr inbounds (%packed.i16i32, ptr @D_align4, i64 0, i32 1), align 4
   ret void
 }
 
-define dso_local void @f8(i64* %Src) {
+define dso_local void @f8(ptr %Src) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: sthrl
-  %L = load i64, i64* %Src
+  %L = load i64, ptr %Src
   %T = trunc i64 %L to i16
-  store i16 %T, i16* getelementptr inbounds (%packed.i8i16, %packed.i8i16* @F_align2, i64 0, i32 1), align 2
+  store i16 %T, ptr getelementptr inbounds (%packed.i8i16, ptr @F_align2, i64 0, i32 1), align 2
   ret void
 }
 
@@ -116,7 +116,7 @@ define dso_local i32 @f9() {
 ; CHECK: larl %r1, A_align2
 ; CHECK: l %r2, 2(%r1)
 ; CHECK: br %r14
-  %L = load i32, i32* getelementptr inbounds (%packed.i16i32, %packed.i16i32* @A_align2, i64 0, i32 1), align 4
+  %L = load i32, ptr getelementptr inbounds (%packed.i16i32, ptr @A_align2, i64 0, i32 1), align 4
   ret i32 %L
 }
 
@@ -126,7 +126,7 @@ define dso_local i32 @f10() {
 ; CHECK: larl %r1, B_align2
 ; CHECK: l %r2, 8(%r1)
 ; CHECK: br %r14
-  %L = load i32, i32* getelementptr inbounds (%packed.i16i32i16i32, %packed.i16i32i16i32* @B_align2, i64 0, i32 3), align 4
+  %L = load i32, ptr getelementptr inbounds (%packed.i16i32i16i32, ptr @B_align2, i64 0, i32 3), align 4
   ret i32 %L
 }
 
@@ -136,7 +136,7 @@ define dso_local i32 @f11() {
 ; CHECK: larl %r1, D_align4
 ; CHECK: l %r2, 2(%r1)
 ; CHECK: br %r14
-  %L = load i32, i32* getelementptr inbounds (%packed.i16i32, %packed.i16i32* @D_align4, i64 0, i32 1), align 4
+  %L = load i32, ptr getelementptr inbounds (%packed.i16i32, ptr @D_align4, i64 0, i32 1), align 4
   ret i32 %L
 }
 
@@ -145,7 +145,7 @@ define dso_local i32 @f12() {
 ; CHECK-LABEL: f12:
 ; CHECK: lrl %r2, E_align4+8
 ; CHECK: br %r14
-  %L = load i32, i32* getelementptr inbounds (%packed.i16i32i16i32, %packed.i16i32i16i32* @E_align4, i64 0, i32 3), align 4
+  %L = load i32, ptr getelementptr inbounds (%packed.i16i32i16i32, ptr @E_align4, i64 0, i32 3), align 4
   ret i32 %L
 }
 
@@ -154,14 +154,14 @@ define dso_local i64 @f13() {
 ; CHECK: larl %r1, C_align2
 ; CHECK: lg %r2, 2(%r1)
 ; CHECK: br %r14
-  %L = load i64, i64* getelementptr inbounds (%packed.i16i64, %packed.i16i64* @C_align2, i64 0, i32 1), align 8
+  %L = load i64, ptr getelementptr inbounds (%packed.i16i64, ptr @C_align2, i64 0, i32 1), align 8
   ret i64 %L
 }
 
 define dso_local i32 @f14() {
 ; CHECK-LABEL: f14:
 ; CHECK-NOT: lhrl
-  %L = load i16, i16* getelementptr inbounds (%packed.i8i16, %packed.i8i16* @F_align2, i64 0, i32 1), align 2
+  %L = load i16, ptr getelementptr inbounds (%packed.i8i16, ptr @F_align2, i64 0, i32 1), align 2
   %ext = sext i16 %L to i32
   ret i32 %ext
 }
@@ -169,7 +169,7 @@ define dso_local i32 @f14() {
 define dso_local i64 @f15() {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: llghrl
-  %L = load i16, i16* getelementptr inbounds (%packed.i8i16, %packed.i8i16* @F_align2, i64 0, i32 1), align 2
+  %L = load i16, ptr getelementptr inbounds (%packed.i8i16, ptr @F_align2, i64 0, i32 1), align 2
   %ext = zext i16 %L to i64
   ret i64 %ext
 }
@@ -181,7 +181,7 @@ define dso_local i32 @f16(i32 %src1) {
 ; CHECK: larl %r1, A_align2
 ; CHECK: c %r2, 2(%r1)
 entry:
-  %src2 = load i32, i32* getelementptr inbounds (%packed.i16i32, %packed.i16i32* @A_align2, i64 0, i32 1), align 4
+  %src2 = load i32, ptr getelementptr inbounds (%packed.i16i32, ptr @A_align2, i64 0, i32 1), align 4
   %cond = icmp slt i32 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:
@@ -197,7 +197,7 @@ define dso_local i64 @f17(i64 %src1) {
 ; CHECK: larl %r1, C_align2
 ; CHECK: clg %r2, 2(%r1)
 entry:
-  %src2 = load i64, i64* getelementptr inbounds (%packed.i16i64, %packed.i16i64* @C_align2, i64 0, i32 1), align 8
+  %src2 = load i64, ptr getelementptr inbounds (%packed.i16i64, ptr @C_align2, i64 0, i32 1), align 8
   %cond = icmp ult i64 %src1, %src2
   br i1 %cond, label %exit, label %mulb
 mulb:

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-01.ll b/llvm/test/CodeGen/SystemZ/int-mul-01.ll
index a01d891203326..c43d1d679b450 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-01.ll
@@ -4,47 +4,47 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the MH range.
-define i32 @f1(i32 %lhs, i16 *%src) {
+define i32 @f1(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: mh %r2, 0(%r3)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the aligned MH range.
-define i32 @f2(i32 %lhs, i16 *%src) {
+define i32 @f2(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: mh %r2, 4094(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the next halfword up, which should use MHY instead of MH.
-define i32 @f3(i32 %lhs, i16 *%src) {
+define i32 @f3(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: mhy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the aligned MHY range.
-define i32 @f4(i32 %lhs, i16 *%src) {
+define i32 @f4(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: mhy %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
@@ -52,37 +52,37 @@ define i32 @f4(i32 %lhs, i16 *%src) {
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f5(i32 %lhs, i16 *%src) {
+define i32 @f5(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r3, 524288
 ; CHECK: mh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the negative aligned MHY range.
-define i32 @f6(i32 %lhs, i16 *%src) {
+define i32 @f6(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: mhy %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the low end of the MHY range.
-define i32 @f7(i32 %lhs, i16 *%src) {
+define i32 @f7(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: mhy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
@@ -90,13 +90,13 @@ define i32 @f7(i32 %lhs, i16 *%src) {
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i32 %lhs, i16 *%src) {
+define i32 @f8(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -524290
 ; CHECK: mh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
@@ -109,8 +109,8 @@ define i32 @f9(i32 %lhs, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res
@@ -123,8 +123,8 @@ define i32 @f10(i32 %lhs, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = mul i32 %lhs, %rhs
   ret i32 %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-02.ll b/llvm/test/CodeGen/SystemZ/int-mul-02.ll
index 50fea3e939f2b..c5e58e94422df 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-02.ll
@@ -14,92 +14,92 @@ define i32 @f1(i32 %a, i32 %b) {
 }
 
 ; Check the low end of the MS range.
-define i32 @f2(i32 %a, i32 *%src) {
+define i32 @f2(i32 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: ms %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the high end of the aligned MS range.
-define i32 @f3(i32 %a, i32 *%src) {
+define i32 @f3(i32 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: ms %r2, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the next word up, which should use MSY instead of MS.
-define i32 @f4(i32 %a, i32 *%src) {
+define i32 @f4(i32 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: msy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the high end of the aligned MSY range.
-define i32 @f5(i32 %a, i32 *%src) {
+define i32 @f5(i32 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: msy %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 %a, i32 *%src) {
+define i32 @f6(i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: ms %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the high end of the negative aligned MSY range.
-define i32 @f7(i32 %a, i32 *%src) {
+define i32 @f7(i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: msy %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the low end of the MSY range.
-define i32 @f8(i32 %a, i32 *%src) {
+define i32 @f8(i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: msy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i32 %a, i32 *%src) {
+define i32 @f9(i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: ms %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
@@ -111,8 +111,8 @@ define i32 @f10(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
@@ -124,38 +124,38 @@ define i32 @f11(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %mul = mul i32 %a, %b
   ret i32 %mul
 }
 
 ; Check that multiplications of spilled values can use MS rather than MSR.
-define i32 @f12(i32 *%ptr0) {
+define i32 @f12(ptr %ptr0) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: ms %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-03.ll b/llvm/test/CodeGen/SystemZ/int-mul-03.ll
index 3d6f38fe3f9d4..f4b043f9b8ad5 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-03.ll
@@ -15,23 +15,23 @@ define i64 @f1(i64 %a, i32 %b) {
 }
 
 ; Check MSGF with no displacement.
-define i64 @f2(i64 %a, i32 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: msgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check the high end of the aligned MSGF range.
-define i64 @f3(i64 %a, i32 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: msgf %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
@@ -39,37 +39,37 @@ define i64 @f3(i64 %a, i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i32 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: msgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check the high end of the negative aligned MSGF range.
-define i64 @f5(i64 %a, i32 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: msgf %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check the low end of the MSGF range.
-define i64 @f6(i64 %a, i32 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: msgf %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
@@ -77,13 +77,13 @@ define i64 @f6(i64 %a, i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i32 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524292
 ; CHECK: msgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
@@ -96,39 +96,39 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check that multiplications of spilled values can use MSGF rather than MSGFR.
-define i64 @f9(i32 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: msgf %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -141,16 +141,16 @@ define i64 @f9(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-04.ll b/llvm/test/CodeGen/SystemZ/int-mul-04.ll
index 8255cb065f3e8..045e435d5891c 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-04.ll
@@ -14,70 +14,70 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; Check MSG with no displacement.
-define i64 @f2(i64 %a, i64 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: msg %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
 
 ; Check the high end of the aligned MSG range.
-define i64 @f3(i64 %a, i64 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: msg %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: msg %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
 
 ; Check the high end of the negative aligned MSG range.
-define i64 @f5(i64 %a, i64 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: msg %r2, -8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
 
 ; Check the low end of the MSG range.
-define i64 @f6(i64 %a, i64 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: msg %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i64 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: msg %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
@@ -89,38 +89,38 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %mul = mul i64 %a, %b
   ret i64 %mul
 }
 
 ; Check that multiplications of spilled values can use MSG rather than MSGR.
-define i64 @f9(i64 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: msg %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-05.ll b/llvm/test/CodeGen/SystemZ/int-mul-05.ll
index 93f140d84504f..0009350ecb764 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-05.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check multiplication by 2, which should use shifts.
-define i32 @f1(i32 %a, i32 *%dest) {
+define i32 @f1(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: sll %r2, 1
 ; CHECK: br %r14
@@ -12,7 +12,7 @@ define i32 @f1(i32 %a, i32 *%dest) {
 }
 
 ; Check multiplication by 3.
-define i32 @f2(i32 %a, i32 *%dest) {
+define i32 @f2(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: mhi %r2, 3
 ; CHECK: br %r14
@@ -21,7 +21,7 @@ define i32 @f2(i32 %a, i32 *%dest) {
 }
 
 ; Check the high end of the MHI range.
-define i32 @f3(i32 %a, i32 *%dest) {
+define i32 @f3(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: mhi %r2, 32767
 ; CHECK: br %r14
@@ -30,7 +30,7 @@ define i32 @f3(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value up, which should use shifts.
-define i32 @f4(i32 %a, i32 *%dest) {
+define i32 @f4(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: sll %r2, 15
 ; CHECK: br %r14
@@ -39,7 +39,7 @@ define i32 @f4(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value up again, which can use MSFI.
-define i32 @f5(i32 %a, i32 *%dest) {
+define i32 @f5(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: msfi %r2, 32769
 ; CHECK: br %r14
@@ -48,7 +48,7 @@ define i32 @f5(i32 %a, i32 *%dest) {
 }
 
 ; Check the high end of the MSFI range.
-define i32 @f6(i32 %a, i32 *%dest) {
+define i32 @f6(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: msfi %r2, 2147483647
 ; CHECK: br %r14
@@ -57,7 +57,7 @@ define i32 @f6(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value up, which should use shifts.
-define i32 @f7(i32 %a, i32 *%dest) {
+define i32 @f7(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK: sll %r2, 31
 ; CHECK: br %r14
@@ -66,7 +66,7 @@ define i32 @f7(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value up again, which is treated as a negative value.
-define i32 @f8(i32 %a, i32 *%dest) {
+define i32 @f8(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK: msfi %r2, -2147483647
 ; CHECK: br %r14
@@ -75,7 +75,7 @@ define i32 @f8(i32 %a, i32 *%dest) {
 }
 
 ; Check multiplication by -1, which is a negation.
-define i32 @f9(i32 %a, i32 *%dest) {
+define i32 @f9(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: lcr %r2, %r2
 ; CHECK: br %r14
@@ -84,7 +84,7 @@ define i32 @f9(i32 %a, i32 *%dest) {
 }
 
 ; Check multiplication by -2, which should use shifts.
-define i32 @f10(i32 %a, i32 *%dest) {
+define i32 @f10(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: sll %r2, 1
 ; CHECK: lcr %r2, %r2
@@ -94,7 +94,7 @@ define i32 @f10(i32 %a, i32 *%dest) {
 }
 
 ; Check multiplication by -3.
-define i32 @f11(i32 %a, i32 *%dest) {
+define i32 @f11(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f11:
 ; CHECK: mhi %r2, -3
 ; CHECK: br %r14
@@ -103,7 +103,7 @@ define i32 @f11(i32 %a, i32 *%dest) {
 }
 
 ; Check the lowest useful MHI value.
-define i32 @f12(i32 %a, i32 *%dest) {
+define i32 @f12(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK: mhi %r2, -32767
 ; CHECK: br %r14
@@ -112,7 +112,7 @@ define i32 @f12(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value down, which should use shifts.
-define i32 @f13(i32 %a, i32 *%dest) {
+define i32 @f13(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK: sll %r2, 15
 ; CHECK: lcr %r2, %r2
@@ -122,7 +122,7 @@ define i32 @f13(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value down again, which can use MSFI.
-define i32 @f14(i32 %a, i32 *%dest) {
+define i32 @f14(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f14:
 ; CHECK: msfi %r2, -32769
 ; CHECK: br %r14
@@ -131,7 +131,7 @@ define i32 @f14(i32 %a, i32 *%dest) {
 }
 
 ; Check the lowest useful MSFI value.
-define i32 @f15(i32 %a, i32 *%dest) {
+define i32 @f15(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: msfi %r2, -2147483647
 ; CHECK: br %r14
@@ -140,7 +140,7 @@ define i32 @f15(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value down, which should use shifts.
-define i32 @f16(i32 %a, i32 *%dest) {
+define i32 @f16(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: sll %r2, 31
 ; CHECK-NOT: lcr
@@ -150,7 +150,7 @@ define i32 @f16(i32 %a, i32 *%dest) {
 }
 
 ; Check the next value down again, which is treated as a positive value.
-define i32 @f17(i32 %a, i32 *%dest) {
+define i32 @f17(i32 %a, ptr %dest) {
 ; CHECK-LABEL: f17:
 ; CHECK: msfi %r2, 2147483647
 ; CHECK: br %r14

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-06.ll b/llvm/test/CodeGen/SystemZ/int-mul-06.ll
index ae9f9c6e4db55..b33b41fad5df9 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-06.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check multiplication by 2, which should use shifts.
-define i64 @f1(i64 %a, i64 *%dest) {
+define i64 @f1(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: sllg %r2, %r2, 1
 ; CHECK: br %r14
@@ -12,7 +12,7 @@ define i64 @f1(i64 %a, i64 *%dest) {
 }
 
 ; Check multiplication by 3.
-define i64 @f2(i64 %a, i64 *%dest) {
+define i64 @f2(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: mghi %r2, 3
 ; CHECK: br %r14
@@ -21,7 +21,7 @@ define i64 @f2(i64 %a, i64 *%dest) {
 }
 
 ; Check the high end of the MGHI range.
-define i64 @f3(i64 %a, i64 *%dest) {
+define i64 @f3(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: mghi %r2, 32767
 ; CHECK: br %r14
@@ -30,7 +30,7 @@ define i64 @f3(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value up, which should use shifts.
-define i64 @f4(i64 %a, i64 *%dest) {
+define i64 @f4(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: sllg %r2, %r2, 15
 ; CHECK: br %r14
@@ -39,7 +39,7 @@ define i64 @f4(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value up again, which can use MSGFI.
-define i64 @f5(i64 %a, i64 *%dest) {
+define i64 @f5(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: msgfi %r2, 32769
 ; CHECK: br %r14
@@ -48,7 +48,7 @@ define i64 @f5(i64 %a, i64 *%dest) {
 }
 
 ; Check the high end of the MSGFI range.
-define i64 @f6(i64 %a, i64 *%dest) {
+define i64 @f6(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: msgfi %r2, 2147483647
 ; CHECK: br %r14
@@ -57,7 +57,7 @@ define i64 @f6(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value up, which should use shifts.
-define i64 @f7(i64 %a, i64 *%dest) {
+define i64 @f7(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK: sllg %r2, %r2, 31
 ; CHECK: br %r14
@@ -66,7 +66,7 @@ define i64 @f7(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value up again, which cannot use a constant multiplicatoin.
-define i64 @f8(i64 %a, i64 *%dest) {
+define i64 @f8(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: msgfi
 ; CHECK: br %r14
@@ -75,7 +75,7 @@ define i64 @f8(i64 %a, i64 *%dest) {
 }
 
 ; Check multiplication by -1, which is a negation.
-define i64 @f9(i64 %a, i64 *%dest) {
+define i64 @f9(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: lcgr {{%r[0-5]}}, %r2
 ; CHECK: br %r14
@@ -84,7 +84,7 @@ define i64 @f9(i64 %a, i64 *%dest) {
 }
 
 ; Check multiplication by -2, which should use shifts.
-define i64 @f10(i64 %a, i64 *%dest) {
+define i64 @f10(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: sllg [[SHIFTED:%r[0-5]]], %r2, 1
 ; CHECK: lcgr %r2, [[SHIFTED]]
@@ -94,7 +94,7 @@ define i64 @f10(i64 %a, i64 *%dest) {
 }
 
 ; Check multiplication by -3.
-define i64 @f11(i64 %a, i64 *%dest) {
+define i64 @f11(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f11:
 ; CHECK: mghi %r2, -3
 ; CHECK: br %r14
@@ -103,7 +103,7 @@ define i64 @f11(i64 %a, i64 *%dest) {
 }
 
 ; Check the lowest useful MGHI value.
-define i64 @f12(i64 %a, i64 *%dest) {
+define i64 @f12(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK: mghi %r2, -32767
 ; CHECK: br %r14
@@ -112,7 +112,7 @@ define i64 @f12(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value down, which should use shifts.
-define i64 @f13(i64 %a, i64 *%dest) {
+define i64 @f13(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK: sllg [[SHIFTED:%r[0-5]]], %r2, 15
 ; CHECK: lcgr %r2, [[SHIFTED]]
@@ -122,7 +122,7 @@ define i64 @f13(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value down again, which can use MSGFI.
-define i64 @f14(i64 %a, i64 *%dest) {
+define i64 @f14(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f14:
 ; CHECK: msgfi %r2, -32769
 ; CHECK: br %r14
@@ -131,7 +131,7 @@ define i64 @f14(i64 %a, i64 *%dest) {
 }
 
 ; Check the lowest useful MSGFI value.
-define i64 @f15(i64 %a, i64 *%dest) {
+define i64 @f15(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: msgfi %r2, -2147483647
 ; CHECK: br %r14
@@ -140,7 +140,7 @@ define i64 @f15(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value down, which should use shifts.
-define i64 @f16(i64 %a, i64 *%dest) {
+define i64 @f16(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: sllg [[SHIFTED:%r[0-5]]], %r2, 31
 ; CHECK: lcgr %r2, [[SHIFTED]]
@@ -150,7 +150,7 @@ define i64 @f16(i64 %a, i64 *%dest) {
 }
 
 ; Check the next value down again, which cannot use constant multiplication
-define i64 @f17(i64 %a, i64 *%dest) {
+define i64 @f17(i64 %a, ptr %dest) {
 ; CHECK-LABEL: f17:
 ; CHECK-NOT: msgfi
 ; CHECK: br %r14

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-08.ll b/llvm/test/CodeGen/SystemZ/int-mul-08.ll
index cb61a0c7c4edc..ca100f24eb73b 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-08.ll
@@ -84,12 +84,12 @@ define i64 @f5(i64 %dummy, i64 %a) {
 }
 
 ; Check MLG with no displacement.
-define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f6(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: mlg %r2, 0(%r4)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -99,12 +99,12 @@ define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the high end of the aligned MLG range.
-define i64 @f7(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f7(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: mlg %r2, 524280(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -115,13 +115,13 @@ define i64 @f7(i64 %dummy, i64 %a, i64 *%src) {
 
 ; Check the next doubleword up, which requires separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f8(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f8(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: mlg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -131,12 +131,12 @@ define i64 @f8(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the high end of the negative aligned MLG range.
-define i64 @f9(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f9(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: mlg %r2, -8(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -146,12 +146,12 @@ define i64 @f9(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the low end of the MLG range.
-define i64 @f10(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f10(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: mlg %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -162,13 +162,13 @@ define i64 @f10(i64 %dummy, i64 %a, i64 *%src) {
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f11(i64 *%dest, i64 %a, i64 *%src) {
+define i64 @f11(ptr %dest, i64 %a, ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524296
 ; CHECK: mlg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -178,14 +178,14 @@ define i64 @f11(i64 *%dest, i64 %a, i64 *%src) {
 }
 
 ; Check that MLG allows an index.
-define i64 @f12(i64 *%dest, i64 %a, i64 %src, i64 %index) {
+define i64 @f12(ptr %dest, i64 %a, i64 %src, i64 %index) {
 ; CHECK-LABEL: f12:
 ; CHECK: mlg %r2, 524287(%r5,%r4)
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %ax = zext i64 %a to i128
   %bx = zext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -195,31 +195,31 @@ define i64 @f12(i64 *%dest, i64 %a, i64 %src, i64 %index) {
 }
 
 ; Check that multiplications of spilled values can use MLG rather than MLGR.
-define i64 @f13(i64 *%ptr0) {
+define i64 @f13(ptr %ptr0) {
 ; CHECK-LABEL: f13:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mlg {{%r[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-09.ll b/llvm/test/CodeGen/SystemZ/int-mul-09.ll
index 3e384e72db5da..37b719b0ba6c6 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-09.ll
@@ -5,23 +5,23 @@
 declare i64 @foo()
 
 ; Check MGH with no displacement.
-define i64 @f1(i64 %a, i16 *%src) {
+define i64 @f1(i64 %a, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: mgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i16, i16 *%src
+  %b = load i16, ptr %src
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check the high end of the aligned MGH range.
-define i64 @f2(i64 %a, i16 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: mgh %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
@@ -29,37 +29,37 @@ define i64 @f2(i64 %a, i16 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i64 %a, i16 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, 524288
 ; CHECK: mgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check the high end of the negative aligned MGH range.
-define i64 @f4(i64 %a, i16 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: mgh %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
 }
 
 ; Check the low end of the MGH range.
-define i64 @f5(i64 %a, i16 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: mgh %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
@@ -67,13 +67,13 @@ define i64 @f5(i64 %a, i16 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 %a, i16 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524290
 ; CHECK: mgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul
@@ -86,8 +86,8 @@ define i64 @f7(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i16 *
-  %b = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %mul = mul i64 %a, %bext
   ret i64 %mul

diff  --git a/llvm/test/CodeGen/SystemZ/int-mul-10.ll b/llvm/test/CodeGen/SystemZ/int-mul-10.ll
index f90335c82ec20..539a48622b8ba 100644
--- a/llvm/test/CodeGen/SystemZ/int-mul-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-mul-10.ll
@@ -53,12 +53,12 @@ define i64 @f3(i64 %dummy, i64 %a, i64 %b) {
 }
 
 ; Check MG with no displacement.
-define i64 @f4(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f4(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: {{%r[234]}}
 ; CHECK: mg %r2, 0(%r4)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -68,12 +68,12 @@ define i64 @f4(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the high end of the aligned MG range.
-define i64 @f5(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f5(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: mg %r2, 524280(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -84,13 +84,13 @@ define i64 @f5(i64 %dummy, i64 %a, i64 *%src) {
 
 ; Check the next doubleword up, which requires separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f6(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: mg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -100,12 +100,12 @@ define i64 @f6(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the high end of the negative aligned MG range.
-define i64 @f7(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f7(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: mg %r2, -8(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -115,12 +115,12 @@ define i64 @f7(i64 %dummy, i64 %a, i64 *%src) {
 }
 
 ; Check the low end of the MG range.
-define i64 @f8(i64 %dummy, i64 %a, i64 *%src) {
+define i64 @f8(i64 %dummy, i64 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: mg %r2, -524288(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -131,13 +131,13 @@ define i64 @f8(i64 %dummy, i64 %a, i64 *%src) {
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f9(i64 *%dest, i64 %a, i64 *%src) {
+define i64 @f9(ptr %dest, i64 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524296
 ; CHECK: mg %r2, 0(%r4)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx
@@ -147,14 +147,14 @@ define i64 @f9(i64 *%dest, i64 %a, i64 *%src) {
 }
 
 ; Check that MG allows an index.
-define i64 @f10(i64 *%dest, i64 %a, i64 %src, i64 %index) {
+define i64 @f10(ptr %dest, i64 %a, i64 %src, i64 %index) {
 ; CHECK-LABEL: f10:
 ; CHECK: mg %r2, 524287(%r5,%r4)
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %ax = sext i64 %a to i128
   %bx = sext i64 %b to i128
   %mulx = mul i128 %ax, %bx

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-01.ll b/llvm/test/CodeGen/SystemZ/int-sadd-01.ll
index 57023b0a6c82b..c040a50190ae9 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-01.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Check AR.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: ar %r3, %r4
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f2(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: ar %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -30,7 +30,7 @@ define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -42,7 +42,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f3(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: ar %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -51,7 +51,7 @@ define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; Check the low end of the A range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: a %r3, 0(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -71,16 +71,16 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned A range.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: a %r3, 4092(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -88,17 +88,17 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which should use AY instead of A.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: ay %r3, 4096(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -106,17 +106,17 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AY range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: ay %r3, 524284(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -124,18 +124,18 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: a %r3, 0(%r4)
@@ -144,17 +144,17 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned AY range.
-define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f9(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: ay %r3, -4(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -162,17 +162,17 @@ define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AY range.
-define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f10(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: ay %r3, -524288(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -180,18 +180,18 @@ define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f11(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524292
 ; CHECK: a %r3, 0(%r4)
@@ -200,17 +200,17 @@ define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that A allows an index.
-define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: a %r4, 4092({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -220,17 +220,17 @@ define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AY allows an index.
-define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f13:
 ; CHECK: ay %r4, 4096({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -240,41 +240,41 @@ define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that additions of spilled values can use A rather than AR.
-define zeroext i1 @f14(i32 *%ptr0) {
+define zeroext i1 @f14(ptr %ptr0) {
 ; CHECK-LABEL: f14:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: a %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-02.ll b/llvm/test/CodeGen/SystemZ/int-sadd-02.ll
index daa3b618412e3..be936174e404b 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-02.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check the low end of the AH range.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: ah %r3, 0(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -14,17 +14,17 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AH range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: ah %r3, 4094(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -32,18 +32,18 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword up, which should use AHY instead of AH.
-define zeroext i1 @f3(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: ahy %r3, 4096(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -51,18 +51,18 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AHY range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: ahy %r3, 524286(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -70,19 +70,19 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r4, 524288
 ; CHECK: ah %r3, 0(%r4)
@@ -91,18 +91,18 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned AHY range.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: ahy %r3, -2(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -110,18 +110,18 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AHY range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: ahy %r3, -524288(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -129,19 +129,19 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, -524290
 ; CHECK: ah %r3, 0(%r4)
@@ -150,18 +150,18 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AH allows an index.
-define zeroext i1 @f9(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f9(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: ah %r4, 4094({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -171,18 +171,18 @@ define zeroext i1 @f9(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AHY allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: ahy %r4, 4096({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -192,29 +192,29 @@ define zeroext i1 @f10(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f11(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define void @f11(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: ah %r3, 0(%r4)
 ; CHECK: st %r3, 0(%r5)
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -226,18 +226,18 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f12(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define void @f12(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: ah %r3, 0(%r4)
 ; CHECK: st %r3, 0(%r5)
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-03.ll b/llvm/test/CodeGen/SystemZ/int-sadd-03.ll
index 3feb70e3a0673..a9cb1850ddaae 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-03.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check AGR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: agr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: agr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -30,7 +30,7 @@ define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -42,7 +42,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: agr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -51,7 +51,7 @@ define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; Check AG with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: ag %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -71,16 +71,16 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AG range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: ag %r3, 524280(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -88,18 +88,18 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: ag %r3, 0(%r4)
@@ -108,17 +108,17 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned AG range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: ag %r3, -8(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -126,17 +126,17 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AG range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: ag %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -144,18 +144,18 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524296
 ; CHECK: ag %r3, 0(%r4)
@@ -164,17 +164,17 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AG allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: ag %r4, 524280({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -184,41 +184,41 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that additions of spilled values can use AG rather than AGR.
-define zeroext i1 @f11(i64 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: ag %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-04.ll b/llvm/test/CodeGen/SystemZ/int-sadd-04.ll
index 5e7a37e5c1c00..75dca2647aadd 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-04.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check AGFR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: agfr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: agfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -32,7 +32,7 @@ define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -44,7 +44,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -54,7 +54,7 @@ define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -66,7 +66,7 @@ exit:
 }
 
 ; Check AGF with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: agf %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -74,17 +74,17 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AGF range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: agf %r3, 524284(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -92,19 +92,19 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: agf %r3, 0(%r4)
@@ -113,18 +113,18 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned AGF range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: agf %r3, -4(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -132,18 +132,18 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AGF range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agf %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -151,19 +151,19 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524292
 ; CHECK: agf %r3, 0(%r4)
@@ -172,18 +172,18 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AGF allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: agf %r4, 524284({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -193,42 +193,42 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that additions of spilled values can use AGF rather than AGFR.
-define zeroext i1 @f11(i32 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: agf %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -241,16 +241,16 @@ define zeroext i1 @f11(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-05.ll b/llvm/test/CodeGen/SystemZ/int-sadd-05.ll
index ea2f4895da4ba..a9c77c5e81a97 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-05.ll
@@ -5,43 +5,43 @@
 declare i64 @foo()
 
 ; Check AGH with no displacement.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: agh %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AGH range.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: agh %r3, 524286(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r4, 524288
 ; CHECK: agh %r3, 0(%r4)
@@ -49,55 +49,55 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned AGH range.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agh %r3, -2(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AGH range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: agh %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, -524290
 ; CHECK: agh %r3, 0(%r4)
@@ -105,18 +105,18 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AGH allows an index.
-define zeroext i1 @f9(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f9(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agh %r4, 524284({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -125,29 +125,29 @@ define zeroext i1 @f9(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f11(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define void @f11(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: agh %r3, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -159,18 +159,18 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f12(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define void @f12(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: agh %r3, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-06.ll b/llvm/test/CodeGen/SystemZ/int-sadd-06.ll
index f389762f2b833..c060ad8a4ba72 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-06.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check additions of 1.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: ahi %r3, 1
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the AHI range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: ahi %r3, 32767
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -33,12 +33,12 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 32767)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use AFI instead.
-define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi %r3, 32768
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -49,12 +49,12 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the signed 32-bit range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi %r3, 2147483647
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -65,12 +65,12 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 2147483647)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which is treated as a negative value.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: afi %r3, -2147483648
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -81,12 +81,12 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 2147483648)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative AHI range.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: ahi %r3, -1
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -97,12 +97,12 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AHI range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: ahi %r3, -32768
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -113,12 +113,12 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use AFI instead.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: afi %r3, -32769
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -129,12 +129,12 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -32769)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the signed 32-bit range.
-define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f9(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: afi %r3, -2147483648
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -145,12 +145,12 @@ define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -2147483648)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which is treated as a positive value.
-define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f10(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: afi %r3, 2147483647
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -161,12 +161,12 @@ define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -2147483649)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f11(i32 %dummy, i32 %a, i32 *%res) {
+define void @f11(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: ahi %r3, 1
 ; CHECK: st %r3, 0(%r4)
@@ -175,7 +175,7 @@ define void @f11(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -187,7 +187,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f12(i32 %dummy, i32 %a, i32 *%res) {
+define void @f12(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: ahi %r3, 1
 ; CHECK: st %r3, 0(%r4)
@@ -196,7 +196,7 @@ define void @f12(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-07.ll b/llvm/test/CodeGen/SystemZ/int-sadd-07.ll
index 0adbe466f3ab5..18f14b11808f5 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-07.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check additions of 1.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r3, 1
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -17,13 +17,13 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 
 }
 
 ; Check the high end of the AGHI range.
-define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f2(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r3, 32767
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -34,12 +34,12 @@ define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 32767)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use AGFI instead.
-define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f3(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, 32768
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -50,12 +50,12 @@ define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the AGFI range.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 2147483647
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -66,12 +66,12 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 2147483647)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must be loaded into a register first.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: llilh [[REG1:%r[0-9]+]], 32768
 ; CHECK: agr [[REG1]], %r3
@@ -83,12 +83,12 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 2147483648)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative AGHI range.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: aghi %r3, -1
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -99,12 +99,12 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AGHI range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r3, -32768
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -115,12 +115,12 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use AGFI instead.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -32769
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -131,12 +131,12 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -32769)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AGFI range.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -2147483648
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -147,12 +147,12 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -2147483648)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which can use register subtraction instead.
-define zeroext i1 @f10(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: llilf [[REG1:%r[0-9]+]], 2147483649
 ; CHECK: sgr %r3, [[REG1]]
@@ -164,12 +164,12 @@ define zeroext i1 @f10(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -2147483649)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; We may be able to use LLILH instead of LLILF.
-define zeroext i1 @f11(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f11(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: llilh [[REG1:%r[0-9]+]], 32769
 ; CHECK: sgr %r3, [[REG1]]
@@ -181,12 +181,12 @@ define zeroext i1 @f11(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -2147549184)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check low end of the LLILF/SGR range.
-define zeroext i1 @f12(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f12(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: llilf [[REG1:%r[0-9]+]], 4294967295
 ; CHECK: sgr %r3, [[REG1]]
@@ -198,12 +198,12 @@ define zeroext i1 @f12(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -4294967295)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use register addition instead.
-define zeroext i1 @f13(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f13(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f13:
 ; CHECK: llihf [[REG1:%r[0-9]+]], 4294967295
 ; CHECK: agr [[REG1]], %r3
@@ -215,12 +215,12 @@ define zeroext i1 @f13(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -4294967296)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f14(i64 %dummy, i64 %a, i64 *%res) {
+define void @f14(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f14:
 ; CHECK: aghi %r3, 1
 ; CHECK: stg %r3, 0(%r4)
@@ -229,7 +229,7 @@ define void @f14(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -241,7 +241,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f15(i64 %dummy, i64 %a, i64 *%res) {
+define void @f15(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f15:
 ; CHECK: aghi %r3, 1
 ; CHECK: stg %r3, 0(%r4)
@@ -250,7 +250,7 @@ define void @f15(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-08.ll b/llvm/test/CodeGen/SystemZ/int-sadd-08.ll
index e9be58b31ce96..d614a178850cb 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-08.ll
@@ -5,39 +5,39 @@
 declare i32 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i32 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: asi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i32 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: asi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 127)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an addition and a store.
-define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f3(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: ahi [[VAL]], 128
@@ -46,32 +46,32 @@ define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i32 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: asi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f5(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: ahi [[VAL]], -129
@@ -80,34 +80,34 @@ define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 -129)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ASI range.
-define zeroext i1 @f6(i32 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: asi 524284(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i32 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: asi 0(%r2), 1
@@ -115,35 +115,35 @@ define zeroext i1 @f7(i32 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the ASI range.
-define zeroext i1 @f8(i32 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: asi -524288(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i32 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: asi 0(%r2), 1
@@ -151,12 +151,12 @@ define zeroext i1 @f9(i32 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -171,37 +171,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i32 *
-  %a = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that adding 127 to a spilled value can use ASI.
-define zeroext i1 @f11(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f11(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: asi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -292,48 +292,48 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check that adding -128 to a spilled value can use ASI.
-define zeroext i1 @f12(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f12(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: asi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -424,37 +424,37 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i32 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: asi 0(%r2), 1
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -466,16 +466,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i32 *%ptr) {
+define void @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: asi 0(%r2), 1
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.sadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-sadd-09.ll b/llvm/test/CodeGen/SystemZ/int-sadd-09.ll
index 1b26ddc277a61..42595bd882b5f 100644
--- a/llvm/test/CodeGen/SystemZ/int-sadd-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sadd-09.ll
@@ -5,39 +5,39 @@
 declare i64 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i64 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: agsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i64 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: agsi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 127)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an addition and a store.
-define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f3(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: aghi [[VAL]], 128
@@ -46,32 +46,32 @@ define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i64 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: agsi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f5(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: lg [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: aghi [[VAL]], -129
@@ -80,34 +80,34 @@ define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 -129)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AGSI range.
-define zeroext i1 @f6(i64 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: agsi 524280(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i64 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: agsi 0(%r2), 1
@@ -115,35 +115,35 @@ define zeroext i1 @f7(i64 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the AGSI range.
-define zeroext i1 @f8(i64 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: agsi -524288(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524296
 ; CHECK: agsi 0(%r2), 1
@@ -151,12 +151,12 @@ define zeroext i1 @f9(i64 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -171,37 +171,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i64 *
-  %a = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that adding 127 to a spilled value can use AGSI.
-define zeroext i1 @f11(i64 *%ptr, i64 %sel) {
+define zeroext i1 @f11(ptr %ptr, i64 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: agsi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i64 %sel, 0
   br i1 %test, label %add, label %store
@@ -292,48 +292,48 @@ store:
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check that adding -128 to a spilled value can use AGSI.
-define zeroext i1 @f12(i64 *%ptr, i64 %sel) {
+define zeroext i1 @f12(ptr %ptr, i64 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: agsi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i64 %sel, 0
   br i1 %test, label %add, label %store
@@ -424,37 +424,37 @@ store:
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i64 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: agsi 0(%r2), 1
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -466,16 +466,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i64 *%ptr) {
+define void @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: agsi 0(%r2), 1
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.sadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-01.ll b/llvm/test/CodeGen/SystemZ/int-ssub-01.ll
index 4ead06374f487..a4e225970f4e1 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-01.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Check SR.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: sr %r3, %r4
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f2(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: sr %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -30,7 +30,7 @@ define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -42,7 +42,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f3(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: sr %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -51,7 +51,7 @@ define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; Check the low end of the S range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: s %r3, 0(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -71,16 +71,16 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned S range.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: s %r3, 4092(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -88,17 +88,17 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which should use SY instead of S.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: sy %r3, 4096(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -106,17 +106,17 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SY range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: sy %r3, 524284(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -124,18 +124,18 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: s %r3, 0(%r4)
@@ -144,17 +144,17 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SY range.
-define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f9(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: sy %r3, -4(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -162,17 +162,17 @@ define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SY range.
-define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f10(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: sy %r3, -524288(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -180,18 +180,18 @@ define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f11(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524292
 ; CHECK: s %r3, 0(%r4)
@@ -200,17 +200,17 @@ define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that S allows an index.
-define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: s %r4, 4092({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -220,17 +220,17 @@ define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SY allows an index.
-define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f13:
 ; CHECK: sy %r4, 4096({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -240,41 +240,41 @@ define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that subtractions of spilled values can use S rather than SR.
-define zeroext i1 @f14(i32 *%ptr0) {
+define zeroext i1 @f14(ptr %ptr0) {
 ; CHECK-LABEL: f14:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: s %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-02.ll b/llvm/test/CodeGen/SystemZ/int-ssub-02.ll
index 3af414674e971..f3bc92c1d697f 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-02.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check the low end of the SH range.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: sh %r3, 0(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -14,17 +14,17 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SH range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: sh %r3, 4094(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -32,18 +32,18 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword up, which should use SHY instead of SH.
-define zeroext i1 @f3(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: shy %r3, 4096(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -51,18 +51,18 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SHY range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: shy %r3, 524286(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -70,19 +70,19 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r4, 524288
 ; CHECK: sh %r3, 0(%r4)
@@ -91,18 +91,18 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SHY range.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: shy %r3, -2(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -110,18 +110,18 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SHY range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: shy %r3, -524288(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -129,19 +129,19 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, -524290
 ; CHECK: sh %r3, 0(%r4)
@@ -150,18 +150,18 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SH allows an index.
-define zeroext i1 @f9(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f9(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: sh %r4, 4094({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -171,18 +171,18 @@ define zeroext i1 @f9(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4094
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SHY allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: shy %r4, 4096({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -192,29 +192,29 @@ define zeroext i1 @f10(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f11(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define void @f11(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: sh %r3, 0(%r4)
 ; CHECK: st %r3, 0(%r5)
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -226,18 +226,18 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f12(i32 %dummy, i32 %a, i16 *%src, i32 *%res) {
+define void @f12(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: sh %r3, 0(%r4)
 ; CHECK: st %r3, 0(%r5)
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i32
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-03.ll b/llvm/test/CodeGen/SystemZ/int-ssub-03.ll
index 71d7d7e400f73..4830269daca78 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-03.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check SGR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: sgr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: sgr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -30,7 +30,7 @@ define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -42,7 +42,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: sgr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -51,7 +51,7 @@ define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; Check SG with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: sg %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -71,16 +71,16 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SG range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: sg %r3, 524280(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -88,18 +88,18 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: sg %r3, 0(%r4)
@@ -108,17 +108,17 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SG range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: sg %r3, -8(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -126,17 +126,17 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SG range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: sg %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -144,18 +144,18 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524296
 ; CHECK: sg %r3, 0(%r4)
@@ -164,17 +164,17 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SG allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: sg %r4, 524280({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -184,41 +184,41 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that subtractions of spilled values can use SG rather than SGR.
-define zeroext i1 @f11(i64 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: sg %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-04.ll b/llvm/test/CodeGen/SystemZ/int-ssub-04.ll
index bc039680ee7f5..d50ebd6c512e9 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-04.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check SGFR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: sgfr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: sgfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -32,7 +32,7 @@ define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -44,7 +44,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: sgfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -54,7 +54,7 @@ define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -66,7 +66,7 @@ exit:
 }
 
 ; Check SGF with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: sgf %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -74,17 +74,17 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SGF range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: sgf %r3, 524284(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -92,19 +92,19 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: sgf %r3, 0(%r4)
@@ -113,18 +113,18 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SGF range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: sgf %r3, -4(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -132,18 +132,18 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SGF range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: sgf %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -151,19 +151,19 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524292
 ; CHECK: sgf %r3, 0(%r4)
@@ -172,18 +172,18 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SGF allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: sgf %r4, 524284({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -193,42 +193,42 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that subtractions of spilled values can use SGF rather than SGFR.
-define zeroext i1 @f11(i32 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: sgf %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -241,16 +241,16 @@ define zeroext i1 @f11(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-05.ll b/llvm/test/CodeGen/SystemZ/int-ssub-05.ll
index d33f034a93c37..9f2233819e7f9 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-05.ll
@@ -5,43 +5,43 @@
 declare i64 @foo()
 
 ; Check SGH with no displacement.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: sgh %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SGH range.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: sgh %r3, 524286(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r4, 524288
 ; CHECK: sgh %r3, 0(%r4)
@@ -49,55 +49,55 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SGH range.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: sgh %r3, -2(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SGH range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: sgh %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, -524290
 ; CHECK: sgh %r3, 0(%r4)
@@ -105,18 +105,18 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
 ; CHECK-DAG: lghi %r2, 0
 ; CHECK-DAG: locghio %r2, 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SGH allows an index.
-define zeroext i1 @f9(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f9(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: sgh %r4, 524284({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -125,29 +125,29 @@ define zeroext i1 @f9(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %half = load i16, ptr %ptr
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f11(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define void @f11(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: sgh %r3, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -159,18 +159,18 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f12(i64 %dummy, i64 %a, i16 *%src, i64 *%res) {
+define void @f12(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: sgh %r3, 0(%r4)
 ; CHECK: stg %r3, 0(%r5)
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %b = sext i16 %half to i64
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-06.ll b/llvm/test/CodeGen/SystemZ/int-ssub-06.ll
index 5783c2bc838ae..aea317c7b9492 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-06.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check subtractions of 1.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: ahi %r3, -1
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the AHI range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: ahi %r3, -32768
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -33,12 +33,12 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use AFI instead.
-define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: afi %r3, -32769
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -49,12 +49,12 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 32769)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the signed 32-bit range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: afi %r3, -2147483647
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -65,13 +65,13 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 2147483647)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which is treated as a negative value
 ; and must use a register.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: llilh [[REG1:%r[0-5]]], 32768
 ; CHECK: sr %r3, [[REG1]]
@@ -83,13 +83,13 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 2147483648)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which is treated as a negative value,
 ; and can use AFI again.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: afi %r3, 2147483647
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -100,12 +100,12 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 2147483649)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative AHI range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: ahi %r3, 1
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -116,12 +116,12 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the AHI range.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: ahi %r3, 32767
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -132,12 +132,12 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -32767)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use AFI instead.
-define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f9(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: afi %r3, 32768
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -148,12 +148,12 @@ define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the signed 32-bit range.
-define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f10(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: afi %r3, 2147483647
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -164,12 +164,12 @@ define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -2147483647)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use a register.
-define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f11(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: llilh [[REG1:%r[0-5]]], 32768
 ; CHECK: sr %r3, [[REG1]]
@@ -181,12 +181,12 @@ define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -2147483648)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which is treated as a positive value.
-define zeroext i1 @f12(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f12(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: afi %r3, -2147483647
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -197,12 +197,12 @@ define zeroext i1 @f12(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -2147483649)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i32 %dummy, i32 %a, i32 *%res) {
+define void @f13(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f13:
 ; CHECK: ahi %r3, -1
 ; CHECK: st %r3, 0(%r4)
@@ -211,7 +211,7 @@ define void @f13(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -223,7 +223,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i32 %dummy, i32 %a, i32 *%res) {
+define void @f14(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f14:
 ; CHECK: ahi %r3, -1
 ; CHECK: st %r3, 0(%r4)
@@ -232,7 +232,7 @@ define void @f14(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-07.ll b/llvm/test/CodeGen/SystemZ/int-ssub-07.ll
index 970c14e0391fa..8e9a5d39bfa6c 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-07.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check subtractions of 1.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: aghi %r3, -1
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -17,13 +17,13 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 
 }
 
 ; Check the high end of the SGHI range.
-define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f2(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: aghi %r3, -32768
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -34,12 +34,12 @@ define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use SGFI instead.
-define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f3(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, -32769
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -50,12 +50,12 @@ define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 32769)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the SGFI range.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, -2147483648
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -66,12 +66,12 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 2147483648)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must be loaded into a register first.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: llilf [[REG1:%r[0-9]+]], 2147483649
 ; CHECK: sgr %r3, [[REG1]]
@@ -83,12 +83,12 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 2147483649)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative SGHI range.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: aghi %r3, 1
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -99,12 +99,12 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SGHI range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r3, 32767
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -115,12 +115,12 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -32767)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use SGFI instead.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, 32768
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -131,12 +131,12 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SGFI range.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, 2147483647
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -147,12 +147,12 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -2147483647)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use register subtraction instead.
-define zeroext i1 @f10(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: llilh [[REG1:%r[0-9]+]], 32768
 ; CHECK: agr [[REG1]], %r3
@@ -164,12 +164,12 @@ define zeroext i1 @f10(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -2147483648)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f11(i64 %dummy, i64 %a, i64 *%res) {
+define void @f11(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: aghi %r3, -1
 ; CHECK: stg %r3, 0(%r4)
@@ -178,7 +178,7 @@ define void @f11(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -190,7 +190,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f12(i64 %dummy, i64 %a, i64 *%res) {
+define void @f12(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: aghi %r3, -1
 ; CHECK: stg %r3, 0(%r4)
@@ -199,7 +199,7 @@ define void @f12(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-08.ll b/llvm/test/CodeGen/SystemZ/int-ssub-08.ll
index 9ba91f03194c0..984df26b3da94 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-08.ll
@@ -5,39 +5,39 @@
 declare i32 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i32 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: asi 0(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i32 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: asi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an subtraction and a store.
-define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f3(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: ahi [[VAL]], -129
@@ -46,32 +46,32 @@ define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 129)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i32 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: asi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -127)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f5(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: ahi [[VAL]], 128
@@ -80,34 +80,34 @@ define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 -128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ASI range.
-define zeroext i1 @f6(i32 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: asi 524284(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i32 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: asi 0(%r2), -1
@@ -115,35 +115,35 @@ define zeroext i1 @f7(i32 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the ASI range.
-define zeroext i1 @f8(i32 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: asi -524288(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i32 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: asi 0(%r2), -1
@@ -151,12 +151,12 @@ define zeroext i1 @f9(i32 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -171,37 +171,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i32 *
-  %a = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that subtracting 128 from a spilled value can use ASI.
-define zeroext i1 @f11(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f11(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: asi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -292,48 +292,48 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check that subtracting -127 from a spilled value can use ASI.
-define zeroext i1 @f12(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f12(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: asi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -424,37 +424,37 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i32 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: asi 0(%r2), -1
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -466,16 +466,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i32 *%ptr) {
+define void @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: asi 0(%r2), -1
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.ssub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-ssub-09.ll b/llvm/test/CodeGen/SystemZ/int-ssub-09.ll
index f5a4ee2ee128a..567829f65d7ca 100644
--- a/llvm/test/CodeGen/SystemZ/int-ssub-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-ssub-09.ll
@@ -5,39 +5,39 @@
 declare i64 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i64 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: agsi 0(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i64 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: agsi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an subtraction and a store.
-define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f3(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: aghi [[VAL]], -129
@@ -46,32 +46,32 @@ define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 129)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i64 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: agsi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -127)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f5(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: lg [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: aghi [[VAL]], 128
@@ -80,34 +80,34 @@ define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: afi [[REG]], 1342177280
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 -128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AGSI range.
-define zeroext i1 @f6(i64 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: agsi 524280(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i64 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: agsi 0(%r2), -1
@@ -115,35 +115,35 @@ define zeroext i1 @f7(i64 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the AGSI range.
-define zeroext i1 @f8(i64 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: agsi -524288(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524296
 ; CHECK: agsi 0(%r2), -1
@@ -151,12 +151,12 @@ define zeroext i1 @f9(i64 *%base) {
 ; CHECK: afi [[REG]], 1342177280
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -171,37 +171,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i64 *
-  %a = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that subtracting 128 to a spilled value can use AGSI.
-define zeroext i1 @f11(i64 *%ptr, i64 %sel) {
+define zeroext i1 @f11(ptr %ptr, i64 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: agsi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i64 %sel, 0
   br i1 %test, label %add, label %store
@@ -292,48 +292,48 @@ store:
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check that subtracting -127 from a spilled value can use AGSI.
-define zeroext i1 @f12(i64 *%ptr, i64 %sel) {
+define zeroext i1 @f12(ptr %ptr, i64 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: agsi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i64 %sel, 0
   br i1 %test, label %add, label %store
@@ -424,37 +424,37 @@ store:
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i64 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: agsi 0(%r2), -1
 ; CHECK: jgo foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -466,16 +466,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i64 *%ptr) {
+define void @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: agsi 0(%r2), -1
 ; CHECK: jgno foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.ssub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-01.ll b/llvm/test/CodeGen/SystemZ/int-sub-01.ll
index e855019b3e784..f8e3c5e237d83 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-01.ll
@@ -15,92 +15,92 @@ define i32 @f1(i32 %a, i32 %b) {
 }
 
 ; Check the low end of the S range.
-define i32 @f2(i32 %a, i32 *%src) {
+define i32 @f2(i32 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: s %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the high end of the aligned S range.
-define i32 @f3(i32 %a, i32 *%src) {
+define i32 @f3(i32 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: s %r2, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the next word up, which should use SY instead of S.
-define i32 @f4(i32 %a, i32 *%src) {
+define i32 @f4(i32 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: sy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the high end of the aligned SY range.
-define i32 @f5(i32 %a, i32 *%src) {
+define i32 @f5(i32 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: sy %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 %a, i32 *%src) {
+define i32 @f6(i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: s %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the high end of the negative aligned SY range.
-define i32 @f7(i32 %a, i32 *%src) {
+define i32 @f7(i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: sy %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the low end of the SY range.
-define i32 @f8(i32 %a, i32 *%src) {
+define i32 @f8(i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: sy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i32 %a, i32 *%src) {
+define i32 @f9(i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: s %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
@@ -112,8 +112,8 @@ define i32 @f10(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
@@ -125,38 +125,38 @@ define i32 @f11(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %sub = sub i32 %a, %b
   ret i32 %sub
 }
 
 ; Check that subtractions of spilled values can use S rather than SR.
-define i32 @f12(i32 *%ptr0) {
+define i32 @f12(ptr %ptr0) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: s %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-02.ll b/llvm/test/CodeGen/SystemZ/int-sub-02.ll
index 37cd3ca5a32ec..83e8df69fea9d 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-02.ll
@@ -15,23 +15,23 @@ define i64 @f1(i64 %a, i32 %b) {
 }
 
 ; Check SGF with no displacement.
-define i64 @f2(i64 %a, i32 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: sgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the high end of the aligned SGF range.
-define i64 @f3(i64 %a, i32 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: sgf %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -39,37 +39,37 @@ define i64 @f3(i64 %a, i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i32 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: sgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the high end of the negative aligned SGF range.
-define i64 @f5(i64 %a, i32 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: sgf %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the low end of the SGF range.
-define i64 @f6(i64 %a, i32 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: sgf %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -77,13 +77,13 @@ define i64 @f6(i64 %a, i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i32 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524292
 ; CHECK: sgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -96,39 +96,39 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = sext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check that subtractions of spilled values can use SGF rather than SGFR.
-define i64 @f9(i32 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: sgf %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -141,16 +141,16 @@ define i64 @f9(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-03.ll b/llvm/test/CodeGen/SystemZ/int-sub-03.ll
index e74985984f20f..b3dadbbd85582 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-03.ll
@@ -15,23 +15,23 @@ define i64 @f1(i64 %a, i32 %b) {
 }
 
 ; Check SLGF with no displacement.
-define i64 @f2(i64 %a, i32 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: slgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the high end of the aligned SLGF range.
-define i64 @f3(i64 %a, i32 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: slgf %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -39,37 +39,37 @@ define i64 @f3(i64 %a, i32 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i32 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: slgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the high end of the negative aligned SLGF range.
-define i64 @f5(i64 %a, i32 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: slgf %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the low end of the SLGF range.
-define i64 @f6(i64 %a, i32 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: slgf %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -77,13 +77,13 @@ define i64 @f6(i64 %a, i32 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i32 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524292
 ; CHECK: slgf %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -96,39 +96,39 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check that subtractions of spilled values can use SLGF rather than SLGFR.
-define i64 @f9(i32 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: slgf %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -141,16 +141,16 @@ define i64 @f9(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-04.ll b/llvm/test/CodeGen/SystemZ/int-sub-04.ll
index 3d4f6d661d8ad..5215a32a8967d 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-04.ll
@@ -15,70 +15,70 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; Check SG with no displacement.
-define i64 @f2(i64 %a, i64 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: sg %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
 
 ; Check the high end of the aligned SG range.
-define i64 @f3(i64 %a, i64 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: sg %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: sg %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
 
 ; Check the high end of the negative aligned SG range.
-define i64 @f5(i64 %a, i64 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: sg %r2, -8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
 
 ; Check the low end of the SG range.
-define i64 @f6(i64 %a, i64 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: sg %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i64 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: sg %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
@@ -90,38 +90,38 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %sub = sub i64 %a, %b
   ret i64 %sub
 }
 
 ; Check that subtractions of spilled values can use SG rather than SGR.
-define i64 @f9(i64 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: sg %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-05.ll b/llvm/test/CodeGen/SystemZ/int-sub-05.ll
index f1710657ec720..1a2a2650c9e29 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-05.ll
@@ -3,21 +3,21 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z10 | FileCheck %s
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
-declare i128 *@foo()
+declare ptr at foo()
 
 ; Test register addition.
-define void @f1(i128 *%ptr, i64 %high, i64 %low) {
+define void @f1(ptr %ptr, i64 %high, i64 %low) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgr {{%r[0-5]}}, %r4
 ; CHECK: slbgr {{%r[0-5]}}, %r3
 ; CHECK: br %r14
-  %a = load i128, i128 *%ptr
+  %a = load i128, ptr %ptr
   %highx = zext i64 %high to i128
   %lowx = zext i64 %low to i128
   %bhigh = shl i128 %highx, 64
   %b = or i128 %bhigh, %lowx
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%ptr
+  store i128 %sub, ptr %ptr
   ret void
 }
 
@@ -27,12 +27,12 @@ define void @f2(i64 %addr) {
 ; CHECK: slg {{%r[0-5]}}, 8(%r2)
 ; CHECK: slbg {{%r[0-5]}}, 0(%r2)
 ; CHECK: br %r14
-  %bptr = inttoptr i64 %addr to i128 *
-  %aptr = getelementptr i128, i128 *%bptr, i64 -8
-  %a = load i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %aptr = getelementptr i128, ptr %bptr, i64 -8
+  %a = load i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
@@ -43,12 +43,12 @@ define void @f3(i64 %base) {
 ; CHECK: slbg {{%r[0-5]}}, 524272(%r2)
 ; CHECK: br %r14
   %addr = add i64 %base, 524272
-  %bptr = inttoptr i64 %addr to i128 *
-  %aptr = getelementptr i128, i128 *%bptr, i64 -8
-  %a = load i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %aptr = getelementptr i128, ptr %bptr, i64 -8
+  %a = load i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
@@ -60,12 +60,12 @@ define void @f4(i64 %base) {
 ; CHECK: slbg {{%r[0-5]}}, 524280(%r2)
 ; CHECK: br %r14
   %addr = add i64 %base, 524280
-  %bptr = inttoptr i64 %addr to i128 *
-  %aptr = getelementptr i128, i128 *%bptr, i64 -8
-  %a = load i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %aptr = getelementptr i128, ptr %bptr, i64 -8
+  %a = load i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
@@ -77,12 +77,12 @@ define void @f5(i64 %base) {
 ; CHECK: slbg {{%r[0-5]}}, 0({{%r[1-5]}})
 ; CHECK: br %r14
   %addr = add i64 %base, 524288
-  %bptr = inttoptr i64 %addr to i128 *
-  %aptr = getelementptr i128, i128 *%bptr, i64 -8
-  %a = load i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %aptr = getelementptr i128, ptr %bptr, i64 -8
+  %a = load i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
@@ -93,12 +93,12 @@ define void @f6(i64 %base) {
 ; CHECK: slbg {{%r[0-5]}}, -524288(%r2)
 ; CHECK: br %r14
   %addr = add i64 %base, -524288
-  %bptr = inttoptr i64 %addr to i128 *
-  %aptr = getelementptr i128, i128 *%bptr, i64 -8
-  %a = load i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %aptr = getelementptr i128, ptr %bptr, i64 -8
+  %a = load i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
@@ -109,46 +109,46 @@ define void @f7(i64 %base) {
 ; CHECK: slbg {{%r[0-5]}}, 0({{%r[1-5]}})
 ; CHECK: br %r14
   %addr = add i64 %base, -524296
-  %bptr = inttoptr i64 %addr to i128 *
-  %aptr = getelementptr i128, i128 *%bptr, i64 -8
-  %a = load i128, i128 *%aptr
-  %b = load i128, i128 *%bptr
+  %bptr = inttoptr i64 %addr to ptr
+  %aptr = getelementptr i128, ptr %bptr, i64 -8
+  %a = load i128, ptr %aptr
+  %b = load i128, ptr %bptr
   %sub = sub i128 %a, %b
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check that subtractions of spilled values can use SLG and SLBG rather than
 ; SLGR and SLBGR.
-define void @f8(i128 *%ptr0) {
+define void @f8(ptr %ptr0) {
 ; CHECK-LABEL: f8:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: slg {{%r[0-9]+}}, {{[0-9]+}}(%r15)
 ; CHECK: slbg {{%r[0-9]+}}, {{[0-9]+}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i128, i128 *%ptr0, i128 2
-  %ptr2 = getelementptr i128, i128 *%ptr0, i128 4
-  %ptr3 = getelementptr i128, i128 *%ptr0, i128 6
-  %ptr4 = getelementptr i128, i128 *%ptr0, i128 8
-  %ptr5 = getelementptr i128, i128 *%ptr0, i128 10
+  %ptr1 = getelementptr i128, ptr %ptr0, i128 2
+  %ptr2 = getelementptr i128, ptr %ptr0, i128 4
+  %ptr3 = getelementptr i128, ptr %ptr0, i128 6
+  %ptr4 = getelementptr i128, ptr %ptr0, i128 8
+  %ptr5 = getelementptr i128, ptr %ptr0, i128 10
 
-  %val0 = load i128, i128 *%ptr0
-  %val1 = load i128, i128 *%ptr1
-  %val2 = load i128, i128 *%ptr2
-  %val3 = load i128, i128 *%ptr3
-  %val4 = load i128, i128 *%ptr4
-  %val5 = load i128, i128 *%ptr5
+  %val0 = load i128, ptr %ptr0
+  %val1 = load i128, ptr %ptr1
+  %val2 = load i128, ptr %ptr2
+  %val3 = load i128, ptr %ptr3
+  %val4 = load i128, ptr %ptr4
+  %val5 = load i128, ptr %ptr5
 
-  %retptr = call i128 *@foo()
+  %retptr = call ptr at foo()
 
-  %ret = load i128, i128 *%retptr
+  %ret = load i128, ptr %retptr
   %sub0 = sub i128 %ret, %val0
   %sub1 = sub i128 %sub0, %val1
   %sub2 = sub i128 %sub1, %val2
   %sub3 = sub i128 %sub2, %val3
   %sub4 = sub i128 %sub3, %val4
   %sub5 = sub i128 %sub4, %val5
-  store i128 %sub5, i128 *%retptr
+  store i128 %sub5, ptr %retptr
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-06.ll b/llvm/test/CodeGen/SystemZ/int-sub-06.ll
index efc20f94c43ee..33894a022bf2d 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-06.ll
@@ -4,162 +4,162 @@
 
 ; Check register additions.  The XOR ensures that we don't instead zero-extend
 ; %b into a register and use memory addition.
-define void @f1(i128 *%aptr, i32 %b) {
+define void @f1(ptr %aptr, i32 %b) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgfr {{%r[0-5]}}, %r3
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Like f1, but using an "in-register" extension.
-define void @f2(i128 *%aptr, i64 %b) {
+define void @f2(ptr %aptr, i64 %b) {
 ; CHECK-LABEL: f2:
 ; CHECK: slgfr {{%r[0-5]}}, %r3
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %trunc = trunc i64 %b to i32
   %bext = zext i32 %trunc to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Test register addition in cases where the second operand is zero extended
 ; from i64 rather than i32, but is later masked to i32 range.
-define void @f3(i128 *%aptr, i64 %b) {
+define void @f3(ptr %aptr, i64 %b) {
 ; CHECK-LABEL: f3:
 ; CHECK: slgfr {{%r[0-5]}}, %r3
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %bext = zext i64 %b to i128
   %and = and i128 %bext, 4294967295
   %sub = sub i128 %xor, %and
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Test SLGF with no offset.
-define void @f4(i128 *%aptr, i32 *%bsrc) {
+define void @f4(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f4:
 ; CHECK: slgf {{%r[0-5]}}, 0(%r3)
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %b = load i32, i32 *%bsrc
+  %b = load i32, ptr %bsrc
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check the high end of the SLGF range.
-define void @f5(i128 *%aptr, i32 *%bsrc) {
+define void @f5(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f5:
 ; CHECK: slgf {{%r[0-5]}}, 524284(%r3)
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i64 131071
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f6(i128 *%aptr, i32 *%bsrc) {
+define void @f6(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: slgf {{%r[0-5]}}, 0(%r3)
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i64 131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check the high end of the negative aligned SLGF range.
-define void @f7(i128 *%aptr, i32 *%bsrc) {
+define void @f7(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f7:
 ; CHECK: slgf {{%r[0-5]}}, -4(%r3)
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i128 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i128 -1
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check the low end of the SLGF range.
-define void @f8(i128 *%aptr, i32 *%bsrc) {
+define void @f8(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f8:
 ; CHECK: slgf {{%r[0-5]}}, -524288(%r3)
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i128 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i128 -131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f9(i128 *%aptr, i32 *%bsrc) {
+define void @f9(ptr %aptr, ptr %bsrc) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: slgf {{%r[0-5]}}, 0(%r3)
 ; CHECK: slbgr
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
-  %ptr = getelementptr i32, i32 *%bsrc, i128 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %bsrc, i128 -131073
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }
 
 ; Check that SLGF allows an index.
-define void @f10(i128 *%aptr, i64 %src, i64 %index) {
+define void @f10(ptr %aptr, i64 %src, i64 %index) {
 ; CHECK-LABEL: f10:
 ; CHECK: slgf {{%r[0-5]}}, 524284({{%r4,%r3|%r3,%r4}})
 ; CHECK: br %r14
-  %a = load i128, i128 *%aptr
+  %a = load i128, ptr %aptr
   %xor = xor i128 %a, 127
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i128
   %sub = sub i128 %xor, %bext
-  store i128 %sub, i128 *%aptr
+  store i128 %sub, ptr %aptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-07.ll b/llvm/test/CodeGen/SystemZ/int-sub-07.ll
index 36c331bf0b096..71a3e5515dc12 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-07.ll
@@ -4,47 +4,47 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the low end of the SH range.
-define i32 @f1(i32 %lhs, i16 *%src) {
+define i32 @f1(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: sh %r2, 0(%r3)
 ; CHECK: br %r14
-  %half = load i16, i16 *%src
+  %half = load i16, ptr %src
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the aligned SH range.
-define i32 @f2(i32 %lhs, i16 *%src) {
+define i32 @f2(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: sh %r2, 4094(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2047
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2047
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the next halfword up, which should use SHY instead of SH.
-define i32 @f3(i32 %lhs, i16 *%src) {
+define i32 @f3(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: shy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 2048
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 2048
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the aligned SHY range.
-define i32 @f4(i32 %lhs, i16 *%src) {
+define i32 @f4(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: shy %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
@@ -52,37 +52,37 @@ define i32 @f4(i32 %lhs, i16 *%src) {
 
 ; Check the next halfword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f5(i32 %lhs, i16 *%src) {
+define i32 @f5(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: agfi %r3, 524288
 ; CHECK: sh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the high end of the negative aligned SHY range.
-define i32 @f6(i32 %lhs, i16 *%src) {
+define i32 @f6(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: shy %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
 }
 
 ; Check the low end of the SHY range.
-define i32 @f7(i32 %lhs, i16 *%src) {
+define i32 @f7(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: shy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
@@ -90,13 +90,13 @@ define i32 @f7(i32 %lhs, i16 *%src) {
 
 ; Check the next halfword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f8(i32 %lhs, i16 *%src) {
+define i32 @f8(i32 %lhs, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r3, -524290
 ; CHECK: sh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %half = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
@@ -109,8 +109,8 @@ define i32 @f9(i32 %lhs, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %sub1 = add i64 %src, %index
   %sub2 = add i64 %sub1, 4094
-  %ptr = inttoptr i64 %sub2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %sub2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res
@@ -123,8 +123,8 @@ define i32 @f10(i32 %lhs, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %sub1 = add i64 %src, %index
   %sub2 = add i64 %sub1, 4096
-  %ptr = inttoptr i64 %sub2 to i16 *
-  %half = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %sub2 to ptr
+  %half = load i16, ptr %ptr
   %rhs = sext i16 %half to i32
   %res = sub i32 %lhs, %rhs
   ret i32 %res

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-09.ll b/llvm/test/CodeGen/SystemZ/int-sub-09.ll
index 00a60d3819c95..1aac84c4d6db0 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-09.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z196 | FileCheck %s
 
 ; Test the case where both operands are in registers.
-define i64 @f1(i64 %a, i64 %b, i64 %c, i64 %d, i64 *%ptr) {
+define i64 @f1(i64 %a, i64 %b, i64 %c, i64 %d, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgrk %r2, %r4, %r5
 ; CHECK: slbgr
@@ -16,7 +16,7 @@ define i64 @f1(i64 %a, i64 %b, i64 %c, i64 %d, i64 *%ptr) {
   %sub = sub i128 %x, %y
   %subv = bitcast i128 %sub to <2 x i64>
   %high = extractelement <2 x i64> %subv, i32 0
-  store i64 %high, i64 *%ptr
+  store i64 %high, ptr %ptr
   %low = extractelement <2 x i64> %subv, i32 1
   ret i64 %low
 }

diff  --git a/llvm/test/CodeGen/SystemZ/int-sub-10.ll b/llvm/test/CodeGen/SystemZ/int-sub-10.ll
index bf6638575e553..2f4fb6d406e07 100644
--- a/llvm/test/CodeGen/SystemZ/int-sub-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-sub-10.ll
@@ -5,23 +5,23 @@
 declare i64 @foo()
 
 ; Check SGH with no displacement.
-define i64 @f1(i64 %a, i16 *%src) {
+define i64 @f1(i64 %a, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: sgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i16, i16 *%src
+  %b = load i16, ptr %src
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the high end of the aligned SGH range.
-define i64 @f2(i64 %a, i16 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: sgh %r2, 524286(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262143
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262143
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -29,37 +29,37 @@ define i64 @f2(i64 %a, i16 *%src) {
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i64 %a, i16 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r3, 524288
 ; CHECK: sgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 262144
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 262144
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the high end of the negative aligned SGH range.
-define i64 @f4(i64 %a, i16 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: sgh %r2, -2(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -1
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -1
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
 }
 
 ; Check the low end of the SGH range.
-define i64 @f5(i64 %a, i16 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: sgh %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262144
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262144
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -67,13 +67,13 @@ define i64 @f5(i64 %a, i16 *%src) {
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f6(i64 %a, i16 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, -524290
 ; CHECK: sgh %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%src, i64 -262145
-  %b = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %src, i64 -262145
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub
@@ -86,8 +86,8 @@ define i64 @f7(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i16 *
-  %b = load i16, i16 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i16, ptr %ptr
   %bext = sext i16 %b to i64
   %sub = sub i64 %a, %bext
   ret i64 %sub

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-01.ll b/llvm/test/CodeGen/SystemZ/int-uadd-01.ll
index 3871ba0cae40b..30dce9ee2a369 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-01.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Check ALR.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: alr %r3, %r4
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -15,12 +15,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f2(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: alr %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -29,7 +29,7 @@ define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -41,7 +41,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f3(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: alr %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -50,7 +50,7 @@ define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -62,75 +62,75 @@ exit:
 }
 
 ; Check the low end of the AL range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: al %r3, 0(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned AL range.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: al %r3, 4092(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which should use ALY instead of AL.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: aly %r3, 4096(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ALY range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: aly %r3, 524284(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: al %r3, 0(%r4)
@@ -138,52 +138,52 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned ALY range.
-define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f9(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: aly %r3, -4(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALY range.
-define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f10(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: aly %r3, -524288(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f11(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524292
 ; CHECK: al %r3, 0(%r4)
@@ -191,17 +191,17 @@ define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that AL allows an index.
-define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: al %r4, 4092({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -210,17 +210,17 @@ define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that ALY allows an index.
-define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f13:
 ; CHECK: aly %r4, 4096({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -229,41 +229,41 @@ define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that additions of spilled values can use AL rather than ALR.
-define zeroext i1 @f14(i32 *%ptr0) {
+define zeroext i1 @f14(ptr %ptr0) {
 ; CHECK-LABEL: f14:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: al %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-02.ll b/llvm/test/CodeGen/SystemZ/int-uadd-02.ll
index 52b3af76113b2..8875711254cd8 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-02.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check ALGR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: algr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -15,12 +15,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: algr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -29,7 +29,7 @@ define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -41,7 +41,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: algr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -50,7 +50,7 @@ define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -62,41 +62,41 @@ exit:
 }
 
 ; Check ALG with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: alg %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ALG range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: alg %r3, 524280(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: alg %r3, 0(%r4)
@@ -104,52 +104,52 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned ALG range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: alg %r3, -8(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALG range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: alg %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524296
 ; CHECK: alg %r3, 0(%r4)
@@ -157,17 +157,17 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that ALG allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: alg %r4, 524280({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -176,41 +176,41 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that additions of spilled values can use ALG rather than ALGR.
-define zeroext i1 @f11(i64 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: alg %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-03.ll b/llvm/test/CodeGen/SystemZ/int-uadd-03.ll
index b7b9883ecc92c..0adce1ad65e08 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-03.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check ALGFR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: algfr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: algfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -31,7 +31,7 @@ define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -43,7 +43,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: algfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -53,7 +53,7 @@ define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -65,43 +65,43 @@ exit:
 }
 
 ; Check ALGF with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: algf %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ALGF range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: algf %r3, 524284(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: algf %r3, 0(%r4)
@@ -109,55 +109,55 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned ALGF range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: algf %r3, -4(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALGF range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: algf %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524292
 ; CHECK: algf %r3, 0(%r4)
@@ -165,18 +165,18 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that ALGF allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: algf %r4, 524284({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -185,42 +185,42 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that additions of spilled values can use ALGF rather than ALGFR.
-define zeroext i1 @f11(i32 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: algf {{%r[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -233,16 +233,16 @@ define zeroext i1 @f11(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-04.ll b/llvm/test/CodeGen/SystemZ/int-uadd-04.ll
index ab686636368a8..5b0a58f72783c 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-04.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: alfi %r3, 1
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -15,12 +15,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the ALFI range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: alfi %r3, 4294967295
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -30,12 +30,12 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 4294967295)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that negative values are treated as unsigned
-define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: alfi %r3, 4294967295
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -45,12 +45,12 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 -1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f4(i32 %dummy, i32 %a, i32 *%res) {
+define void @f4(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: alfi %r3, 1
 ; CHECK: st %r3, 0(%r4)
@@ -59,7 +59,7 @@ define void @f4(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -71,7 +71,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f5(i32 %dummy, i32 %a, i32 *%res) {
+define void @f5(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: alfi %r3, 1
 ; CHECK: st %r3, 0(%r4)
@@ -80,7 +80,7 @@ define void @f5(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-05.ll b/llvm/test/CodeGen/SystemZ/int-uadd-05.ll
index 15a5488d19fc2..72f9fa446c263 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-05.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: algfi %r3, 1
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -15,12 +15,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the ALGFI range.
-define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f2(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: algfi %r3, 4294967295
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -30,12 +30,12 @@ define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 4294967295)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must be loaded into a register first.
-define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f3(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: llihl [[REG1:%r[0-9]+]], 1
 ; CHECK: algr [[REG1]], %r3
@@ -46,12 +46,12 @@ define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 4294967296)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Likewise for negative values.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: lghi [[REG1:%r[0-9]+]], -1
 ; CHECK: algr [[REG1]], %r3
@@ -62,12 +62,12 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 -1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f5(i64 %dummy, i64 %a, i64 *%res) {
+define void @f5(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: algfi %r3, 1
 ; CHECK: stg %r3, 0(%r4)
@@ -76,7 +76,7 @@ define void @f5(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -88,7 +88,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f6(i64 %dummy, i64 %a, i64 *%res) {
+define void @f6(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: algfi %r3, 1
 ; CHECK: stg %r3, 0(%r4)
@@ -97,7 +97,7 @@ define void @f6(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-06.ll b/llvm/test/CodeGen/SystemZ/int-uadd-06.ll
index 2c1864de3a5de..4fc3c0f52aa2c 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-06.ll
@@ -5,7 +5,7 @@
 declare i32 @foo(i32, i32, i32)
 
 ; Check ALRK.
-define i32 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%flag) {
+define i32 @f1(i32 %dummy, i32 %a, i32 %b, ptr %flag) {
 ; CHECK-LABEL: f1:
 ; CHECK: alrk %r2, %r3, %r4
 ; CHECK: ipm [[REG1:%r[0-5]]]
@@ -16,7 +16,7 @@ define i32 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%flag) {
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
   %ext = zext i1 %obit to i32
-  store i32 %ext, i32 *%flag
+  store i32 %ext, ptr %flag
   ret i32 %val
 }
 
@@ -61,7 +61,7 @@ exit:
 }
 
 ; Check that we can still use ALR in obvious cases.
-define i32 @f4(i32 %a, i32 %b, i32 *%flag) {
+define i32 @f4(i32 %a, i32 %b, ptr %flag) {
 ; CHECK-LABEL: f4:
 ; CHECK: alr %r2, %r3
 ; CHECK: ipm [[REG1:%r[0-5]]]
@@ -72,7 +72,7 @@ define i32 @f4(i32 %a, i32 %b, i32 *%flag) {
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
   %ext = zext i1 %obit to i32
-  store i32 %ext, i32 *%flag
+  store i32 %ext, ptr %flag
   ret i32 %val
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-07.ll b/llvm/test/CodeGen/SystemZ/int-uadd-07.ll
index 85c81c634dbef..873f757de8cef 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-07.ll
@@ -5,7 +5,7 @@
 declare i64 @foo(i64, i64, i64)
 
 ; Check ALGRK.
-define i64 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%flag) {
+define i64 @f1(i64 %dummy, i64 %a, i64 %b, ptr %flag) {
 ; CHECK-LABEL: f1:
 ; CHECK: algrk %r2, %r3, %r4
 ; CHECK: ipm [[REG1:%r[0-5]]]
@@ -16,7 +16,7 @@ define i64 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%flag) {
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
   %ext = zext i1 %obit to i64
-  store i64 %ext, i64 *%flag
+  store i64 %ext, ptr %flag
   ret i64 %val
 }
 
@@ -61,7 +61,7 @@ exit:
 }
 
 ; Check that we can still use ALGR in obvious cases.
-define i64 @f4(i64 %a, i64 %b, i64 *%flag) {
+define i64 @f4(i64 %a, i64 %b, ptr %flag) {
 ; CHECK-LABEL: f4:
 ; CHECK: algr %r2, %r3
 ; CHECK: ipm [[REG1:%r[0-5]]]
@@ -72,7 +72,7 @@ define i64 @f4(i64 %a, i64 %b, i64 *%flag) {
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
   %ext = zext i1 %obit to i64
-  store i64 %ext, i64 *%flag
+  store i64 %ext, ptr %flag
   ret i64 %val
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-08.ll b/llvm/test/CodeGen/SystemZ/int-uadd-08.ll
index f168382a02e93..2aab1d6c8f2a0 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-08.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the ALHSIK range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, 32767
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -31,12 +31,12 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 32767)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use ALFI instead.
-define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: alfi %r3, 32768
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -46,12 +46,12 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative ALHSIK range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -61,12 +61,12 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 -1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALHSIK range.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, -32768
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -76,12 +76,12 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 -32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use ALFI instead.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: alfi %r3, 4294934527
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -91,12 +91,12 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 -32769)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f7(i32 %dummy, i32 %a, i32 *%res) {
+define void @f7(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -105,7 +105,7 @@ define void @f7(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -117,7 +117,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f8(i32 %dummy, i32 %a, i32 *%res) {
+define void @f8(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -126,7 +126,7 @@ define void @f8(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-09.ll b/llvm/test/CodeGen/SystemZ/int-uadd-09.ll
index 050c5c282f992..4036f7ee65513 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-09.ll
@@ -6,7 +6,7 @@
 declare i64 @foo()
 
 ; Check additions of 1.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the ALGHSIK range.
-define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f2(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, 32767
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -31,12 +31,12 @@ define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 32767)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use ALGFI instead.
-define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f3(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: algfi %r3, 32768
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -46,12 +46,12 @@ define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative ALGHSIK range.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -61,12 +61,12 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 -1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALGHSIK range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, -32768
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -76,12 +76,12 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 -32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Test the next value down, which cannot use either ALGHSIK or ALGFI.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: alghsik
 ; CHECK-NOT: algfi
@@ -89,12 +89,12 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 -32769)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f7(i64 %dummy, i64 %a, i64 *%res) {
+define void @f7(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -103,7 +103,7 @@ define void @f7(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -115,7 +115,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f8(i64 %dummy, i64 %a, i64 *%res) {
+define void @f8(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -124,7 +124,7 @@ define void @f8(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-10.ll b/llvm/test/CodeGen/SystemZ/int-uadd-10.ll
index ba328ea540d80..909df997c760f 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-10.ll
@@ -5,37 +5,37 @@
 declare i32 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i32 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: alsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i32 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: alsi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 127)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an addition and a store.
-define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f3(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: alfi [[VAL]], 128
@@ -43,31 +43,31 @@ define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i32 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: alsi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 -128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f5(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: alfi [[VAL]], 4294967167
@@ -75,79 +75,79 @@ define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 -129)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ALSI range.
-define zeroext i1 @f6(i32 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: alsi 524284(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i32 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: alsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the ALSI range.
-define zeroext i1 @f8(i32 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: alsi -524288(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i32 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: alsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -161,37 +161,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i32 *
-  %a = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that adding 127 to a spilled value can use ALSI.
-define zeroext i1 @f11(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f11(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: alsi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -282,48 +282,48 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check that adding -128 to a spilled value can use ALSI.
-define zeroext i1 @f12(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f12(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: alsi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -414,37 +414,37 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i32 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: alsi 0(%r2), 1
 ; CHECK: jgnle foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -456,16 +456,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i32 *%ptr) {
+define void @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: alsi 0(%r2), 1
 ; CHECK: jgle foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.uadd.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-11.ll b/llvm/test/CodeGen/SystemZ/int-uadd-11.ll
index 5fb5b78852ad3..a8322816485e2 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-11.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-11.ll
@@ -5,37 +5,37 @@
 declare i64 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i64 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: algsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i64 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: algsi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 127)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an addition and a store.
-define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f3(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: algfi [[VAL]], 128
@@ -43,31 +43,31 @@ define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i64 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: algsi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 -128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f5(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: lg [[VAL1:%r[0-5]]], 0(%r3)
 ; CHECK: lghi [[VAL2:%r[0-9]+]], -129
@@ -76,79 +76,79 @@ define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: ipm [[REG:%r[0-5]]]
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 -129)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ALGSI range.
-define zeroext i1 @f6(i64 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: algsi 524280(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i64 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: algsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the ALGSI range.
-define zeroext i1 @f8(i64 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: algsi -524288(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524296
 ; CHECK: algsi 0(%r2), 1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: risbg %r2, [[REG]], 63, 191, 35
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -162,37 +162,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 8
-  %ptr = inttoptr i64 %add2 to i64 *
-  %a = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that adding 127 to a spilled value can use ALGSI.
-define zeroext i1 @f11(i64 *%ptr, i64 %sel) {
+define zeroext i1 @f11(ptr %ptr, i64 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: algsi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i64 %sel, 0
   br i1 %test, label %add, label %store
@@ -283,37 +283,37 @@ store:
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f12(i64 *%ptr) {
+define void @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: algsi 0(%r2), 1
 ; CHECK: jgnle foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -325,16 +325,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f13(i64 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: algsi 0(%r2), 1
 ; CHECK: jgle foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.uadd.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-uadd-12.ll b/llvm/test/CodeGen/SystemZ/int-uadd-12.ll
index 63b37906caf57..0822e22a55785 100644
--- a/llvm/test/CodeGen/SystemZ/int-uadd-12.ll
+++ b/llvm/test/CodeGen/SystemZ/int-uadd-12.ll
@@ -15,20 +15,20 @@ bb:
   br label %bb1
 
 bb1:                                              ; preds = %bb1, %bb
-  store i32 2, i32* getelementptr inbounds (<{ i8, i64, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [2 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8 }, i32 }>, <{ i8, i64, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [2 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8 }, i32 }>* @g_1484, i64 0, i32 2, i32 16)
+  store i32 2, ptr getelementptr inbounds (<{ i8, i64, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [2 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8 }, i32 }>, ptr @g_1484, i64 0, i32 2, i32 16)
   %tmp = icmp slt i32 undef, 3
   br i1 %tmp, label %bb1, label %bb2
 
 bb2:                                              ; preds = %bb1
-  %tmp3 = load i32, i32* getelementptr inbounds (<{ i8, i64, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [2 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8 }, i32 }>, <{ i8, i64, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [2 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8 }, i32 }>* @g_1484, i64 0, i32 2, i32 28)
-  %tmp4 = load i64, i64* @g_672
+  %tmp3 = load i32, ptr getelementptr inbounds (<{ i8, i64, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, [2 x i8], i8, i8, i8, i8, i8, i8, i8, i8, i32, i8, i8, i8 }, i32 }>, ptr @g_1484, i64 0, i32 2, i32 28)
+  %tmp4 = load i64, ptr @g_672
   %tmp5 = add i64 %tmp4, 1
-  store i64 %tmp5, i64* @g_672
+  store i64 %tmp5, ptr @g_672
   %tmp6 = icmp eq i64 %tmp5, 0
   %tmp7 = zext i1 %tmp6 to i32
   %tmp8 = icmp ult i32 %tmp3, %tmp7
   %tmp9 = zext i1 %tmp8 to i32
-  store i32 %tmp9, i32* @g_295
+  store i32 %tmp9, ptr @g_295
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-01.ll b/llvm/test/CodeGen/SystemZ/int-usub-01.ll
index ba9de4adc940a..6538b254fc7fd 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-01.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-01.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Check SLR.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: slr %r3, %r4
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f2(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: slr %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -30,7 +30,7 @@ define void @f2(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -42,7 +42,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
+define void @f3(i32 %dummy, i32 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: slr %r3, %r4
 ; CHECK: st %r3, 0(%r5)
@@ -51,7 +51,7 @@ define void @f3(i32 %dummy, i32 %a, i32 %b, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; Check the low end of the SL range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: sl %r3, 0(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -71,16 +71,16 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SL range.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: sl %r3, 4092(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -88,17 +88,17 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which should use SLY instead of SL.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: sly %r3, 4096(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -106,17 +106,17 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SLY range.
-define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f7(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: sly %r3, 524284(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -124,18 +124,18 @@ define zeroext i1 @f7(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f8(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r4, 524288
 ; CHECK: sl %r3, 0(%r4)
@@ -144,17 +144,17 @@ define zeroext i1 @f8(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SLY range.
-define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f9(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: sly %r3, -4(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -162,17 +162,17 @@ define zeroext i1 @f9(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SLY range.
-define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f10(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: sly %r3, -524288(%r4)
 ; CHECK-DAG: st %r3, 0(%r5)
@@ -180,18 +180,18 @@ define zeroext i1 @f10(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
+define zeroext i1 @f11(i32 %dummy, i32 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r4, -524292
 ; CHECK: sl %r3, 0(%r4)
@@ -200,17 +200,17 @@ define zeroext i1 @f11(i32 %dummy, i32 %a, i32 *%src, i32 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SL allows an index.
-define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: sl %r4, 4092({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -220,17 +220,17 @@ define zeroext i1 @f12(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SLY allows an index.
-define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
+define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, ptr %res) {
 ; CHECK-LABEL: f13:
 ; CHECK: sly %r4, 4096({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: st %r4, 0(%r5)
@@ -240,41 +240,41 @@ define zeroext i1 @f13(i64 %src, i64 %index, i32 %a, i32 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 %b)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that subtractions of spilled values can use SL rather than SLR.
-define zeroext i1 @f14(i32 *%ptr0) {
+define zeroext i1 @f14(ptr %ptr0) {
 ; CHECK-LABEL: f14:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: sl %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-02.ll b/llvm/test/CodeGen/SystemZ/int-usub-02.ll
index de46d655a8c80..44c0e0ca5062f 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-02.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-02.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check SLGR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: slgr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -30,7 +30,7 @@ define void @f2(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -42,7 +42,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i64 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: slgr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -51,7 +51,7 @@ define void @f3(i64 %dummy, i64 %a, i64 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -63,7 +63,7 @@ exit:
 }
 
 ; Check SLG with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: slg %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -71,16 +71,16 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SLG range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: slg %r3, 524280(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -88,18 +88,18 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: slg %r3, 0(%r4)
@@ -108,17 +108,17 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SLG range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: slg %r3, -8(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -126,17 +126,17 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SLG range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: slg %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -144,18 +144,18 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524296
 ; CHECK: slg %r3, 0(%r4)
@@ -164,17 +164,17 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i64 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SLG allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: slg %r4, 524280({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -184,41 +184,41 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %b)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that subtractions of spilled values can use SLG rather than SLGR.
-define zeroext i1 @f11(i64 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: slg %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-03.ll b/llvm/test/CodeGen/SystemZ/int-usub-03.ll
index 5e0a947772c5d..30672cbc72f9f 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-03.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-03.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check SLGFR.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgfr %r3, %r4
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f2(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: slgfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -32,7 +32,7 @@ define void @f2(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -44,7 +44,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
+define void @f3(i64 %dummy, i64 %a, i32 %b, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: slgfr %r3, %r4
 ; CHECK: stg %r3, 0(%r5)
@@ -54,7 +54,7 @@ define void @f3(i64 %dummy, i64 %a, i32 %b, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:
@@ -66,7 +66,7 @@ exit:
 }
 
 ; Check SLGF with no displacement.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: slgf %r3, 0(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -74,17 +74,17 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the aligned SLGF range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: slgf %r3, 524284(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -92,19 +92,19 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r4, 524288
 ; CHECK: slgf %r3, 0(%r4)
@@ -113,18 +113,18 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative aligned SLGF range.
-define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f7(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: slgf %r3, -4(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -132,18 +132,18 @@ define zeroext i1 @f7(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the SLGF range.
-define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f8(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: slgf %r3, -524288(%r4)
 ; CHECK-DAG: stg %r3, 0(%r5)
@@ -151,19 +151,19 @@ define zeroext i1 @f8(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
+define zeroext i1 @f9(i64 %dummy, i64 %a, ptr %src, ptr %res) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r4, -524292
 ; CHECK: slgf %r3, 0(%r4)
@@ -172,18 +172,18 @@ define zeroext i1 @f9(i64 %dummy, i64 %a, i32 *%src, i64 *%res) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that SLGF allows an index.
-define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
+define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: slgf %r4, 524284({{%r3,%r2|%r2,%r3}})
 ; CHECK-DAG: stg %r4, 0(%r5)
@@ -193,42 +193,42 @@ define zeroext i1 @f10(i64 %src, i64 %index, i64 %a, i64 *%res) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524284
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %bext = zext i32 %b to i64
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 %bext)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that subtractions of spilled values can use SLGF rather than SLGFR.
-define zeroext i1 @f11(i32 *%ptr0) {
+define zeroext i1 @f11(ptr %ptr0) {
 ; CHECK-LABEL: f11:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: slgf {{%r[0-9]+}}, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
 
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %frob0 = add i32 %val0, 100
   %frob1 = add i32 %val1, 100
@@ -241,16 +241,16 @@ define zeroext i1 @f11(i32 *%ptr0) {
   %frob8 = add i32 %val8, 100
   %frob9 = add i32 %val9, 100
 
-  store i32 %frob0, i32 *%ptr0
-  store i32 %frob1, i32 *%ptr1
-  store i32 %frob2, i32 *%ptr2
-  store i32 %frob3, i32 *%ptr3
-  store i32 %frob4, i32 *%ptr4
-  store i32 %frob5, i32 *%ptr5
-  store i32 %frob6, i32 *%ptr6
-  store i32 %frob7, i32 *%ptr7
-  store i32 %frob8, i32 *%ptr8
-  store i32 %frob9, i32 *%ptr9
+  store i32 %frob0, ptr %ptr0
+  store i32 %frob1, ptr %ptr1
+  store i32 %frob2, ptr %ptr2
+  store i32 %frob3, ptr %ptr3
+  store i32 %frob4, ptr %ptr4
+  store i32 %frob5, ptr %ptr5
+  store i32 %frob6, ptr %ptr6
+  store i32 %frob7, ptr %ptr7
+  store i32 %frob8, ptr %ptr8
+  store i32 %frob9, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-04.ll b/llvm/test/CodeGen/SystemZ/int-usub-04.ll
index d704f62f5017e..79728ec2302e5 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-04.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-04.ll
@@ -5,7 +5,7 @@
 declare i32 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: slfi %r3, 1
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the SLFI range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: slfi %r3, 4294967295
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -32,12 +32,12 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 4294967295)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check that negative values are treated as unsigned
-define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: slfi %r3, 4294967295
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -48,12 +48,12 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 -1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f4(i32 %dummy, i32 %a, i32 *%res) {
+define void @f4(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: slfi %r3, 1
 ; CHECK: st %r3, 0(%r4)
@@ -62,7 +62,7 @@ define void @f4(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -74,7 +74,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f5(i32 %dummy, i32 %a, i32 *%res) {
+define void @f5(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: slfi %r3, 1
 ; CHECK: st %r3, 0(%r4)
@@ -83,7 +83,7 @@ define void @f5(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-05.ll b/llvm/test/CodeGen/SystemZ/int-usub-05.ll
index ffa1e90c843fd..8bb5ae6af3d3e 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-05.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-05.ll
@@ -5,7 +5,7 @@
 declare i64 @foo()
 
 ; Check addition of 1.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgfi %r3, 1
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -16,12 +16,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the SLGFI range.
-define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f2(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: slgfi %r3, 4294967295
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -32,12 +32,12 @@ define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 4294967295)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must be loaded into a register first.
-define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f3(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: llihl [[REG1:%r[0-9]+]], 1
 ; CHECK: slgr %r3, [[REG1]]
@@ -49,12 +49,12 @@ define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 4294967296)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Likewise for negative values.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: lghi [[REG1:%r[0-9]+]], -1
 ; CHECK: slgr %r3, [[REG1]]
@@ -66,12 +66,12 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 -1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f5(i64 %dummy, i64 %a, i64 *%res) {
+define void @f5(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: slgfi %r3, 1
 ; CHECK: stg %r3, 0(%r4)
@@ -80,7 +80,7 @@ define void @f5(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -92,7 +92,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f6(i64 %dummy, i64 %a, i64 *%res) {
+define void @f6(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: slgfi %r3, 1
 ; CHECK: stg %r3, 0(%r4)
@@ -101,7 +101,7 @@ define void @f6(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-06.ll b/llvm/test/CodeGen/SystemZ/int-usub-06.ll
index d7d47889f9e8e..dfcac63ed5485 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-06.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-06.ll
@@ -5,7 +5,7 @@
 declare i32 @foo(i32, i32, i32)
 
 ; Check SLRK.
-define i32 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%flag) {
+define i32 @f1(i32 %dummy, i32 %a, i32 %b, ptr %flag) {
 ; CHECK-LABEL: f1:
 ; CHECK: slrk %r2, %r3, %r4
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -17,7 +17,7 @@ define i32 @f1(i32 %dummy, i32 %a, i32 %b, i32 *%flag) {
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
   %ext = zext i1 %obit to i32
-  store i32 %ext, i32 *%flag
+  store i32 %ext, ptr %flag
   ret i32 %val
 }
 
@@ -62,7 +62,7 @@ exit:
 }
 
 ; Check that we can still use SLR in obvious cases.
-define i32 @f4(i32 %a, i32 %b, i32 *%flag) {
+define i32 @f4(i32 %a, i32 %b, ptr %flag) {
 ; CHECK-LABEL: f4:
 ; CHECK: slr %r2, %r3
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -74,7 +74,7 @@ define i32 @f4(i32 %a, i32 %b, i32 *%flag) {
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
   %ext = zext i1 %obit to i32
-  store i32 %ext, i32 *%flag
+  store i32 %ext, ptr %flag
   ret i32 %val
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-07.ll b/llvm/test/CodeGen/SystemZ/int-usub-07.ll
index 85ceb8adef59b..4136b476c7e62 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-07.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-07.ll
@@ -5,7 +5,7 @@
 declare i64 @foo(i64, i64, i64)
 
 ; Check SLGRK.
-define i64 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%flag) {
+define i64 @f1(i64 %dummy, i64 %a, i64 %b, ptr %flag) {
 ; CHECK-LABEL: f1:
 ; CHECK: slgrk %r2, %r3, %r4
 ; CHECK: ipm [[REG1:%r[0-5]]]
@@ -17,7 +17,7 @@ define i64 @f1(i64 %dummy, i64 %a, i64 %b, i64 *%flag) {
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
   %ext = zext i1 %obit to i64
-  store i64 %ext, i64 *%flag
+  store i64 %ext, ptr %flag
   ret i64 %val
 }
 
@@ -62,7 +62,7 @@ exit:
 }
 
 ; Check that we can still use SLGR in obvious cases.
-define i64 @f4(i64 %a, i64 %b, i64 *%flag) {
+define i64 @f4(i64 %a, i64 %b, ptr %flag) {
 ; CHECK-LABEL: f4:
 ; CHECK: slgr %r2, %r3
 ; CHECK: ipm [[REG1:%r[0-5]]]
@@ -74,7 +74,7 @@ define i64 @f4(i64 %a, i64 %b, i64 *%flag) {
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
   %ext = zext i1 %obit to i64
-  store i64 %ext, i64 *%flag
+  store i64 %ext, ptr %flag
   ret i64 %val
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-08.ll b/llvm/test/CodeGen/SystemZ/int-usub-08.ll
index feee771eac1f0..d02caabf9fbe3 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-08.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-08.ll
@@ -6,7 +6,7 @@
 declare i32 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f1(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the ALHSIK range.
-define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f2(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, -32768
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -33,12 +33,12 @@ define zeroext i1 @f2(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use SLFI instead.
-define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f3(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: slfi %r3, 32769
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -49,12 +49,12 @@ define zeroext i1 @f3(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 32769)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative ALHSIK range.
-define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f4(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -65,12 +65,12 @@ define zeroext i1 @f4(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 -1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALHSIK range.
-define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f5(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, 32767
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -81,12 +81,12 @@ define zeroext i1 @f5(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 -32767)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value down, which must use SLFI instead.
-define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
+define zeroext i1 @f6(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK: slfi %r3, 4294934528
 ; CHECK-DAG: st %r3, 0(%r4)
@@ -97,12 +97,12 @@ define zeroext i1 @f6(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 -32768)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f7(i32 %dummy, i32 %a, i32 *%res) {
+define void @f7(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -111,7 +111,7 @@ define void @f7(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -123,7 +123,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f8(i32 %dummy, i32 %a, i32 *%res) {
+define void @f8(i32 %dummy, i32 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: alhsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: st [[REG1]], 0(%r4)
@@ -132,7 +132,7 @@ define void @f8(i32 %dummy, i32 %a, i32 *%res) {
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%res
+  store i32 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-09.ll b/llvm/test/CodeGen/SystemZ/int-usub-09.ll
index b116428a52aef..741e59caf78fb 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-09.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-09.ll
@@ -6,7 +6,7 @@
 declare i64 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f1(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f1:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -17,12 +17,12 @@ define zeroext i1 @f1(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the ALGHSIK range.
-define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f2(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f2:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, -32768
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -33,12 +33,12 @@ define zeroext i1 @f2(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the next value up, which must use SLGFI instead.
-define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f3(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: slgfi %r3, 32769
 ; CHECK-DAG: stg %r3, 0(%r4)
@@ -49,12 +49,12 @@ define zeroext i1 @f3(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 32769)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the high end of the negative ALGHSIK range.
-define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f4(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f4:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, 1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -65,12 +65,12 @@ define zeroext i1 @f4(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 -1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check the low end of the ALGHSIK range.
-define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f5(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f5:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, 32767
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -81,12 +81,12 @@ define zeroext i1 @f5(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 -32767)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Test the next value down, which cannot use either ALGHSIK or SLGFI.
-define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
+define zeroext i1 @f6(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: alghsik
 ; CHECK-NOT: slgfi
@@ -94,12 +94,12 @@ define zeroext i1 @f6(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 -32768)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   ret i1 %obit
 }
 
 ; Check using the overflow result for a branch.
-define void @f7(i64 %dummy, i64 %a, i64 *%res) {
+define void @f7(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f7:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -108,7 +108,7 @@ define void @f7(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %call, label %exit
 
 call:
@@ -120,7 +120,7 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f8(i64 %dummy, i64 %a, i64 *%res) {
+define void @f8(i64 %dummy, i64 %a, ptr %res) {
 ; CHECK-LABEL: f8:
 ; CHECK: alghsik [[REG1:%r[0-5]]], %r3, -1
 ; CHECK-DAG: stg [[REG1]], 0(%r4)
@@ -129,7 +129,7 @@ define void @f8(i64 %dummy, i64 %a, i64 *%res) {
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%res
+  store i64 %val, ptr %res
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-10.ll b/llvm/test/CodeGen/SystemZ/int-usub-10.ll
index 97f08777894c7..8c473f22699a5 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-10.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-10.ll
@@ -5,39 +5,39 @@
 declare i32 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i32 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: alsi 0(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i32 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: alsi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use a subtraction and a store.
-define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f3(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: slfi [[VAL]], 129
@@ -46,32 +46,32 @@ define zeroext i1 @f3(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 129)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i32 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: alsi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 -127)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
+define zeroext i1 @f5(i32 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: l [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: slfi [[VAL]], 4294967168
@@ -80,34 +80,34 @@ define zeroext i1 @f5(i32 %dummy, i32 *%ptr) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 -128)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ASI range.
-define zeroext i1 @f6(i32 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: alsi 524284(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131071
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131071
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i32 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: alsi 0(%r2), -1
@@ -115,35 +115,35 @@ define zeroext i1 @f7(i32 *%base) {
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the ALSI range.
-define zeroext i1 @f8(i32 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: alsi -524288(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131072
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131072
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i32 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524292
 ; CHECK: alsi 0(%r2), -1
@@ -151,12 +151,12 @@ define zeroext i1 @f9(i32 *%base) {
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 -131073
-  %a = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 -131073
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -171,37 +171,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 4
-  %ptr = inttoptr i64 %add2 to i32 *
-  %a = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that subtracting 128 from a spilled value can use ALSI.
-define zeroext i1 @f11(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f11(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: alsi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -292,48 +292,48 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check that subtracting -127 from a spilled value can use ALSI.
-define zeroext i1 @f12(i32 *%ptr, i32 %sel) {
+define zeroext i1 @f12(ptr %ptr, i32 %sel) {
 ; CHECK-LABEL: f12:
 ; CHECK: alsi {{[0-9]+}}(%r15), 127
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i32, i32 *%ptr
-  %val1 = load volatile i32, i32 *%ptr
-  %val2 = load volatile i32, i32 *%ptr
-  %val3 = load volatile i32, i32 *%ptr
-  %val4 = load volatile i32, i32 *%ptr
-  %val5 = load volatile i32, i32 *%ptr
-  %val6 = load volatile i32, i32 *%ptr
-  %val7 = load volatile i32, i32 *%ptr
-  %val8 = load volatile i32, i32 *%ptr
-  %val9 = load volatile i32, i32 *%ptr
-  %val10 = load volatile i32, i32 *%ptr
-  %val11 = load volatile i32, i32 *%ptr
-  %val12 = load volatile i32, i32 *%ptr
-  %val13 = load volatile i32, i32 *%ptr
-  %val14 = load volatile i32, i32 *%ptr
-  %val15 = load volatile i32, i32 *%ptr
+  %val0 = load volatile i32, ptr %ptr
+  %val1 = load volatile i32, ptr %ptr
+  %val2 = load volatile i32, ptr %ptr
+  %val3 = load volatile i32, ptr %ptr
+  %val4 = load volatile i32, ptr %ptr
+  %val5 = load volatile i32, ptr %ptr
+  %val6 = load volatile i32, ptr %ptr
+  %val7 = load volatile i32, ptr %ptr
+  %val8 = load volatile i32, ptr %ptr
+  %val9 = load volatile i32, ptr %ptr
+  %val10 = load volatile i32, ptr %ptr
+  %val11 = load volatile i32, ptr %ptr
+  %val12 = load volatile i32, ptr %ptr
+  %val13 = load volatile i32, ptr %ptr
+  %val14 = load volatile i32, ptr %ptr
+  %val15 = load volatile i32, ptr %ptr
 
   %test = icmp ne i32 %sel, 0
   br i1 %test, label %add, label %store
@@ -424,37 +424,37 @@ store:
   %new15 = phi i32 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i32 %new0, i32 *%ptr
-  store volatile i32 %new1, i32 *%ptr
-  store volatile i32 %new2, i32 *%ptr
-  store volatile i32 %new3, i32 *%ptr
-  store volatile i32 %new4, i32 *%ptr
-  store volatile i32 %new5, i32 *%ptr
-  store volatile i32 %new6, i32 *%ptr
-  store volatile i32 %new7, i32 *%ptr
-  store volatile i32 %new8, i32 *%ptr
-  store volatile i32 %new9, i32 *%ptr
-  store volatile i32 %new10, i32 *%ptr
-  store volatile i32 %new11, i32 *%ptr
-  store volatile i32 %new12, i32 *%ptr
-  store volatile i32 %new13, i32 *%ptr
-  store volatile i32 %new14, i32 *%ptr
-  store volatile i32 %new15, i32 *%ptr
+  store volatile i32 %new0, ptr %ptr
+  store volatile i32 %new1, ptr %ptr
+  store volatile i32 %new2, ptr %ptr
+  store volatile i32 %new3, ptr %ptr
+  store volatile i32 %new4, ptr %ptr
+  store volatile i32 %new5, ptr %ptr
+  store volatile i32 %new6, ptr %ptr
+  store volatile i32 %new7, ptr %ptr
+  store volatile i32 %new8, ptr %ptr
+  store volatile i32 %new9, ptr %ptr
+  store volatile i32 %new10, ptr %ptr
+  store volatile i32 %new11, ptr %ptr
+  store volatile i32 %new12, ptr %ptr
+  store volatile i32 %new13, ptr %ptr
+  store volatile i32 %new14, ptr %ptr
+  store volatile i32 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f13(i32 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: alsi 0(%r2), -1
 ; CHECK: jgle foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -466,16 +466,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f14(i32 *%ptr) {
+define void @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: alsi 0(%r2), -1
 ; CHECK: jgnle foo at PLT
 ; CHECK: br %r14
-  %a = load i32, i32 *%ptr
+  %a = load i32, ptr %ptr
   %t = call {i32, i1} @llvm.usub.with.overflow.i32(i32 %a, i32 1)
   %val = extractvalue {i32, i1} %t, 0
   %obit = extractvalue {i32, i1} %t, 1
-  store i32 %val, i32 *%ptr
+  store i32 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/int-usub-11.ll b/llvm/test/CodeGen/SystemZ/int-usub-11.ll
index cef5216b2c5d8..5cdb7a5b17f20 100644
--- a/llvm/test/CodeGen/SystemZ/int-usub-11.ll
+++ b/llvm/test/CodeGen/SystemZ/int-usub-11.ll
@@ -5,39 +5,39 @@
 declare i64 @foo()
 
 ; Check subtraction of 1.
-define zeroext i1 @f1(i64 *%ptr) {
+define zeroext i1 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: algsi 0(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the constant range.
-define zeroext i1 @f2(i64 *%ptr) {
+define zeroext i1 @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: algsi 0(%r2), -128
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next constant up, which must use an addition and a store.
-define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f3(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: lg [[VAL:%r[0-5]]], 0(%r3)
 ; CHECK: slgfi [[VAL]], 129
@@ -46,32 +46,32 @@ define zeroext i1 @f3(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 129)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the constant range.
-define zeroext i1 @f4(i64 *%ptr) {
+define zeroext i1 @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: algsi 0(%r2), 127
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 -127)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next value down, with the same comment as f3.
-define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
+define zeroext i1 @f5(i64 %dummy, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: lg [[VAL1:%r[0-5]]], 0(%r3)
 ; CHECK: lghi [[VAL2:%r[0-9]+]], -128
@@ -81,34 +81,34 @@ define zeroext i1 @f5(i64 %dummy, i64 *%ptr) {
 ; CHECK-DAG: afi [[REG]], -536870912
 ; CHECK-DAG: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 -128)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the high end of the aligned ALGSI range.
-define zeroext i1 @f6(i64 *%base) {
+define zeroext i1 @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: algsi 524280(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65535
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65535
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word up, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f7(i64 *%base) {
+define zeroext i1 @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: algsi 0(%r2), -1
@@ -116,35 +116,35 @@ define zeroext i1 @f7(i64 *%base) {
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the low end of the ALGSI range.
-define zeroext i1 @f8(i64 *%base) {
+define zeroext i1 @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: algsi -524288(%r2), -1
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65536
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65536
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check the next word down, which must use separate address logic.
 ; Other sequences besides this one would be OK.
-define zeroext i1 @f9(i64 *%base) {
+define zeroext i1 @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r2, -524296
 ; CHECK: algsi 0(%r2), -1
@@ -152,12 +152,12 @@ define zeroext i1 @f9(i64 *%base) {
 ; CHECK: afi [[REG]], -536870912
 ; CHECK: risbg %r2, [[REG]], 63, 191, 33
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i64 -65537
-  %a = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 -65537
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
@@ -172,37 +172,37 @@ define zeroext i1 @f10(i64 %base, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %base, %index
   %add2 = add i64 %add1, 8
-  %ptr = inttoptr i64 %add2 to i64 *
-  %a = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   ret i1 %obit
 }
 
 ; Check that subtracting 128 from a spilled value can use ALGSI.
-define zeroext i1 @f11(i64 *%ptr, i64 %sel) {
+define zeroext i1 @f11(ptr %ptr, i64 %sel) {
 ; CHECK-LABEL: f11:
 ; CHECK: algsi {{[0-9]+}}(%r15), -128
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *%ptr
-  %val1 = load volatile i64, i64 *%ptr
-  %val2 = load volatile i64, i64 *%ptr
-  %val3 = load volatile i64, i64 *%ptr
-  %val4 = load volatile i64, i64 *%ptr
-  %val5 = load volatile i64, i64 *%ptr
-  %val6 = load volatile i64, i64 *%ptr
-  %val7 = load volatile i64, i64 *%ptr
-  %val8 = load volatile i64, i64 *%ptr
-  %val9 = load volatile i64, i64 *%ptr
-  %val10 = load volatile i64, i64 *%ptr
-  %val11 = load volatile i64, i64 *%ptr
-  %val12 = load volatile i64, i64 *%ptr
-  %val13 = load volatile i64, i64 *%ptr
-  %val14 = load volatile i64, i64 *%ptr
-  %val15 = load volatile i64, i64 *%ptr
+  %val0 = load volatile i64, ptr %ptr
+  %val1 = load volatile i64, ptr %ptr
+  %val2 = load volatile i64, ptr %ptr
+  %val3 = load volatile i64, ptr %ptr
+  %val4 = load volatile i64, ptr %ptr
+  %val5 = load volatile i64, ptr %ptr
+  %val6 = load volatile i64, ptr %ptr
+  %val7 = load volatile i64, ptr %ptr
+  %val8 = load volatile i64, ptr %ptr
+  %val9 = load volatile i64, ptr %ptr
+  %val10 = load volatile i64, ptr %ptr
+  %val11 = load volatile i64, ptr %ptr
+  %val12 = load volatile i64, ptr %ptr
+  %val13 = load volatile i64, ptr %ptr
+  %val14 = load volatile i64, ptr %ptr
+  %val15 = load volatile i64, ptr %ptr
 
   %test = icmp ne i64 %sel, 0
   br i1 %test, label %add, label %store
@@ -293,37 +293,37 @@ store:
   %new15 = phi i64 [ %val15, %entry ], [ %add15, %add ]
   %res = phi i1 [ 0, %entry ], [ %res15, %add ]
 
-  store volatile i64 %new0, i64 *%ptr
-  store volatile i64 %new1, i64 *%ptr
-  store volatile i64 %new2, i64 *%ptr
-  store volatile i64 %new3, i64 *%ptr
-  store volatile i64 %new4, i64 *%ptr
-  store volatile i64 %new5, i64 *%ptr
-  store volatile i64 %new6, i64 *%ptr
-  store volatile i64 %new7, i64 *%ptr
-  store volatile i64 %new8, i64 *%ptr
-  store volatile i64 %new9, i64 *%ptr
-  store volatile i64 %new10, i64 *%ptr
-  store volatile i64 %new11, i64 *%ptr
-  store volatile i64 %new12, i64 *%ptr
-  store volatile i64 %new13, i64 *%ptr
-  store volatile i64 %new14, i64 *%ptr
-  store volatile i64 %new15, i64 *%ptr
+  store volatile i64 %new0, ptr %ptr
+  store volatile i64 %new1, ptr %ptr
+  store volatile i64 %new2, ptr %ptr
+  store volatile i64 %new3, ptr %ptr
+  store volatile i64 %new4, ptr %ptr
+  store volatile i64 %new5, ptr %ptr
+  store volatile i64 %new6, ptr %ptr
+  store volatile i64 %new7, ptr %ptr
+  store volatile i64 %new8, ptr %ptr
+  store volatile i64 %new9, ptr %ptr
+  store volatile i64 %new10, ptr %ptr
+  store volatile i64 %new11, ptr %ptr
+  store volatile i64 %new12, ptr %ptr
+  store volatile i64 %new13, ptr %ptr
+  store volatile i64 %new14, ptr %ptr
+  store volatile i64 %new15, ptr %ptr
 
   ret i1 %res
 }
 
 ; Check using the overflow result for a branch.
-define void @f12(i64 *%ptr) {
+define void @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: algsi 0(%r2), -1
 ; CHECK: jgle foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %call, label %exit
 
 call:
@@ -335,16 +335,16 @@ exit:
 }
 
 ; ... and the same with the inverted direction.
-define void @f13(i64 *%ptr) {
+define void @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: algsi 0(%r2), -1
 ; CHECK: jgnle foo at PLT
 ; CHECK: br %r14
-  %a = load i64, i64 *%ptr
+  %a = load i64, ptr %ptr
   %t = call {i64, i1} @llvm.usub.with.overflow.i64(i64 %a, i64 1)
   %val = extractvalue {i64, i1} %t, 0
   %obit = extractvalue {i64, i1} %t, 1
-  store i64 %val, i64 *%ptr
+  store i64 %val, ptr %ptr
   br i1 %obit, label %exit, label %call
 
 call:

diff  --git a/llvm/test/CodeGen/SystemZ/ipra-04.ll b/llvm/test/CodeGen/SystemZ/ipra-04.ll
index 71ed6d3ff9827..60a66ca02c87e 100644
--- a/llvm/test/CodeGen/SystemZ/ipra-04.ll
+++ b/llvm/test/CodeGen/SystemZ/ipra-04.ll
@@ -9,26 +9,26 @@
 ; DBG: Call Instruction After Register Usage Info Propagation :
 ; DBG-NEXT: CallBRASL @fun1{{.*}} $r14d $r15d
 
-declare dso_local fastcc signext i32 @foo(i16*, i32 signext) unnamed_addr
+declare dso_local fastcc signext i32 @foo(ptr, i32 signext) unnamed_addr
 
-define internal fastcc void @fun1(i16* %arg, i16* nocapture %arg1) unnamed_addr #0 {
+define internal fastcc void @fun1(ptr %arg, ptr nocapture %arg1) unnamed_addr #0 {
 bb:
-  %tmp = load i16, i16* undef, align 2
+  %tmp = load i16, ptr undef, align 2
   %tmp2 = shl i16 %tmp, 4
-  %tmp3 = tail call fastcc signext i32 @foo(i16* nonnull %arg, i32 signext 5)
+  %tmp3 = tail call fastcc signext i32 @foo(ptr nonnull %arg, i32 signext 5)
   %tmp4 = or i16 0, %tmp2
   %tmp5 = or i16 %tmp4, 0
-  store i16 %tmp5, i16* undef, align 2
-  %tmp6 = getelementptr inbounds i16, i16* %arg, i64 5
-  %tmp7 = load i16, i16* %tmp6, align 2
-  store i16 %tmp7, i16* %arg1, align 2
+  store i16 %tmp5, ptr undef, align 2
+  %tmp6 = getelementptr inbounds i16, ptr %arg, i64 5
+  %tmp7 = load i16, ptr %tmp6, align 2
+  store i16 %tmp7, ptr %arg1, align 2
   ret void
 }
 
-define fastcc void @fun0(i8* nocapture readonly %arg, i16* nocapture %arg1, i32 signext %arg2) unnamed_addr {
+define fastcc void @fun0(ptr nocapture readonly %arg, ptr nocapture %arg1, i32 signext %arg2) unnamed_addr {
 bb:
   %a = alloca i8, i64 undef
-  call fastcc void @fun1(i16* nonnull undef, i16* %arg1)
+  call fastcc void @fun1(ptr nonnull undef, ptr %arg1)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/ipra.ll b/llvm/test/CodeGen/SystemZ/ipra.ll
index 951b2d945bde4..37a1add980e0d 100644
--- a/llvm/test/CodeGen/SystemZ/ipra.ll
+++ b/llvm/test/CodeGen/SystemZ/ipra.ll
@@ -9,16 +9,16 @@
 ; CHECK: fn2 Clobbered Registers: {{.*}} $r0h
 
 @h = external dso_local global [0 x i32], align 4
- at n = external dso_local global i32*, align 8
+ at n = external dso_local global ptr, align 8
 
 define void @fn1() {
 bb:
   br label %bb1
 
 bb1:                                              ; preds = %bb1, %bb
-  %tmp = getelementptr inbounds [0 x i32], [0 x i32]* @h, i64 0, i64 undef
-  %tmp2 = load i32, i32* %tmp
-  store i32 %tmp2, i32* undef
+  %tmp = getelementptr inbounds [0 x i32], ptr @h, i64 0, i64 undef
+  %tmp2 = load i32, ptr %tmp
+  store i32 %tmp2, ptr undef
   br label %bb1
 }
 
@@ -30,7 +30,7 @@ bb1:                                              ; preds = %bb
   br i1 undef, label %bb2, label %bb3
 
 bb2:                                              ; preds = %bb1
-  store i32* null, i32** @n
+  store ptr null, ptr @n
   unreachable
 
 bb3:                                              ; preds = %bb1

diff  --git a/llvm/test/CodeGen/SystemZ/knownbits.ll b/llvm/test/CodeGen/SystemZ/knownbits.ll
index 9c40b307cf16d..a85c939797518 100644
--- a/llvm/test/CodeGen/SystemZ/knownbits.ll
+++ b/llvm/test/CodeGen/SystemZ/knownbits.ll
@@ -4,7 +4,7 @@
 ; Test that DAGCombiner gets helped by computeKnownBitsForTargetNode().
 
 ; SystemZISD::REPLICATE
-define i32 @f0(<4 x i32> *%p0) {
+define i32 @f0(ptr %p0) {
 ; CHECK-LABEL: f0:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 0(%r2), 3
@@ -16,10 +16,10 @@ define i32 @f0(<4 x i32> *%p0) {
 ; CHECK-NEXT:    vlgvf %r2, %v0, 3
 ; CHECK-NEXT:    # kill: def $r2l killed $r2l killed $r2d
 ; CHECK-NEXT:    br %r14
-  %a0 = load <4 x i32>, <4 x i32>* %p0, align 8
+  %a0 = load <4 x i32>, ptr %p0, align 8
   %cmp0 = icmp ne <4 x i32> %a0, zeroinitializer
   %zxt0 = zext <4 x i1> %cmp0 to <4 x i32>
-  store <4 x i32> %zxt0, <4 x i32>* %p0, align 8
+  store <4 x i32> %zxt0, ptr %p0, align 8
   %ext0 = extractelement <4 x i32> %zxt0, i32 3
   br label %exit
 

diff  --git a/llvm/test/CodeGen/SystemZ/la-01.ll b/llvm/test/CodeGen/SystemZ/la-01.ll
index 7eda8a9b16aef..4d9993613acfe 100644
--- a/llvm/test/CodeGen/SystemZ/la-01.ll
+++ b/llvm/test/CodeGen/SystemZ/la-01.ll
@@ -15,70 +15,70 @@ define dso_local void @df() {
   ret void
 }
 
-declare dso_local void @foo(i32 *)
+declare dso_local void @foo(ptr)
 
 ; Test a load of a fully-aligned external variable.
-define dso_local i32 *@f1() {
+define dso_local ptr at f1() {
 ; CHECK-LABEL: f1:
 ; CHECK: larl %r2, e4
 ; CHECK-NEXT: br %r14
-  ret i32 *@e4
+  ret ptr at e4
 }
 
 ; Test a load of a fully-aligned local variable.
-define dso_local i32 *@f2() {
+define dso_local ptr at f2() {
 ; CHECK-LABEL: f2:
 ; CHECK: larl %r2, d4
 ; CHECK-NEXT: br %r14
-  ret i32 *@d4
+  ret ptr at d4
 }
 
 ; Test a load of a 2-byte-aligned external variable.
-define dso_local i32 *@f3() {
+define dso_local ptr at f3() {
 ; CHECK-LABEL: f3:
 ; CHECK: larl %r2, e2
 ; CHECK-NEXT: br %r14
-  ret i32 *@e2
+  ret ptr at e2
 }
 
 ; Test a load of a 2-byte-aligned local variable.
-define dso_local i32 *@f4() {
+define dso_local ptr at f4() {
 ; CHECK-LABEL: f4:
 ; CHECK: larl %r2, d2
 ; CHECK-NEXT: br %r14
-  ret i32 *@d2
+  ret ptr at d2
 }
 
 ; Test a load of an unaligned external variable, which must go via the GOT.
-define dso_local i32 *@f5() {
+define dso_local ptr at f5() {
 ; CHECK-LABEL: f5:
 ; CHECK: lgrl %r2, e1 at GOT
 ; CHECK-NEXT: br %r14
-  ret i32 *@e1
+  ret ptr at e1
 }
 
 ; Test a load of an unaligned local variable, which must go via the GOT.
-define dso_local i32 *@f6() {
+define dso_local ptr at f6() {
 ; CHECK-LABEL: f6:
 ; CHECK: lgrl %r2, d1 at GOT
 ; CHECK-NEXT: br %r14
-  ret i32 *@d1
+  ret ptr at d1
 }
 
 ; Test a load of an external function.
-define dso_local void() *@f7() {
+define dso_local ptr at f7() {
 ; CHECK-LABEL: f7:
 ; CHECK: larl %r2, ef
 ; CHECK-NEXT: br %r14
-  ret void() *@ef
+  ret ptr at ef
 }
 
 ; Test a load of a local function.
-define dso_local void() *@f8() {
+define dso_local ptr at f8() {
 ; CHECK-LABEL: f8:
 ; CHECK: larl %r2, df
 ; CHECK-NEXT: br %r14
-  ret void() *@df
+  ret ptr at df
 }
 
 ; Test that LARL can be rematerialized.
@@ -89,7 +89,7 @@ define dso_local i32 @f9() {
 ; CHECK: larl %r2, d2
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
-  call void @foo(i32 *@d2)
-  call void @foo(i32 *@d2)
+  call void @foo(ptr at d2)
+  call void @foo(ptr at d2)
   ret i32 0
 }

diff  --git a/llvm/test/CodeGen/SystemZ/la-02.ll b/llvm/test/CodeGen/SystemZ/la-02.ll
index d7362d67e3bf6..95338bc964ed3 100644
--- a/llvm/test/CodeGen/SystemZ/la-02.ll
+++ b/llvm/test/CodeGen/SystemZ/la-02.ll
@@ -22,66 +22,66 @@ define hidden void @hf() {
 
 ; Test loads of external variables.  There is no guarantee that the
 ; variable will be in range of LARL.
-define i32 *@f1() {
+define ptr at f1() {
 ; CHECK-LABEL: f1:
 ; CHECK: lgrl %r2, ev at GOT
 ; CHECK: br %r14
-  ret i32 *@ev
+  ret ptr at ev
 }
 
 ; ...likewise locally-defined normal-visibility variables.
-define i32 *@f2() {
+define ptr at f2() {
 ; CHECK-LABEL: f2:
 ; CHECK: lgrl %r2, dv at GOT
 ; CHECK: br %r14
-  ret i32 *@dv
+  ret ptr at dv
 }
 
 ; ...likewise protected variables.
-define i32 *@f3() {
+define ptr at f3() {
 ; CHECK-LABEL: f3:
 ; CHECK: lgrl %r2, pv at GOT
 ; CHECK: br %r14
-  ret i32 *@pv
+  ret ptr at pv
 }
 
 ; ...likewise hidden variables.
-define i32 *@f4() {
+define ptr at f4() {
 ; CHECK-LABEL: f4:
 ; CHECK: lgrl %r2, hv at GOT
 ; CHECK: br %r14
-  ret i32 *@hv
+  ret ptr at hv
 }
 
 ; Check loads of external functions.  This could use LARL, but we don't have
 ; code to detect that yet.
-define void() *@f5() {
+define ptr at f5() {
 ; CHECK-LABEL: f5:
 ; CHECK: lgrl %r2, ef at GOT
 ; CHECK: br %r14
-  ret void() *@ef
+  ret ptr at ef
 }
 
 ; ...likewise locally-defined normal-visibility functions.
-define void() *@f6() {
+define ptr at f6() {
 ; CHECK-LABEL: f6:
 ; CHECK: lgrl %r2, df at GOT
 ; CHECK: br %r14
-  ret void() *@df
+  ret ptr at df
 }
 
 ; ...likewise protected functions.
-define void() *@f7() {
+define ptr at f7() {
 ; CHECK-LABEL: f7:
 ; CHECK: lgrl %r2, pf at GOT
 ; CHECK: br %r14
-  ret void() *@pf
+  ret ptr at pf
 }
 
 ; ...likewise hidden functions.
-define void() *@f8() {
+define ptr at f8() {
 ; CHECK-LABEL: f8:
 ; CHECK: lgrl %r2, hf at GOT
 ; CHECK: br %r14
-  ret void() *@hf
+  ret ptr at hf
 }

diff  --git a/llvm/test/CodeGen/SystemZ/la-03.ll b/llvm/test/CodeGen/SystemZ/la-03.ll
index 1ff3fefde6c93..643318dd7c318 100644
--- a/llvm/test/CodeGen/SystemZ/la-03.ll
+++ b/llvm/test/CodeGen/SystemZ/la-03.ll
@@ -19,67 +19,67 @@ define hidden void @hf() {
 }
 
 ; Test loads of external variables, which must go via the GOT.
-define i32 *@f1() {
+define ptr at f1() {
 ; CHECK-LABEL: f1:
 ; CHECK: lgrl %r2, ev at GOT
 ; CHECK: br %r14
-  ret i32 *@ev
+  ret ptr at ev
 }
 
 ; Check loads of locally-defined normal-visibility variables, which might
 ; be overridden.  The load must go via the GOT.
-define i32 *@f2() {
+define ptr at f2() {
 ; CHECK-LABEL: f2:
 ; CHECK: lgrl %r2, dv at GOT
 ; CHECK: br %r14
-  ret i32 *@dv
+  ret ptr at dv
 }
 
 ; Check loads of protected variables, which in the small code model
 ; must be in range of LARL.
-define i32 *@f3() {
+define ptr at f3() {
 ; CHECK-LABEL: f3:
 ; CHECK: larl %r2, pv
 ; CHECK: br %r14
-  ret i32 *@pv
+  ret ptr at pv
 }
 
 ; ...likewise hidden variables.
-define i32 *@f4() {
+define ptr at f4() {
 ; CHECK-LABEL: f4:
 ; CHECK: larl %r2, hv
 ; CHECK: br %r14
-  ret i32 *@hv
+  ret ptr at hv
 }
 
 ; Like f1, but for functions.
-define void() *@f5() {
+define ptr at f5() {
 ; CHECK-LABEL: f5:
 ; CHECK: lgrl %r2, ef at GOT
 ; CHECK: br %r14
-  ret void() *@ef
+  ret ptr at ef
 }
 
 ; Like f2, but for functions.
-define void() *@f6() {
+define ptr at f6() {
 ; CHECK-LABEL: f6:
 ; CHECK: lgrl %r2, df at GOT
 ; CHECK: br %r14
-  ret void() *@df
+  ret ptr at df
 }
 
 ; Like f3, but for functions.
-define void() *@f7() {
+define ptr at f7() {
 ; CHECK-LABEL: f7:
 ; CHECK: larl %r2, pf
 ; CHECK: br %r14
-  ret void() *@pf
+  ret ptr at pf
 }
 
 ; Like f4, but for functions.
-define void() *@f8() {
+define ptr at f8() {
 ; CHECK-LABEL: f8:
 ; CHECK: larl %r2, hf
 ; CHECK: br %r14
-  ret void() *@hf
+  ret ptr at hf
 }

diff  --git a/llvm/test/CodeGen/SystemZ/la-04.ll b/llvm/test/CodeGen/SystemZ/la-04.ll
index 4d47308e04ba6..29b5f4d59fd0e 100644
--- a/llvm/test/CodeGen/SystemZ/la-04.ll
+++ b/llvm/test/CodeGen/SystemZ/la-04.ll
@@ -3,16 +3,16 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Do some arbitrary work and return the address of the following label.
-define i8 *@f1(i8 *%addr) {
+define ptr at f1(ptr %addr) {
 ; CHECK-LABEL: f1:
 ; CHECK: mvi 0(%r2), 1
 ; CHECK: [[LABEL:\.L.*]]:
 ; CHECK: larl %r2, [[LABEL]]
 ; CHECK: br %r14
 entry:
-  store i8 1, i8 *%addr
+  store i8 1, ptr %addr
   br label %b.lab
 
 b.lab:
-  ret i8 *blockaddress(@f1, %b.lab)
+  ret ptr blockaddress(@f1, %b.lab)
 }

diff  --git a/llvm/test/CodeGen/SystemZ/la-05.ll b/llvm/test/CodeGen/SystemZ/la-05.ll
index 27d7d91e6c8ab..154fa4a0aa812 100644
--- a/llvm/test/CodeGen/SystemZ/la-05.ll
+++ b/llvm/test/CodeGen/SystemZ/la-05.ll
@@ -12,7 +12,7 @@ define i64 @f1() {
 ; CHECK: larl    %r2, a
 ; CHECK: agr     %r2, %r0
 ; CHECK: br      %r14
-  ret i64 add (i64 ptrtoint (i32* @a to i64), i64 3564822854692)
+  ret i64 add (i64 ptrtoint (ptr @a to i64), i64 3564822854692)
 }
 
 define signext i32 @f2() {
@@ -24,8 +24,8 @@ define signext i32 @f2() {
 ; CHECK: lgf     %r2, 0(%r1)
 ; CHECK: br      %r14
 entry:
-  %0 = load i32, i32* inttoptr (i64 add (i64 ptrtoint (i32* @a to i64),
-                                i64 3564822854692) to i32*)
+  %0 = load i32, ptr inttoptr (i64 add (i64 ptrtoint (ptr @a to i64),
+                                i64 3564822854692) to ptr)
   ret i32 %0
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/locr-legal-regclass.ll b/llvm/test/CodeGen/SystemZ/locr-legal-regclass.ll
index 1f792439a49cc..764e3bf5d9b05 100644
--- a/llvm/test/CodeGen/SystemZ/locr-legal-regclass.ll
+++ b/llvm/test/CodeGen/SystemZ/locr-legal-regclass.ll
@@ -3,10 +3,10 @@
 ; Test that early if conversion produces LOCR with operands of the right
 ; register classes.
 
-define void @autogen_SD4739(i8*) {
+define void @autogen_SD4739(ptr) {
 ; CHECK-NOT: Expected a GR32Bit register, but got a GRX32Bit register
 BB:
-  %L34 = load i8, i8* %0
+  %L34 = load i8, ptr %0
   %Cmp56 = icmp sgt i8 undef, %L34
   br label %CF246
 
@@ -15,6 +15,6 @@ CF246:                                            ; preds = %CF246, %BB
   br i1 undef, label %CF246, label %CF248
 
 CF248:                                            ; preds = %CF248, %CF246
-  store i8 %Sl163, i8* %0
+  store i8 %Sl163, ptr %0
   br label %CF248
 }

diff  --git a/llvm/test/CodeGen/SystemZ/loop-01.ll b/llvm/test/CodeGen/SystemZ/loop-01.ll
index 33a165e0c22d5..15dfae73c97bc 100644
--- a/llvm/test/CodeGen/SystemZ/loop-01.ll
+++ b/llvm/test/CodeGen/SystemZ/loop-01.ll
@@ -6,7 +6,7 @@
 
 ; Test that strength reduction is applied to addresses with a scale factor,
 ; but that indexed addressing can still be used.
-define void @f1(i32 *%dest, i32 %a) {
+define void @f1(ptr %dest, i32 %a) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: sllg
 ; CHECK: st %r3, 400({{%r[1-5],%r[1-5]}})
@@ -16,8 +16,8 @@ entry:
 
 loop:
   %index = phi i64 [ 0, %entry ], [ %next, %loop ]
-  %ptr = getelementptr i32, i32 *%dest, i64 %index
-  store i32 %a, i32 *%ptr
+  %ptr = getelementptr i32, ptr %dest, i64 %index
+  store i32 %a, ptr %ptr
   %next = add i64 %index, 1
   %cmp = icmp ne i64 %next, 100
   br i1 %cmp, label %loop, label %exit
@@ -27,7 +27,7 @@ exit:
 }
 
 ; Test a loop that should be converted into dbr form and then use BRCT.
-define void @f2(i32 *%src, i32 *%dest) {
+define void @f2(ptr %src, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi [[REG:%r[0-5]]], 100
 ; CHECK: [[LABEL:\.[^:]*]]:{{.*}} %loop
@@ -39,13 +39,13 @@ entry:
 loop:
   %count = phi i32 [ 0, %entry ], [ %next, %loop.next ]
   %next = add i32 %count, 1
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %loop.next, label %loop.store
 
 loop.store:
   %add = add i32 %val, 1
-  store volatile i32 %add, i32 *%dest
+  store volatile i32 %add, ptr %dest
   br label %loop.next
 
 loop.next:
@@ -57,7 +57,7 @@ exit:
 }
 
 ; Like f2, but for BRCTG.
-define void @f3(i64 *%src, i64 *%dest) {
+define void @f3(ptr %src, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: lghi [[REG:%r[0-5]]], 100
 ; CHECK: [[LABEL:\.[^:]*]]:{{.*}} %loop
@@ -69,13 +69,13 @@ entry:
 loop:
   %count = phi i64 [ 0, %entry ], [ %next, %loop.next ]
   %next = add i64 %count, 1
-  %val = load volatile i64, i64 *%src
+  %val = load volatile i64, ptr %src
   %cmp = icmp eq i64 %val, 0
   br i1 %cmp, label %loop.next, label %loop.store
 
 loop.store:
   %add = add i64 %val, 1
-  store volatile i64 %add, i64 *%dest
+  store volatile i64 %add, ptr %dest
   br label %loop.next
 
 loop.next:
@@ -89,7 +89,7 @@ exit:
 ; Test a loop with a 64-bit decremented counter in which the 32-bit
 ; low part of the counter is used after the decrement.  This is an example
 ; of a subregister use being the only thing that blocks a conversion to BRCTG.
-define void @f4(i32 *%src, i32 *%dest, i64 *%dest2, i64 %count) {
+define void @f4(ptr %src, ptr %dest, ptr %dest2, i64 %count) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi [[REG:%r[0-5]]], -1
 ; CHECK: lr [[REG2:%r[0-5]]], [[REG]]
@@ -101,14 +101,14 @@ entry:
 
 loop:
   %left = phi i64 [ %count, %entry ], [ %next, %loop.next ]
-  store volatile i64 %left, i64 *%dest2
-  %val = load volatile i32, i32 *%src
+  store volatile i64 %left, ptr %dest2
+  %val = load volatile i32, ptr %src
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %loop.next, label %loop.store
 
 loop.store:
   %add = add i32 %val, 1
-  store volatile i32 %add, i32 *%dest
+  store volatile i32 %add, ptr %dest
   br label %loop.next
 
 loop.next:
@@ -117,7 +117,7 @@ loop.next:
   %shl = shl i64 %ext, 32
   %and = and i64 %next, 4294967295
   %or = or i64 %shl, %and
-  store volatile i64 %or, i64 *%dest2
+  store volatile i64 %or, ptr %dest2
   %cont = icmp ne i64 %next, 0
   br i1 %cont, label %loop, label %exit
 
@@ -127,8 +127,8 @@ exit:
 
 ; Test that negative offsets are avoided for loads of floating point.
 %s.float = type { float, float, float }
-define void @f5(%s.float* nocapture %a,
-                %s.float* nocapture readonly %b,
+define void @f5(ptr nocapture %a,
+                ptr nocapture readonly %b,
                 i32 zeroext %S) {
 ; CHECK-Z13-LABEL: f5:
 ; CHECK-Z13-NOT: -{{[0-9]+}}(%r
@@ -148,16 +148,16 @@ for.cond.cleanup:                   ; preds = %for.cond.cleanup.loopexit, %entry
 
 for.body:                           ; preds = %for.body.preheader, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
-  %a1 = getelementptr inbounds %s.float, %s.float* %b, i64 %indvars.iv, i32 0
-  %tmp = load float, float* %a1, align 4
-  %b4 = getelementptr inbounds %s.float, %s.float* %b, i64 %indvars.iv, i32 1
-  %tmp1 = load float, float* %b4, align 4
+  %a1 = getelementptr inbounds %s.float, ptr %b, i64 %indvars.iv, i32 0
+  %tmp = load float, ptr %a1, align 4
+  %b4 = getelementptr inbounds %s.float, ptr %b, i64 %indvars.iv, i32 1
+  %tmp1 = load float, ptr %b4, align 4
   %add = fadd float %tmp, %tmp1
-  %c = getelementptr inbounds %s.float, %s.float* %b, i64 %indvars.iv, i32 2
-  %tmp2 = load float, float* %c, align 4
+  %c = getelementptr inbounds %s.float, ptr %b, i64 %indvars.iv, i32 2
+  %tmp2 = load float, ptr %c, align 4
   %add7 = fadd float %add, %tmp2
-  %a10 = getelementptr inbounds %s.float, %s.float* %a, i64 %indvars.iv, i32 0
-  store float %add7, float* %a10, align 4
+  %a10 = getelementptr inbounds %s.float, ptr %a, i64 %indvars.iv, i32 0
+  store float %add7, ptr %a10, align 4
   %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
   %lftr.wideiv = trunc i64 %indvars.iv.next to i32
   %exitcond = icmp eq i32 %lftr.wideiv, %S
@@ -166,8 +166,8 @@ for.body:                           ; preds = %for.body.preheader, %for.body
 
 ; Test that negative offsets are avoided for loads of double.
 %s.double = type { double, double, double }
-define void @f6(%s.double* nocapture %a,
-                %s.double* nocapture readonly %b,
+define void @f6(ptr nocapture %a,
+                ptr nocapture readonly %b,
                 i32 zeroext %S) {
 ; CHECK-Z13-LABEL: f6:
 ; CHECK-Z13-NOT: -{{[0-9]+}}(%r
@@ -186,16 +186,16 @@ for.cond.cleanup:                    ; preds = %for.cond.cleanup.loopexit, %entr
 
 for.body:                            ; preds = %for.body.preheader, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
-  %a1 = getelementptr inbounds %s.double, %s.double* %b, i64 %indvars.iv, i32 0
-  %tmp = load double, double* %a1, align 4
-  %b4 = getelementptr inbounds %s.double, %s.double* %b, i64 %indvars.iv, i32 1
-  %tmp1 = load double, double* %b4, align 4
+  %a1 = getelementptr inbounds %s.double, ptr %b, i64 %indvars.iv, i32 0
+  %tmp = load double, ptr %a1, align 4
+  %b4 = getelementptr inbounds %s.double, ptr %b, i64 %indvars.iv, i32 1
+  %tmp1 = load double, ptr %b4, align 4
   %add = fadd double %tmp, %tmp1
-  %c = getelementptr inbounds %s.double, %s.double* %b, i64 %indvars.iv, i32 2
-  %tmp2 = load double, double* %c, align 4
+  %c = getelementptr inbounds %s.double, ptr %b, i64 %indvars.iv, i32 2
+  %tmp2 = load double, ptr %c, align 4
   %add7 = fadd double %add, %tmp2
-  %a10 = getelementptr inbounds %s.double, %s.double* %a, i64 %indvars.iv, i32 0
-  store double %add7, double* %a10, align 4
+  %a10 = getelementptr inbounds %s.double, ptr %a, i64 %indvars.iv, i32 0
+  store double %add7, ptr %a10, align 4
   %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
   %lftr.wideiv = trunc i64 %indvars.iv.next to i32
   %exitcond = icmp eq i32 %lftr.wideiv, %S
@@ -204,8 +204,8 @@ for.body:                            ; preds = %for.body.preheader, %for.body
 
 ; Test that negative offsets are avoided for memory accesses of vector type.
 %s.vec = type { <4 x i32>, <4 x i32>, <4 x i32> }
-define void @f7(%s.vec* nocapture %a,
-                %s.vec* nocapture readonly %b,
+define void @f7(ptr nocapture %a,
+                ptr nocapture readonly %b,
                 i32 zeroext %S) {
 ; CHECK-Z13-LABEL: f7:
 ; CHECK-Z13-NOT: -{{[0-9]+}}(%r
@@ -224,16 +224,16 @@ for.cond.cleanup:                   ; preds = %for.cond.cleanup.loopexit, %entry
 
 for.body:                           ; preds = %for.body.preheader, %for.body
   %indvars.iv = phi i64 [ %indvars.iv.next, %for.body ], [ 0, %for.body.preheader ]
-  %a1 = getelementptr inbounds %s.vec, %s.vec* %b, i64 %indvars.iv, i32 0
-  %tmp = load <4 x i32>, <4 x i32>* %a1, align 4
-  %b4 = getelementptr inbounds %s.vec, %s.vec* %b, i64 %indvars.iv, i32 1
-  %tmp1 = load <4 x i32>, <4 x i32>* %b4, align 4
+  %a1 = getelementptr inbounds %s.vec, ptr %b, i64 %indvars.iv, i32 0
+  %tmp = load <4 x i32>, ptr %a1, align 4
+  %b4 = getelementptr inbounds %s.vec, ptr %b, i64 %indvars.iv, i32 1
+  %tmp1 = load <4 x i32>, ptr %b4, align 4
   %add = add <4 x i32> %tmp1, %tmp
-  %c = getelementptr inbounds %s.vec, %s.vec* %b, i64 %indvars.iv, i32 2
-  %tmp2 = load <4 x i32>, <4 x i32>* %c, align 4
+  %c = getelementptr inbounds %s.vec, ptr %b, i64 %indvars.iv, i32 2
+  %tmp2 = load <4 x i32>, ptr %c, align 4
   %add7 = add <4 x i32> %add, %tmp2
-  %a10 = getelementptr inbounds %s.vec, %s.vec* %a, i64 %indvars.iv, i32 0
-  store <4 x i32> %add7, <4 x i32>* %a10, align 4
+  %a10 = getelementptr inbounds %s.vec, ptr %a, i64 %indvars.iv, i32 0
+  store <4 x i32> %add7, ptr %a10, align 4
   %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
   %lftr.wideiv = trunc i64 %indvars.iv.next to i32
   %exitcond = icmp eq i32 %lftr.wideiv, %S
@@ -241,12 +241,12 @@ for.body:                           ; preds = %for.body.preheader, %for.body
 }
 
 ; Test that a memcpy loop does not get a lot of lays before each mvc (D12 and no index-reg).
-%0 = type { %1, %2* }
-%1 = type { %2*, %2* }
+%0 = type { %1, ptr }
+%1 = type { ptr, ptr }
 %2 = type <{ %3, i32, [4 x i8] }>
-%3 = type { i16*, i16*, i16* }
+%3 = type { ptr, ptr, ptr }
 
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1) #0
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1) #0
 
 define void @f8() {
 ; CHECK-Z13-LABEL: f8:
@@ -256,40 +256,32 @@ define void @f8() {
 ; CHECK-Z13-NEXT: mvc
 
 bb:
-  %tmp = load %0*, %0** undef, align 8
+  %tmp = load ptr, ptr undef, align 8
   br i1 undef, label %bb2, label %bb1
 
 bb1:                                              ; preds = %bb
   br label %bb2
 
 bb2:                                              ; preds = %bb1, %bb
-  %tmp3 = phi %0* [ %tmp, %bb ], [ undef, %bb1 ]
-  %tmp4 = phi %0* [ undef, %bb ], [ undef, %bb1 ]
+  %tmp3 = phi ptr [ %tmp, %bb ], [ undef, %bb1 ]
+  %tmp4 = phi ptr [ undef, %bb ], [ undef, %bb1 ]
   br label %bb5
 
 bb5:                                              ; preds = %bb5, %bb2
-  %tmp6 = phi %0* [ %tmp21, %bb5 ], [ %tmp3, %bb2 ]
-  %tmp7 = phi %0* [ %tmp20, %bb5 ], [ %tmp4, %bb2 ]
-  %tmp8 = getelementptr inbounds %0, %0* %tmp7, i64 -1
-  %tmp9 = getelementptr inbounds %0, %0* %tmp6, i64 -1
-  %tmp10 = bitcast %0* %tmp9 to i8*
-  %tmp11 = bitcast %0* %tmp8 to i8*
-  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp10, i8* align 8 %tmp11, i64 24, i1 false)
-  %tmp12 = getelementptr inbounds %0, %0* %tmp7, i64 -2
-  %tmp13 = getelementptr inbounds %0, %0* %tmp6, i64 -2
-  %tmp14 = bitcast %0* %tmp13 to i8*
-  %tmp15 = bitcast %0* %tmp12 to i8*
-  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp14, i8* align 8 %tmp15, i64 24, i1 false)
-  %tmp16 = getelementptr inbounds %0, %0* %tmp7, i64 -3
-  %tmp17 = getelementptr inbounds %0, %0* %tmp6, i64 -3
-  %tmp18 = bitcast %0* %tmp17 to i8*
-  %tmp19 = bitcast %0* %tmp16 to i8*
-  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp18, i8* align 8 %tmp19, i64 24, i1 false)
-  %tmp20 = getelementptr inbounds %0, %0* %tmp7, i64 -4
-  %tmp21 = getelementptr inbounds %0, %0* %tmp6, i64 -4
-  %tmp22 = bitcast %0* %tmp21 to i8*
-  %tmp23 = bitcast %0* %tmp20 to i8*
-  tail call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 8 %tmp22, i8* align 8 %tmp23, i64 24, i1 false)
+  %tmp6 = phi ptr [ %tmp21, %bb5 ], [ %tmp3, %bb2 ]
+  %tmp7 = phi ptr [ %tmp20, %bb5 ], [ %tmp4, %bb2 ]
+  %tmp8 = getelementptr inbounds %0, ptr %tmp7, i64 -1
+  %tmp9 = getelementptr inbounds %0, ptr %tmp6, i64 -1
+  tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %tmp9, ptr align 8 %tmp8, i64 24, i1 false)
+  %tmp12 = getelementptr inbounds %0, ptr %tmp7, i64 -2
+  %tmp13 = getelementptr inbounds %0, ptr %tmp6, i64 -2
+  tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %tmp13, ptr align 8 %tmp12, i64 24, i1 false)
+  %tmp16 = getelementptr inbounds %0, ptr %tmp7, i64 -3
+  %tmp17 = getelementptr inbounds %0, ptr %tmp6, i64 -3
+  tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %tmp17, ptr align 8 %tmp16, i64 24, i1 false)
+  %tmp20 = getelementptr inbounds %0, ptr %tmp7, i64 -4
+  %tmp21 = getelementptr inbounds %0, ptr %tmp6, i64 -4
+  tail call void @llvm.memcpy.p0.p0.i64(ptr align 8 %tmp21, ptr align 8 %tmp20, i64 24, i1 false)
   br label %bb5
 }
 
@@ -305,8 +297,8 @@ entry:
 
 for.body.i63:                                     ; preds = %for.inc.i, %entry
   %indvars.iv155.i = phi i64 [ 0, %entry ], [ %indvars.iv.next156.i.3, %for.inc.i ]
-  %arrayidx.i62 = getelementptr inbounds i32, i32* undef, i64 %indvars.iv155.i
-  %tmp = load i32, i32* %arrayidx.i62, align 4
+  %arrayidx.i62 = getelementptr inbounds i32, ptr undef, i64 %indvars.iv155.i
+  %tmp = load i32, ptr %arrayidx.i62, align 4
   %cmp9.i = icmp eq i32 %tmp, 0
   br i1 %cmp9.i, label %for.inc.i, label %if.then10.i
 
@@ -315,8 +307,8 @@ if.then10.i:                                      ; preds = %for.body.i63
 
 for.inc.i:                                        ; preds = %for.body.i63
   %indvars.iv.next156.i = or i64 %indvars.iv155.i, 1
-  %arrayidx.i62.1 = getelementptr inbounds i32, i32* undef, i64 %indvars.iv.next156.i
-  %tmp1 = load i32, i32* %arrayidx.i62.1, align 4
+  %arrayidx.i62.1 = getelementptr inbounds i32, ptr undef, i64 %indvars.iv.next156.i
+  %tmp1 = load i32, ptr %arrayidx.i62.1, align 4
   %indvars.iv.next156.i.3 = add nsw i64 %indvars.iv155.i, 4
   br label %for.body.i63
 }

diff  --git a/llvm/test/CodeGen/SystemZ/loop-02.ll b/llvm/test/CodeGen/SystemZ/loop-02.ll
index 3bc761930f40a..d1bb88e539d59 100644
--- a/llvm/test/CodeGen/SystemZ/loop-02.ll
+++ b/llvm/test/CodeGen/SystemZ/loop-02.ll
@@ -4,7 +4,7 @@
 ; RUN:   -no-integrated-as -disable-block-placement | FileCheck %s
 
 ; Test a loop that should be converted into dbr form and then use BRCTH.
-define void @f2(i32 *%src, i32 *%dest) {
+define void @f2(ptr %src, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: blah [[REG:%r[0-5]]]
 ; CHECK: [[LABEL:\.[^:]*]]:{{.*}} %loop
@@ -19,13 +19,13 @@ entry:
 loop:
   %count = phi i32 [ 0, %entry ], [ %next, %loop.next ]
   %next = add i32 %count, 1
-  %val = load volatile i32, i32 *%src
+  %val = load volatile i32, ptr %src
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %loop.next, label %loop.store
 
 loop.store:
   %add = add i32 %val, 1
-  store volatile i32 %add, i32 *%dest
+  store volatile i32 %add, ptr %dest
   br label %loop.next
 
 loop.next:

diff  --git a/llvm/test/CodeGen/SystemZ/loop-03.ll b/llvm/test/CodeGen/SystemZ/loop-03.ll
index e3230436affc2..f62e7f193528f 100644
--- a/llvm/test/CodeGen/SystemZ/loop-03.ll
+++ b/llvm/test/CodeGen/SystemZ/loop-03.ll
@@ -5,28 +5,28 @@
 ;
 ; RUN: llc -switch-peel-threshold=101 < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
-%0 = type { %0*, %0*, %0*, i32, %1*, i64, i64, i64, i64, i64, i64, %2, %5, %7 }
-%1 = type { i32, i32, i32 (%1*, i64, i32)*, i32 (%1*, i64, i64, i32, i8**)*, i32 (%1*, i64, i64, i64, i32)*, i32 (%1*)*, void (i8*)*, i8*, i8* }
-%2 = type { i64, i64, %3** }
-%3 = type { %4*, i64 }
-%4 = type { i64, i8* }
-%5 = type { i64, i64, %6** }
-%6 = type { i64, %4*, i32, i64, i8* }
-%7 = type { i64, i64, %8** }
-%8 = type { i64, i64*, i64*, %4*, i64, i32*, %5, i32, i64, i64 }
-
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8* nocapture writeonly, i8* nocapture readonly, i64, i1)
-
-define void @fun0(%0*) {
+%0 = type { ptr, ptr, ptr, i32, ptr, i64, i64, i64, i64, i64, i64, %2, %5, %7 }
+%1 = type { i32, i32, ptr, ptr, ptr, ptr, ptr, ptr, ptr }
+%2 = type { i64, i64, ptr }
+%3 = type { ptr, i64 }
+%4 = type { i64, ptr }
+%5 = type { i64, i64, ptr }
+%6 = type { i64, ptr, i32, i64, ptr }
+%7 = type { i64, i64, ptr }
+%8 = type { i64, ptr, ptr, ptr, i64, ptr, %5, i32, i64, i64 }
+
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1)
+
+define void @fun0(ptr) {
 ; CHECK-LABEL: .LBB0_4
 ; CHECK: =>  This Inner Loop Header
 ; CHECK-NOT: 16-byte Folded Spill
 ; CHECK-NOT: 16-byte Folded Reload
 
-  %2 = load i64, i64* undef, align 8
+  %2 = load i64, ptr undef, align 8
   %3 = udiv i64 128, %2
   %4 = mul i64 %3, %2
-  %5 = load i64, i64* undef, align 8
+  %5 = load i64, ptr undef, align 8
   switch i32 undef, label %36 [
     i32 1, label %6
     i32 2, label %7
@@ -55,13 +55,13 @@ define void @fun0(%0*) {
   unreachable
 
 ; <label>:12:                                     ; preds = %7, %6
-  %13 = getelementptr inbounds %0, %0* %0, i64 0, i32 5
+  %13 = getelementptr inbounds %0, ptr %0, i64 0, i32 5
   br label %14
 
 ; <label>:14:                                     ; preds = %31, %12
   %15 = phi i64 [ undef, %31 ], [ %5, %12 ]
   %16 = phi i64 [ %35, %31 ], [ undef, %12 ]
-  %17 = load i64, i64* %13, align 8
+  %17 = load i64, ptr %13, align 8
   %18 = icmp ult i64 %15, %17
   %19 = select i1 %18, i64 %15, i64 %17
   %20 = udiv i64 %19, %4
@@ -72,9 +72,9 @@ define void @fun0(%0*) {
 
 ; <label>:24:                                     ; preds = %24, %14
   %25 = phi i64 [ %23, %14 ], [ %27, %24 ]
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* undef, i8* nonnull undef, i64 %4, i1 false)
-  %26 = getelementptr inbounds i8, i8* null, i64 %4
-  store i8* %26, i8** undef, align 8
+  call void @llvm.memcpy.p0.p0.i64(ptr undef, ptr nonnull undef, i64 %4, i1 false)
+  %26 = getelementptr inbounds i8, ptr null, i64 %4
+  store ptr %26, ptr undef, align 8
   %27 = add i64 %25, -4
   %28 = icmp eq i64 %27, 0
   br i1 %28, label %31, label %24
@@ -83,11 +83,11 @@ define void @fun0(%0*) {
   br i1 undef, label %31, label %30
 
 ; <label>:30:                                     ; preds = %29
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %26, i8* nonnull undef, i64 %4, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %26, ptr nonnull undef, i64 %4, i1 false)
   br label %31
 
 ; <label>:31:                                     ; preds = %30, %29
-  %32 = call signext i32 undef(%1* undef, i64 %16, i32 signext 8)
+  %32 = call signext i32 undef(ptr undef, i64 %16, i32 signext 8)
   %33 = icmp eq i64 undef, 0
   %34 = select i1 %33, i64 0, i64 %19
   %35 = add i64 %34, %16
@@ -99,7 +99,7 @@ define void @fun0(%0*) {
 
 declare fp128 @llvm.pow.f128(fp128, fp128)
 
-define void @fun1(fp128*) {
+define void @fun1(ptr) {
 ; CHECK-LABEL: .LBB1_2
 ; CHECK: =>This Inner Loop Header: Depth=1
 ; CHECK-NOT: 16-byte Folded Spill
@@ -121,6 +121,6 @@ define void @fun1(fp128*) {
   %10 = fadd fp128 0xL00000000000000000000000000000000, %9
   %11 = fadd fp128 0xL00000000000000000000000000000000, %10
   %12 = tail call fp128 @llvm.pow.f128(fp128 %11, fp128 0xL00000000000000000000000000000000) #2
-  store fp128 %12, fp128* %0, align 8
+  store fp128 %12, ptr %0, align 8
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memchr-01.ll b/llvm/test/CodeGen/SystemZ/memchr-01.ll
index ba635007d07e7..657923d744ebf 100644
--- a/llvm/test/CodeGen/SystemZ/memchr-01.ll
+++ b/llvm/test/CodeGen/SystemZ/memchr-01.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -no-integrated-as | FileCheck %s
 
-declare i8 *@memchr(i8 *%src, i32 %char, i64 %len)
+declare ptr at memchr(ptr %src, i32 %char, i64 %len)
 
 ; Test a simple forwarded call.
-define i8 *@f1(i64 %len, i8 *%src, i32 %char) {
+define ptr at f1(i64 %len, ptr %src, i32 %char) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: agr %r2, %r3
 ; CHECK-DAG: llcr %r0, %r4
@@ -15,13 +15,13 @@ define i8 *@f1(i64 %len, i8 *%src, i32 %char) {
 ; CHECK: blr %r14
 ; CHECK: lghi %r2, 0
 ; CHECK: br %r14
-  %res = call i8 *@memchr(i8 *%src, i32 %char, i64 %len)
-  ret i8 *%res
+  %res = call ptr at memchr(ptr %src, i32 %char, i64 %len)
+  ret ptr %res
 }
 
 ; Test a doubled call with no use of %r0 in between.  There should be a
 ; single load of %r0.
-define i8 *@f2(i8 *%src, i8 *%charptr, i64 %len) {
+define ptr at f2(ptr %src, ptr %charptr, i64 %len) {
 ; CHECK-LABEL: f2:
 ; CHECK: llc %r0, 0(%r3)
 ; CHECK-NOT: %r0
@@ -29,16 +29,16 @@ define i8 *@f2(i8 *%src, i8 *%charptr, i64 %len) {
 ; CHECK-NOT: %r0
 ; CHECK: srst %r2, [[RES1]]
 ; CHECK: br %r14
-  %char = load volatile i8, i8 *%charptr
+  %char = load volatile i8, ptr %charptr
   %charext = zext i8 %char to i32
-  %res1 = call i8 *@memchr(i8 *%src, i32 %charext, i64 %len)
-  %res2 = call i8 *@memchr(i8 *%res1, i32 %charext, i64 %len)
-  ret i8 *%res2
+  %res1 = call ptr at memchr(ptr %src, i32 %charext, i64 %len)
+  %res2 = call ptr at memchr(ptr %res1, i32 %charext, i64 %len)
+  ret ptr %res2
 }
 
 ; Test a doubled call with a use of %r0 in between.  %r0 must be loaded
 ; for each loop.
-define i8 *@f3(i8 *%src, i8 *%charptr, i64 %len) {
+define ptr at f3(ptr %src, ptr %charptr, i64 %len) {
 ; CHECK-LABEL: f3:
 ; CHECK: llc [[CHAR:%r[1-5]]], 0(%r3)
 ; CHECK: lr %r0, [[CHAR]]
@@ -48,10 +48,10 @@ define i8 *@f3(i8 *%src, i8 *%charptr, i64 %len) {
 ; CHECK: lr %r0, [[CHAR]]
 ; CHECK: srst %r2, [[RES1]]
 ; CHECK: br %r14
-  %char = load volatile i8, i8 *%charptr
+  %char = load volatile i8, ptr %charptr
   %charext = zext i8 %char to i32
-  %res1 = call i8 *@memchr(i8 *%src, i32 %charext, i64 %len)
+  %res1 = call ptr at memchr(ptr %src, i32 %charext, i64 %len)
   call void asm sideeffect "blah $0", "{r0}" (i32 0)
-  %res2 = call i8 *@memchr(i8 *%res1, i32 %charext, i64 %len)
-  ret i8 *%res2
+  %res2 = call ptr at memchr(ptr %res1, i32 %charext, i64 %len)
+  ret ptr %res2
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memchr-nobuiltin.ll b/llvm/test/CodeGen/SystemZ/memchr-nobuiltin.ll
index f94e1162ae4e3..e8a56524d1147 100644
--- a/llvm/test/CodeGen/SystemZ/memchr-nobuiltin.ll
+++ b/llvm/test/CodeGen/SystemZ/memchr-nobuiltin.ll
@@ -3,14 +3,14 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i8 *@memchr(i8 *%src, i16 %char, i32 %len)
+declare ptr at memchr(ptr %src, i16 %char, i32 %len)
 
 ; Test a simple forwarded call.
-define i8 *@f1(i8 *%src, i16 %char, i32 %len) {
+define ptr at f1(ptr %src, i16 %char, i32 %len) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: srst
 ; CHECK: brasl %r14, memchr
 ; CHECK: br %r14
-  %res = call i8 *@memchr(i8 *%src, i16 %char, i32 %len) nobuiltin
-  ret i8 *%res
+  %res = call ptr at memchr(ptr %src, i16 %char, i32 %len) nobuiltin
+  ret ptr %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memcmp-01.ll b/llvm/test/CodeGen/SystemZ/memcmp-01.ll
index ccc89283a5b12..87abd57cc035c 100644
--- a/llvm/test/CodeGen/SystemZ/memcmp-01.ll
+++ b/llvm/test/CodeGen/SystemZ/memcmp-01.ll
@@ -2,41 +2,41 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare signext i32 @memcmp(i8 *%src1, i8 *%src2, i64 %size)
+declare signext i32 @memcmp(ptr %src1, ptr %src2, i64 %size)
 
 ; Zero-length comparisons should be optimized away.
-define i32 @f1(i8 *%src1, i8 *%src2) {
+define i32 @f1(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f1:
 ; CHECK: lhi %r2, 0
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 0)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 0)
   ret i32 %res
 }
 
 ; Check a case where the result is used as an integer.
-define i32 @f2(i8 *%src1, i8 *%src2) {
+define i32 @f2(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f2:
 ; CHECK: clc 0(2,%r3), 0(%r2)
 ; CHECK: ipm %r2
 ; CHECK: sll %r2, 2
 ; CHECK: sra %r2, 30
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 2)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 2)
   ret i32 %res
 }
 
 ; Check a case where the result is tested for equality.
-define void @f3(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f3(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: clc 0(3,%r3), 0(%r2)
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 3)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 3)
   %cmp = icmp eq i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -44,18 +44,18 @@ exit:
 }
 
 ; Check a case where the result is tested for inequality.
-define void @f4(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f4(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: clc 0(4,%r3), 0(%r2)
 ; CHECK-NEXT: blhr %r14
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 4)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 4)
   %cmp = icmp ne i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -63,18 +63,18 @@ exit:
 }
 
 ; Check a case where the result is tested via slt.
-define void @f5(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f5(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: clc 0(5,%r3), 0(%r2)
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 5)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 5)
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -82,18 +82,18 @@ exit:
 }
 
 ; Check a case where the result is tested for sgt.
-define void @f6(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f6(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: clc 0(6,%r3), 0(%r2)
 ; CHECK-NEXT: blr %r14
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 6)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 6)
   %cmp = icmp sgt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -102,7 +102,7 @@ exit:
 
 ; Check the upper end of the CLC range.  Here the result is used both as
 ; an integer and for branching.
-define i32 @f7(i8 *%src1, i8 *%src2, i32 *%dest) {
+define i32 @f7(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK: clc 0(256,%r3), 0(%r2)
 ; CHECK: ipm %r2
@@ -111,12 +111,12 @@ define i32 @f7(i8 *%src1, i8 *%src2, i32 *%dest) {
 ; CHECK: blr %r14
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 256)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 256)
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -124,7 +124,7 @@ exit:
 }
 
 ; 257 bytes needs two CLCs.
-define i32 @f8(i8 *%src1, i8 *%src2) {
+define i32 @f8(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f8:
 ; CHECK: clc 0(256,%r3), 0(%r2)
 ; CHECK: jlh [[LABEL:\..*]]
@@ -132,12 +132,12 @@ define i32 @f8(i8 *%src1, i8 *%src2) {
 ; CHECK: [[LABEL]]:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 257)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 257)
   ret i32 %res
 }
 
 ; Test a comparison of 258 bytes in which the CC result can be used directly.
-define void @f9(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f9(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: clc 0(256,%r3), 0(%r2)
 ; CHECK: jlh [[LABEL:\..*]]
@@ -146,12 +146,12 @@ define void @f9(i8 *%src1, i8 *%src2, i32 *%dest) {
 ; CHECK-NEXT: bhr %r14
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 257)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 257)
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -159,7 +159,7 @@ exit:
 }
 
 ; Test the largest size that can use two CLCs.
-define i32 @f10(i8 *%src1, i8 *%src2) {
+define i32 @f10(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f10:
 ; CHECK: clc 0(256,%r3), 0(%r2)
 ; CHECK: jlh [[LABEL:\..*]]
@@ -167,12 +167,12 @@ define i32 @f10(i8 *%src1, i8 *%src2) {
 ; CHECK: [[LABEL]]:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 512)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 512)
   ret i32 %res
 }
 
 ; Test the smallest size that needs 3 CLCs.
-define i32 @f11(i8 *%src1, i8 *%src2) {
+define i32 @f11(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f11:
 ; CHECK: clc 0(256,%r3), 0(%r2)
 ; CHECK: jlh [[LABEL:\..*]]
@@ -182,12 +182,12 @@ define i32 @f11(i8 *%src1, i8 *%src2) {
 ; CHECK: [[LABEL]]:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 513)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 513)
   ret i32 %res
 }
 
 ; Test the largest size than can use 3 CLCs.
-define i32 @f12(i8 *%src1, i8 *%src2) {
+define i32 @f12(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f12:
 ; CHECK: clc 0(256,%r3), 0(%r2)
 ; CHECK: jlh [[LABEL:\..*]]
@@ -197,13 +197,13 @@ define i32 @f12(i8 *%src1, i8 *%src2) {
 ; CHECK: [[LABEL]]:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 768)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 768)
   ret i32 %res
 }
 
 ; The next size up uses a loop instead.  We leave the more complicated
 ; loop tests to memcpy-01.ll, which shares the same form.
-define i32 @f13(i8 *%src1, i8 *%src2) {
+define i32 @f13(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f13:
 ; CHECK: lghi [[COUNT:%r[0-5]]], 3
 ; CHECK: [[LOOP:.L[^:]*]]:
@@ -216,11 +216,11 @@ define i32 @f13(i8 *%src1, i8 *%src2) {
 ; CHECK: [[LABEL]]:
 ; CHECK: ipm [[REG:%r[0-5]]]
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 769)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 769)
   ret i32 %res
 }
 
-define i32 @f14(i8 *%src1, i8 *%src2, i64 %Len) {
+define i32 @f14(ptr %src1, ptr %src2, i64 %Len) {
 ; CHECK-LABEL: f14:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r4, -1
@@ -243,6 +243,6 @@ define i32 @f14(i8 *%src1, i8 *%src2, i64 %Len) {
 ; CHECK-NEXT:    sll %r2, 2
 ; CHECK-NEXT:    sra %r2, 30
 ; CHECK-NEXT:    br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 %Len)
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 %Len)
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memcmp-02.ll b/llvm/test/CodeGen/SystemZ/memcmp-02.ll
index f265b9e54913c..3609b9427910d 100644
--- a/llvm/test/CodeGen/SystemZ/memcmp-02.ll
+++ b/llvm/test/CodeGen/SystemZ/memcmp-02.ll
@@ -5,11 +5,11 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -misched=shuffle | FileCheck %s
 ; REQUIRES: asserts
 
-declare i32 @memcmp(i8* nocapture, i8* nocapture, i64)
+declare i32 @memcmp(ptr nocapture, ptr nocapture, i64)
 
 define i32 @fun() {
 ; CHECK-LABEL: fun
-  %call = call signext i32 @memcmp(i8* nonnull undef, i8* nonnull undef, i64 2048)
+  %call = call signext i32 @memcmp(ptr nonnull undef, ptr nonnull undef, i64 2048)
   %cmp = icmp eq i32 %call, 0
   br i1 %cmp, label %labT, label %labF
 

diff  --git a/llvm/test/CodeGen/SystemZ/memcmp-03.ll b/llvm/test/CodeGen/SystemZ/memcmp-03.ll
index eb11cb187e7d1..f11e9f08f57da 100644
--- a/llvm/test/CodeGen/SystemZ/memcmp-03.ll
+++ b/llvm/test/CodeGen/SystemZ/memcmp-03.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 ; REQUIRES: asserts
 
-declare i32 @memcmp(i8* nocapture, i8* nocapture, i64)
+declare i32 @memcmp(ptr nocapture, ptr nocapture, i64)
 
 define hidden void @fun() {
 ; CHECK-LABEL: fun
@@ -12,7 +12,7 @@ entry:
   br i1 undef, label %end, label %call
 
 call:
-  %res = tail call signext i32 @memcmp(i8* noundef undef, i8* noundef undef, i64 noundef %len)
+  %res = tail call signext i32 @memcmp(ptr noundef undef, ptr noundef undef, i64 noundef %len)
   unreachable
 
 end:

diff  --git a/llvm/test/CodeGen/SystemZ/memcmp-nobuiltin.ll b/llvm/test/CodeGen/SystemZ/memcmp-nobuiltin.ll
index 5703552289f37..30a7110a921c6 100644
--- a/llvm/test/CodeGen/SystemZ/memcmp-nobuiltin.ll
+++ b/llvm/test/CodeGen/SystemZ/memcmp-nobuiltin.ll
@@ -3,40 +3,40 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare signext i32 @memcmp(i8 *%src1, i8 *%src2, i64 %size)
+declare signext i32 @memcmp(ptr %src1, ptr %src2, i64 %size)
 
 ; Zero-length comparisons should be optimized away.
-define i32 @f1(i8 *%src1, i8 *%src2) {
+define i32 @f1(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 0) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 0) nobuiltin
   ret i32 %res
 }
 
 ; Check a case where the result is used as an integer.
-define i32 @f2(i8 *%src1, i8 *%src2) {
+define i32 @f2(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 2) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 2) nobuiltin
   ret i32 %res
 }
 
 ; Check a case where the result is tested for equality.
-define void @f3(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f3(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 3) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 3) nobuiltin
   %cmp = icmp eq i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -44,18 +44,18 @@ exit:
 }
 
 ; Check a case where the result is tested for inequality.
-define void @f4(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f4(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 4) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 4) nobuiltin
   %cmp = icmp ne i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -63,18 +63,18 @@ exit:
 }
 
 ; Check a case where the result is tested via slt.
-define void @f5(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f5(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 5) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 5) nobuiltin
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -82,18 +82,18 @@ exit:
 }
 
 ; Check a case where the result is tested for sgt.
-define void @f6(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f6(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 6) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 6) nobuiltin
   %cmp = icmp sgt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -102,18 +102,18 @@ exit:
 
 ; Check the upper end of the CLC range.  Here the result is used both as
 ; an integer and for branching.
-define i32 @f7(i8 *%src1, i8 *%src2, i32 *%dest) {
+define i32 @f7(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 256) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 256) nobuiltin
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -121,28 +121,28 @@ exit:
 }
 
 ; 257 bytes needs two CLCs.
-define i32 @f8(i8 *%src1, i8 *%src2) {
+define i32 @f8(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 257) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 257) nobuiltin
   ret i32 %res
 }
 
 ; Test a comparison of 258 bytes in which the CC result can be used directly.
-define void @f9(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f9(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
 entry:
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 257) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 257) nobuiltin
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -150,42 +150,42 @@ exit:
 }
 
 ; Test the largest size that can use two CLCs.
-define i32 @f10(i8 *%src1, i8 *%src2) {
+define i32 @f10(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 512) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 512) nobuiltin
   ret i32 %res
 }
 
 ; Test the smallest size that needs 3 CLCs.
-define i32 @f11(i8 *%src1, i8 *%src2) {
+define i32 @f11(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 513) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 513) nobuiltin
   ret i32 %res
 }
 
 ; Test the largest size than can use 3 CLCs.
-define i32 @f12(i8 *%src1, i8 *%src2) {
+define i32 @f12(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 768) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 768) nobuiltin
   ret i32 %res
 }
 
 ; The next size up uses a loop instead.  We leave the more complicated
 ; loop tests to memcpy-01.ll, which shares the same form.
-define i32 @f13(i8 *%src1, i8 *%src2) {
+define i32 @f13(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f13:
 ; CHECK-NOT: clc
 ; CHECK: brasl %r14, memcmp
 ; CHECK: br %r14
-  %res = call i32 @memcmp(i8 *%src1, i8 *%src2, i64 769) nobuiltin
+  %res = call i32 @memcmp(ptr %src1, ptr %src2, i64 769) nobuiltin
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memcpy-01.ll b/llvm/test/CodeGen/SystemZ/memcpy-01.ll
index 63f334712895d..a2ccb5f36be4d 100644
--- a/llvm/test/CodeGen/SystemZ/memcpy-01.ll
+++ b/llvm/test/CodeGen/SystemZ/memcpy-01.ll
@@ -2,98 +2,98 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8 *nocapture, i8 *nocapture, i32, i1) nounwind
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8 *nocapture, i8 *nocapture, i64, i1) nounwind
-declare void @foo(i8 *, i8 *)
+declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture, i32, i1) nounwind
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind
+declare void @foo(ptr, ptr)
 
 ; Test a no-op move, i32 version.
-define void @f1(i8* %dest, i8* %src) {
+define void @f1(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK-NOT: %r3
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 0, i1 false)
+  call void @llvm.memcpy.p0.p0.i32(ptr %dest, ptr %src, i32 0, i1 false)
   ret void
 }
 
 ; Test a no-op move, i64 version.
-define void @f2(i8* %dest, i8* %src) {
+define void @f2(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK-NOT: %r3
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 0, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 0, i1 false)
   ret void
 }
 
 ; Test a 1-byte move, i32 version.
-define void @f3(i8* %dest, i8* %src) {
+define void @f3(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvc 0(1,%r2), 0(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 1, i1 false)
+  call void @llvm.memcpy.p0.p0.i32(ptr %dest, ptr %src, i32 1, i1 false)
   ret void
 }
 
 ; Test a 1-byte move, i64 version.
-define void @f4(i8* %dest, i8* %src) {
+define void @f4(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvc 0(1,%r2), 0(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1, i1 false)
   ret void
 }
 
 ; Test the upper range of a single MVC, i32 version.
-define void @f5(i8* %dest, i8* %src) {
+define void @f5(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 256, i1 false)
+  call void @llvm.memcpy.p0.p0.i32(ptr %dest, ptr %src, i32 256, i1 false)
   ret void
 }
 
 ; Test the upper range of a single MVC, i64 version.
-define void @f6(i8* %dest, i8* %src) {
+define void @f6(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 256, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 256, i1 false)
   ret void
 }
 
 ; Test the first case that needs two MVCs.
-define void @f7(i8* %dest, i8* %src) {
+define void @f7(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: mvc 256(1,%r2), 256(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 257, i1 false)
+  call void @llvm.memcpy.p0.p0.i32(ptr %dest, ptr %src, i32 257, i1 false)
   ret void
 }
 
 ; Test the last-but-one case that needs two MVCs.
-define void @f8(i8* %dest, i8* %src) {
+define void @f8(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: mvc 256(255,%r2), 256(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 511, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 511, i1 false)
   ret void
 }
 
 ; Test the last case that needs two MVCs.
-define void @f9(i8* %dest, i8* %src) {
+define void @f9(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: mvc 256(256,%r2), 256(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 512, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 512, i1 false)
   ret void
 }
 
 ; Test an arbitrary value that uses straight-line code.
-define void @f10(i8* %dest, i8* %src) {
+define void @f10(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: mvc 256(256,%r2), 256(%r3)
@@ -101,12 +101,12 @@ define void @f10(i8* %dest, i8* %src) {
 ; CHECK: mvc 768(256,%r2), 768(%r3)
 ; CHECK: mvc 1024(255,%r2), 1024(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1279, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1279, i1 false)
   ret void
 }
 
 ; ...and again in cases where not all parts are in range of MVC.
-define void @f11(i8* %srcbase, i8* %destbase) {
+define void @f11(ptr %srcbase, ptr %destbase) {
 ; CHECK-LABEL: f11:
 ; CHECK: mvc 4000(256,%r2), 3500(%r3)
 ; CHECK: lay [[NEWDEST:%r[1-5]]], 4256(%r2)
@@ -116,9 +116,9 @@ define void @f11(i8* %srcbase, i8* %destbase) {
 ; CHECK: mvc 512(256,[[NEWDEST]]), 0([[NEWSRC]])
 ; CHECK: mvc 768(255,[[NEWDEST]]), 256([[NEWSRC]])
 ; CHECK: br %r14
-  %dest = getelementptr i8, i8* %srcbase, i64 4000
-  %src = getelementptr i8, i8* %destbase, i64 3500
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1279, i1 false)
+  %dest = getelementptr i8, ptr %srcbase, i64 4000
+  %src = getelementptr i8, ptr %destbase, i64 3500
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1279, i1 false)
   ret void
 }
 
@@ -135,11 +135,11 @@ define void @f12() {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %arr = alloca [6000 x i8]
-  %dest = getelementptr [6000 x i8], [6000 x i8] *%arr, i64 0, i64 3900
-  %src = getelementptr [6000 x i8], [6000 x i8] *%arr, i64 0, i64 1924
-  call void @foo(i8* %dest, i8* %src)
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1279, i1 false)
-  call void @foo(i8* %dest, i8* %src)
+  %dest = getelementptr [6000 x i8], ptr %arr, i64 0, i64 3900
+  %src = getelementptr [6000 x i8], ptr %arr, i64 0, i64 1924
+  call void @foo(ptr %dest, ptr %src)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1279, i1 false)
+  call void @foo(ptr %dest, ptr %src)
   ret void
 }
 
@@ -156,16 +156,16 @@ define void @f13() {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %arr = alloca [6000 x i8]
-  %dest = getelementptr [6000 x i8], [6000 x i8] *%arr, i64 0, i64 24
-  %src = getelementptr [6000 x i8], [6000 x i8] *%arr, i64 0, i64 3650
-  call void @foo(i8* %dest, i8* %src)
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1279, i1 false)
-  call void @foo(i8* %dest, i8* %src)
+  %dest = getelementptr [6000 x i8], ptr %arr, i64 0, i64 24
+  %src = getelementptr [6000 x i8], ptr %arr, i64 0, i64 3650
+  call void @foo(ptr %dest, ptr %src)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1279, i1 false)
+  call void @foo(ptr %dest, ptr %src)
   ret void
 }
 
 ; Test the last case that is done using straight-line code.
-define void @f14(i8* %dest, i8* %src) {
+define void @f14(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f14:
 ; CHECK: mvc 0(256,%r2), 0(%r3)
 ; CHECK: mvc 256(256,%r2), 256(%r3)
@@ -174,12 +174,12 @@ define void @f14(i8* %dest, i8* %src) {
 ; CHECK: mvc 1024(256,%r2), 1024(%r3)
 ; CHECK: mvc 1280(256,%r2), 1280(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1536, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1536, i1 false)
   ret void
 }
 
 ; Test the first case that is done using a loop.
-define void @f15(i8* %dest, i8* %src) {
+define void @f15(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f15:
 ; CHECK: lghi [[COUNT:%r[0-5]]], 6
 ; CHECK: [[LABEL:\.L[^:]*]]:
@@ -190,7 +190,7 @@ define void @f15(i8* %dest, i8* %src) {
 ; CHECK: brctg [[COUNT]], [[LABEL]]
 ; CHECK: mvc 0(1,%r2), 0(%r3)
 ; CHECK: br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1537, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 1537, i1 false)
   ret void
 }
 
@@ -210,16 +210,15 @@ define void @f16() {
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: br %r14
   %arr = alloca [3200 x i8]
-  %dest = getelementptr [3200 x i8], [3200 x i8] *%arr, i64 0, i64 1600
-  %src = getelementptr [3200 x i8], [3200 x i8] *%arr, i64 0, i64 0
-  call void @foo(i8* %dest, i8* %src)
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 1537, i1 false)
-  call void @foo(i8* %dest, i8* %src)
+  %dest = getelementptr [3200 x i8], ptr %arr, i64 0, i64 1600
+  call void @foo(ptr %dest, ptr %arr)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %arr, i64 1537, i1 false)
+  call void @foo(ptr %dest, ptr %arr)
   ret void
 }
 
 ; Test a variable length loop.
-define void @f17(i8* %dest, i8* %src, i64 %Len) {
+define void @f17(ptr %dest, ptr %src, i64 %Len) {
 ; CHECK-LABEL: f17:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r4, -1
@@ -236,7 +235,7 @@ define void @f17(i8* %dest, i8* %src, i64 %Len) {
 ; CHECK-NEXT:  .LBB16_3:
 ; CHECK-NEXT:    exrl %r4, .Ltmp0
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* %dest, i8* %src, i64 %Len, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr %dest, ptr %src, i64 %Len, i1 false)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/memcpy-02.ll b/llvm/test/CodeGen/SystemZ/memcpy-02.ll
index a49e43b3a121a..87f3d831743d1 100644
--- a/llvm/test/CodeGen/SystemZ/memcpy-02.ll
+++ b/llvm/test/CodeGen/SystemZ/memcpy-02.ll
@@ -12,253 +12,253 @@
 @g5dst = external dso_local global fp128, align 16
 
 ; Test the simple i8 case.
-define dso_local void @f1(i8 *%ptr1) {
+define dso_local void @f1(ptr %ptr1) {
 ; CHECK-LABEL: f1:
 ; CHECK: mvc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
-  store i8 %val, i8 *%ptr2
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
+  store i8 %val, ptr %ptr2
   ret void
 }
 
 ; Test i8 cases where the value is zero-extended to 32 bits.
-define dso_local void @f2(i8 *%ptr1) {
+define dso_local void @f2(ptr %ptr1) {
 ; CHECK-LABEL: f2:
 ; CHECK: mvc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %ext = zext i8 %val to i32
   %trunc = trunc i32 %ext to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i8 cases where the value is zero-extended to 64 bits.
-define dso_local void @f3(i8 *%ptr1) {
+define dso_local void @f3(ptr %ptr1) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %ext = zext i8 %val to i64
   %trunc = trunc i64 %ext to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i8 cases where the value is sign-extended to 32 bits.
-define dso_local void @f4(i8 *%ptr1) {
+define dso_local void @f4(ptr %ptr1) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %ext = sext i8 %val to i32
   %trunc = trunc i32 %ext to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i8 cases where the value is sign-extended to 64 bits.
-define dso_local void @f5(i8 *%ptr1) {
+define dso_local void @f5(ptr %ptr1) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
   %ext = sext i8 %val to i64
   %trunc = trunc i64 %ext to i8
-  store i8 %trunc, i8 *%ptr2
+  store i8 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test the simple i16 case.
-define dso_local void @f6(i16 *%ptr1) {
+define dso_local void @f6(ptr %ptr1) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
-  store i16 %val, i16 *%ptr2
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
+  store i16 %val, ptr %ptr2
   ret void
 }
 
 ; Test i16 cases where the value is zero-extended to 32 bits.
-define dso_local void @f7(i16 *%ptr1) {
+define dso_local void @f7(ptr %ptr1) {
 ; CHECK-LABEL: f7:
 ; CHECK: mvc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
   %ext = zext i16 %val to i32
   %trunc = trunc i32 %ext to i16
-  store i16 %trunc, i16 *%ptr2
+  store i16 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i16 cases where the value is zero-extended to 64 bits.
-define dso_local void @f8(i16 *%ptr1) {
+define dso_local void @f8(ptr %ptr1) {
 ; CHECK-LABEL: f8:
 ; CHECK: mvc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
   %ext = zext i16 %val to i64
   %trunc = trunc i64 %ext to i16
-  store i16 %trunc, i16 *%ptr2
+  store i16 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i16 cases where the value is sign-extended to 32 bits.
-define dso_local void @f9(i16 *%ptr1) {
+define dso_local void @f9(ptr %ptr1) {
 ; CHECK-LABEL: f9:
 ; CHECK: mvc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
   %ext = sext i16 %val to i32
   %trunc = trunc i32 %ext to i16
-  store i16 %trunc, i16 *%ptr2
+  store i16 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i16 cases where the value is sign-extended to 64 bits.
-define dso_local void @f10(i16 *%ptr1) {
+define dso_local void @f10(ptr %ptr1) {
 ; CHECK-LABEL: f10:
 ; CHECK: mvc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
   %ext = sext i16 %val to i64
   %trunc = trunc i64 %ext to i16
-  store i16 %trunc, i16 *%ptr2
+  store i16 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test the simple i32 case.
-define dso_local void @f11(i32 *%ptr1) {
+define dso_local void @f11(ptr %ptr1) {
 ; CHECK-LABEL: f11:
 ; CHECK: mvc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
-  store i32 %val, i32 *%ptr2
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
+  store i32 %val, ptr %ptr2
   ret void
 }
 
 ; Test i32 cases where the value is zero-extended to 64 bits.
-define dso_local void @f12(i32 *%ptr1) {
+define dso_local void @f12(ptr %ptr1) {
 ; CHECK-LABEL: f12:
 ; CHECK: mvc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
   %ext = zext i32 %val to i64
   %trunc = trunc i64 %ext to i32
-  store i32 %trunc, i32 *%ptr2
+  store i32 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test i32 cases where the value is sign-extended to 64 bits.
-define dso_local void @f13(i32 *%ptr1) {
+define dso_local void @f13(ptr %ptr1) {
 ; CHECK-LABEL: f13:
 ; CHECK: mvc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
   %ext = sext i32 %val to i64
   %trunc = trunc i64 %ext to i32
-  store i32 %trunc, i32 *%ptr2
+  store i32 %trunc, ptr %ptr2
   ret void
 }
 
 ; Test the i64 case.
-define dso_local void @f14(i64 *%ptr1) {
+define dso_local void @f14(ptr %ptr1) {
 ; CHECK-LABEL: f14:
 ; CHECK: mvc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  store i64 %val, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  store i64 %val, ptr %ptr2
   ret void
 }
 
 ; Test the f32 case.
-define dso_local void @f15(float *%ptr1) {
+define dso_local void @f15(ptr %ptr1) {
 ; CHECK-LABEL: f15:
 ; CHECK: mvc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr float, float *%ptr1, i64 1
-  %val = load float, float *%ptr1
-  store float %val, float *%ptr2
+  %ptr2 = getelementptr float, ptr %ptr1, i64 1
+  %val = load float, ptr %ptr1
+  store float %val, ptr %ptr2
   ret void
 }
 
 ; Test the f64 case.
-define dso_local void @f16(double *%ptr1) {
+define dso_local void @f16(ptr %ptr1) {
 ; CHECK-LABEL: f16:
 ; CHECK: mvc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr double, double *%ptr1, i64 1
-  %val = load double, double *%ptr1
-  store double %val, double *%ptr2
+  %ptr2 = getelementptr double, ptr %ptr1, i64 1
+  %val = load double, ptr %ptr1
+  store double %val, ptr %ptr2
   ret void
 }
 
 ; Test the f128 case.
-define dso_local void @f17(fp128 *%ptr1) {
+define dso_local void @f17(ptr %ptr1) {
 ; CHECK-LABEL: f17:
 ; CHECK: mvc 16(16,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr fp128, fp128 *%ptr1, i64 1
-  %val = load fp128, fp128 *%ptr1
-  store fp128 %val, fp128 *%ptr2
+  %ptr2 = getelementptr fp128, ptr %ptr1, i64 1
+  %val = load fp128, ptr %ptr1
+  store fp128 %val, ptr %ptr2
   ret void
 }
 
 ; Make sure that we don't use MVC if the load is volatile.
-define dso_local void @f18(i64 *%ptr1) {
+define dso_local void @f18(ptr %ptr1) {
 ; CHECK-LABEL: f18:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load volatile i64, i64 *%ptr1
-  store i64 %val, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load volatile i64, ptr %ptr1
+  store i64 %val, ptr %ptr2
   ret void
 }
 
 ; ...likewise the store.
-define dso_local void @f19(i64 *%ptr1) {
+define dso_local void @f19(ptr %ptr1) {
 ; CHECK-LABEL: f19:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  store volatile i64 %val, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  store volatile i64 %val, ptr %ptr2
   ret void
 }
 
 ; Test that MVC is not used for aligned loads and stores if there is
 ; no way of telling whether they alias.  We don't want to use MVC in
 ; cases where the addresses could be equal.
-define dso_local void @f20(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f20(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f20:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1
-  store i64 %val, i64 *%ptr2
+  %val = load i64, ptr %ptr1
+  store i64 %val, ptr %ptr2
   ret void
 }
 
 ; ...and again for unaligned loads and stores.
-define dso_local void @f21(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f21(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f21:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2
-  store i64 %val, i64 *%ptr2, align 2
+  %val = load i64, ptr %ptr1, align 2
+  store i64 %val, ptr %ptr2, align 2
   ret void
 }
 
@@ -268,120 +268,120 @@ define dso_local void @f22(i64 %base) {
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
   %add = add i64 %base, 1
-  %ptr1 = inttoptr i64 %base to i64 *
-  %ptr2 = inttoptr i64 %add to i64 *
-  %val = load i64, i64 *%ptr1, align 1
-  store i64 %val, i64 *%ptr2, align 1
+  %ptr1 = inttoptr i64 %base to ptr
+  %ptr2 = inttoptr i64 %add to ptr
+  %val = load i64, ptr %ptr1, align 1
+  store i64 %val, ptr %ptr2, align 1
   ret void
 }
 
 ; Test that we can use MVC for global addresses for i8.
-define dso_local void @f23(i8 *%ptr) {
+define dso_local void @f23(ptr %ptr) {
 ; CHECK-LABEL: f23:
 ; CHECK-DAG: larl [[SRC:%r[0-5]]], g1src
 ; CHECK-DAG: larl [[DST:%r[0-5]]], g1dst
 ; CHECK: mvc 0(1,[[DST]]), 0([[SRC]])
 ; CHECK: br %r14
-  %val = load i8, i8 *@g1src
-  store i8 %val, i8 *@g1dst
+  %val = load i8, ptr at g1src
+  store i8 %val, ptr at g1dst
   ret void
 }
 
 ; Test that we use LHRL and STHRL for i16.
-define dso_local void @f24(i16 *%ptr) {
+define dso_local void @f24(ptr %ptr) {
 ; CHECK-LABEL: f24:
 ; CHECK: lhrl [[REG:%r[0-5]]], g2src
 ; CHECK: sthrl [[REG]], g2dst
 ; CHECK: br %r14
-  %val = load i16, i16 *@g2src
-  store i16 %val, i16 *@g2dst
+  %val = load i16, ptr at g2src
+  store i16 %val, ptr at g2dst
   ret void
 }
 
 ; Test that we use LRL for i32.
-define dso_local void @f25(i32 *%ptr) {
+define dso_local void @f25(ptr %ptr) {
 ; CHECK-LABEL: f25:
 ; CHECK: lrl [[REG:%r[0-5]]], g3
 ; CHECK: st [[REG]], 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *@g3
-  store i32 %val, i32 *%ptr
+  %val = load i32, ptr at g3
+  store i32 %val, ptr %ptr
   ret void
 }
 
 ; ...likewise STRL.
-define dso_local void @f26(i32 *%ptr) {
+define dso_local void @f26(ptr %ptr) {
 ; CHECK-LABEL: f26:
 ; CHECK: l [[REG:%r[0-5]]], 0(%r2)
 ; CHECK: strl [[REG]], g3
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
-  store i32 %val, i32 *@g3
+  %val = load i32, ptr %ptr
+  store i32 %val, ptr at g3
   ret void
 }
 
 ; Test that we use LGRL for i64.
-define dso_local void @f27(i64 *%ptr) {
+define dso_local void @f27(ptr %ptr) {
 ; CHECK-LABEL: f27:
 ; CHECK: lgrl [[REG:%r[0-5]]], g4
 ; CHECK: stg [[REG]], 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *@g4
-  store i64 %val, i64 *%ptr
+  %val = load i64, ptr at g4
+  store i64 %val, ptr %ptr
   ret void
 }
 
 ; ...likewise STGRL.
-define dso_local void @f28(i64 *%ptr) {
+define dso_local void @f28(ptr %ptr) {
 ; CHECK-LABEL: f28:
 ; CHECK: lg [[REG:%r[0-5]]], 0(%r2)
 ; CHECK: stgrl [[REG]], g4
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
-  store i64 %val, i64 *@g4
+  %val = load i64, ptr %ptr
+  store i64 %val, ptr at g4
   ret void
 }
 
 ; Test that we can use MVC for global addresses for fp128.
-define dso_local void @f29(fp128 *%ptr) {
+define dso_local void @f29(ptr %ptr) {
 ; CHECK-LABEL: f29:
 ; CHECK-DAG: larl [[SRC:%r[0-5]]], g5src
 ; CHECK-DAG: larl [[DST:%r[0-5]]], g5dst
 ; CHECK: mvc 0(16,[[DST]]), 0([[SRC]])
 ; CHECK: br %r14
-  %val = load fp128, fp128 *@g5src, align 16
-  store fp128 %val, fp128 *@g5dst, align 16
+  %val = load fp128, ptr at g5src, align 16
+  store fp128 %val, ptr at g5dst, align 16
   ret void
 }
 
 ; Test a case where offset disambiguation is enough.
-define dso_local void @f30(i64 *%ptr1) {
+define dso_local void @f30(ptr %ptr1) {
 ; CHECK-LABEL: f30:
 ; CHECK: mvc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1, align 1
-  store i64 %val, i64 *%ptr2, align 1
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1, align 1
+  store i64 %val, ptr %ptr2, align 1
   ret void
 }
 
 ; Test f21 in cases where TBAA tells us there is no alias.
-define dso_local void @f31(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f31(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f31:
 ; CHECK: mvc 0(8,%r3), 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2, !tbaa !1
-  store i64 %val, i64 *%ptr2, align 2, !tbaa !2
+  %val = load i64, ptr %ptr1, align 2, !tbaa !1
+  store i64 %val, ptr %ptr2, align 2, !tbaa !2
   ret void
 }
 
 ; Test f21 in cases where TBAA is present but doesn't help.
-define dso_local void @f32(i64 *%ptr1, i64 *%ptr2) {
+define dso_local void @f32(ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f32:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr1, align 2, !tbaa !1
-  store i64 %val, i64 *%ptr2, align 2, !tbaa !1
+  %val = load i64, ptr %ptr1, align 2, !tbaa !1
+  store i64 %val, ptr %ptr2, align 2, !tbaa !1
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/memcpy-03.ll b/llvm/test/CodeGen/SystemZ/memcpy-03.ll
index b478d14ed0ebf..c703aef275322 100644
--- a/llvm/test/CodeGen/SystemZ/memcpy-03.ll
+++ b/llvm/test/CodeGen/SystemZ/memcpy-03.ll
@@ -3,18 +3,18 @@
 ;
 ; Test memcpys of small constant lengths that should not be done with MVC.
 
-declare void @llvm.memcpy.p0i8.p0i8.i64(i8 *nocapture, i8 *nocapture, i64, i1) nounwind
+declare void @llvm.memcpy.p0.p0.i64(ptr nocapture, ptr nocapture, i64, i1) nounwind
 
-define void @fun16(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun16(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun16:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvc 0(16,%r3), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 16, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 16, i1 false)
   ret void
 }
 
-define void @fun17(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun17(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun17:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lb %r0, 16(%r2)
@@ -22,11 +22,11 @@ define void @fun17(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 17, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 17, i1 false)
   ret void
 }
 
-define void @fun18(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun18(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun18:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lh %r0, 16(%r2)
@@ -34,11 +34,11 @@ define void @fun18(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 18, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 18, i1 false)
   ret void
 }
 
-define void @fun19(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun19(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun19:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r0, 15(%r2)
@@ -46,11 +46,11 @@ define void @fun19(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 19, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 19, i1 false)
   ret void
 }
 
-define void @fun20(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun20(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun20:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r0, 16(%r2)
@@ -58,11 +58,11 @@ define void @fun20(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 20, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 20, i1 false)
   ret void
 }
 
-define void @fun21(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun21(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun21:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lg %r0, 13(%r2)
@@ -70,11 +70,11 @@ define void @fun21(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 21, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 21, i1 false)
   ret void
 }
 
-define void @fun22(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun22(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun22:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lg %r0, 14(%r2)
@@ -82,11 +82,11 @@ define void @fun22(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 22, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 22, i1 false)
   ret void
 }
 
-define void @fun23(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun23(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun23:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lg %r0, 15(%r2)
@@ -94,11 +94,11 @@ define void @fun23(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 23, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 23, i1 false)
   ret void
 }
 
-define void @fun24(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun24(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun24:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lg %r0, 16(%r2)
@@ -106,11 +106,11 @@ define void @fun24(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 24, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 24, i1 false)
   ret void
 }
 
-define void @fun25(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun25(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun25:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 9(%r2)
@@ -118,11 +118,11 @@ define void @fun25(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 25, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 25, i1 false)
   ret void
 }
 
-define void @fun26(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun26(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun26:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 10(%r2)
@@ -130,11 +130,11 @@ define void @fun26(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 26, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 26, i1 false)
   ret void
 }
 
-define void @fun27(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun27(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun27:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 11(%r2)
@@ -142,11 +142,11 @@ define void @fun27(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 27, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 27, i1 false)
   ret void
 }
 
-define void @fun28(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun28(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun28:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 12(%r2)
@@ -154,11 +154,11 @@ define void @fun28(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 28, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 28, i1 false)
   ret void
 }
 
-define void @fun29(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun29(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun29:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 13(%r2)
@@ -166,11 +166,11 @@ define void @fun29(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 29, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 29, i1 false)
   ret void
 }
 
-define void @fun30(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun30(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun30:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 14(%r2)
@@ -178,11 +178,11 @@ define void @fun30(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 30, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 30, i1 false)
   ret void
 }
 
-define void @fun31(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun31(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun31:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 15(%r2)
@@ -190,11 +190,11 @@ define void @fun31(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 31, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 31, i1 false)
   ret void
 }
 
-define void @fun32(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun32(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun32:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vl %v0, 16(%r2), 4
@@ -202,16 +202,16 @@ define void @fun32(i8* %Src, i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vl %v0, 0(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 32, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 32, i1 false)
   ret void
 }
 
-define void @fun33(i8* %Src, i8* %Dst, i8 %val) {
+define void @fun33(ptr %Src, ptr %Dst, i8 %val) {
 ; CHECK-LABEL: fun33:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvc 0(33,%r3), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 16 %Dst, i8* align 16 %Src, i64 33, i1 false)
+  call void @llvm.memcpy.p0.p0.i64(ptr align 16 %Dst, ptr align 16 %Src, i64 33, i1 false)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/memset-01.ll b/llvm/test/CodeGen/SystemZ/memset-01.ll
index c621b2ee96de8..535ccfd7b9e28 100644
--- a/llvm/test/CodeGen/SystemZ/memset-01.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-01.ll
@@ -2,135 +2,135 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.memset.p0i8.i32(i8 *nocapture, i8, i32, i1) nounwind
-declare void @llvm.memset.p0i8.i64(i8 *nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind
 
 ; No bytes, i32 version.
-define void @f1(i8* %dest, i8 %val) {
+define void @f1(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK-NOT: %r3
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 0, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 %val, i32 0, i1 false)
   ret void
 }
 
 ; No bytes, i64 version.
-define void @f2(i8* %dest, i8 %val) {
+define void @f2(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK-NOT: %r3
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 0, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 0, i1 false)
   ret void
 }
 
 ; 1 byte, i32 version.
-define void @f3(i8* %dest, i8 %val) {
+define void @f3(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f3:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 1, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 %val, i32 1, i1 false)
   ret void
 }
 
 ; 1 byte, i64 version.
-define void @f4(i8* %dest, i8 %val) {
+define void @f4(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f4:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 1, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 1, i1 false)
   ret void
 }
 
 ; 2 bytes, i32 version.
-define void @f5(i8* %dest, i8 %val) {
+define void @f5(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: stc %r3, 0(%r2)
 ; CHECK-DAG: stc %r3, 1(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 2, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 %val, i32 2, i1 false)
   ret void
 }
 
 ; 2 bytes, i64 version.
-define void @f6(i8* %dest, i8 %val) {
+define void @f6(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f6:
 ; CHECK-DAG: stc %r3, 0(%r2)
 ; CHECK-DAG: stc %r3, 1(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 2, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 2, i1 false)
   ret void
 }
 
 ; 3 bytes, i32 version.
-define void @f7(i8* %dest, i8 %val) {
+define void @f7(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f7:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 3, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 %val, i32 3, i1 false)
   ret void
 }
 
 ; 3 bytes, i64 version.
-define void @f8(i8* %dest, i8 %val) {
+define void @f8(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f8:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 3, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 3, i1 false)
   ret void
 }
 
 ; 257 bytes, i32 version.
-define void @f9(i8* %dest, i8 %val) {
+define void @f9(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f9:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: stc %r3, 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 257, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 %val, i32 257, i1 false)
   ret void
 }
 
 ; 257 bytes, i64 version.
-define void @f10(i8* %dest, i8 %val) {
+define void @f10(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f10:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: stc %r3, 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 257, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 257, i1 false)
   ret void
 }
 
 ; 258 bytes, i32 version.  We need two MVCs.
-define void @f11(i8* %dest, i8 %val) {
+define void @f11(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f11:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: stc %r3, 256(%r2)
 ; CHECK: mvc 257(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 %val, i32 258, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 %val, i32 258, i1 false)
   ret void
 }
 
 ; 258 bytes, i64 version.
-define void @f12(i8* %dest, i8 %val) {
+define void @f12(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f12:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: stc %r3, 256(%r2)
 ; CHECK: mvc 257(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 258, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 258, i1 false)
   ret void
 }
 
 ; Test the largest case for which straight-line code is used.
-define void @f13(i8* %dest, i8 %val) {
+define void @f13(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f13:
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK: mvc 1(255,%r2), 0(%r2)
@@ -145,13 +145,13 @@ define void @f13(i8* %dest, i8 %val) {
 ; CHECK: stc %r3, 1280(%r2)
 ; CHECK: mvc 1281(255,%r2), 1280(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 1536, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 1536, i1 false)
   ret void
 }
 
 ; Test the next size up, which uses a loop.  We leave the other corner
 ; cases to memcpy-01.ll and memset-07.ll.
-define void @f14(i8* %dest, i8 %val) {
+define void @f14(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f14:
 ; CHECK: lghi [[COUNT:%r[0-5]]], 6
 ; CHECK: [[LABEL:\.L[^:]*]]:
@@ -162,31 +162,31 @@ define void @f14(i8* %dest, i8 %val) {
 ; CHECK: brctg [[COUNT]], [[LABEL]]
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK-NEXT: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 1537, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 1537, i1 false)
   ret void
 }
 
 ; Test (no) folding of displacement: Begins with max(uint12) - 1.
-define void @f15(i8* %dest, i8 %val) {
+define void @f15(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: la {{.*}}%r2
-  %addr = getelementptr i8, i8* %dest, i64 4094
-  call void @llvm.memset.p0i8.i64(i8* %addr, i8 %val, i64 256, i1 false)
+  %addr = getelementptr i8, ptr %dest, i64 4094
+  call void @llvm.memset.p0.i64(ptr %addr, i8 %val, i64 256, i1 false)
   ret void
 }
 
 ; Test folding of displacement: Begins with max(uint12).
-define void @f16(i8* %dest, i8 %val) {
+define void @f16(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f16:
 ; CHECK-DAG: lay %r1, 4096(%r2)
 ; CHECK-DAG: stc %r3, 4095(%r2)
-  %addr = getelementptr i8, i8* %dest, i64 4095
-  call void @llvm.memset.p0i8.i64(i8* %addr, i8 %val, i64 256, i1 false)
+  %addr = getelementptr i8, ptr %dest, i64 4095
+  call void @llvm.memset.p0.i64(ptr %addr, i8 %val, i64 256, i1 false)
   ret void
 }
 
 ; Test folding of displacement with LA: First two ops are in range.
-define void @f17(i8* %dest, i8 %val) {
+define void @f17(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f17:
 ; CHECK:      stc %r3, 3583(%r2)
 ; CHECK-NEXT: mvc 3584(255,%r2), 3583(%r2)
@@ -196,13 +196,13 @@ define void @f17(i8* %dest, i8 %val) {
 ; CHECK-NEXT: stc %r3, 4095(%r2)
 ; CHECK-NEXT: mvc 0(1,%r1), 4095(%r2)
 ; CHECK-NEXT: br %r14
-  %addr = getelementptr i8, i8* %dest, i64 3583
-  call void @llvm.memset.p0i8.i64(i8* %addr, i8 %val, i64 514, i1 false)
+  %addr = getelementptr i8, ptr %dest, i64 3583
+  call void @llvm.memset.p0.i64(ptr %addr, i8 %val, i64 514, i1 false)
   ret void
 }
 
 ; Test folding of displacement with LAY: First two ops are in range.
-define void @f18(i8* %dest, i8 %val) {
+define void @f18(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f18:
 ; CHECK:      stc %r3, 3584(%r2)
 ; CHECK-NEXT: mvc 3585(255,%r2), 3584(%r2)
@@ -213,8 +213,8 @@ define void @f18(i8* %dest, i8 %val) {
 ; CHECK-NEXT: stc %r3, 0(%r2)
 ; CHECK-NEXT: mvc 0(1,%r1), 0(%r2)
 ; CHECK-NEXT: br %r14
-  %addr = getelementptr i8, i8* %dest, i64 3584
-  call void @llvm.memset.p0i8.i64(i8* %addr, i8 %val, i64 514, i1 false)
+  %addr = getelementptr i8, ptr %dest, i64 3584
+  call void @llvm.memset.p0.i64(ptr %addr, i8 %val, i64 514, i1 false)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/memset-02.ll b/llvm/test/CodeGen/SystemZ/memset-02.ll
index 52dd6d2f48e56..3dea24b4eee7e 100644
--- a/llvm/test/CodeGen/SystemZ/memset-02.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-02.ll
@@ -2,165 +2,165 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.memset.p0i8.i32(i8 *nocapture, i8, i32, i1) nounwind
-declare void @llvm.memset.p0i8.i64(i8 *nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind
 
 ; No bytes, i32 version.
-define void @f1(i8* %dest) {
+define void @f1(ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 0, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 0, i1 false)
   ret void
 }
 
 ; No bytes, i64 version.
-define void @f2(i8* %dest) {
+define void @f2(ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 0, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 0, i1 false)
   ret void
 }
 
 ; 1 byte, i32 version.
-define void @f3(i8* %dest) {
+define void @f3(ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 1, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 1, i1 false)
   ret void
 }
 
 ; 1 byte, i64 version.
-define void @f4(i8* %dest) {
+define void @f4(ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 1, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 1, i1 false)
   ret void
 }
 
 ; 2 bytes, i32 version.
-define void @f5(i8* %dest) {
+define void @f5(ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvhhi 0(%r2), -32640
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 2, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 2, i1 false)
   ret void
 }
 
 ; 2 bytes, i64 version.
-define void @f6(i8* %dest) {
+define void @f6(ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvhhi 0(%r2), -32640
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 2, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 2, i1 false)
   ret void
 }
 
 ; 3 bytes, i32 version.
-define void @f7(i8* %dest) {
+define void @f7(ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK-DAG: mvhhi 0(%r2), -32640
 ; CHECK-DAG: mvi 2(%r2), 128
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 3, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 3, i1 false)
   ret void
 }
 
 ; 3 bytes, i64 version.
-define void @f8(i8* %dest) {
+define void @f8(ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK-DAG: mvhhi 0(%r2), -32640
 ; CHECK-DAG: mvi 2(%r2), 128
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 3, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 3, i1 false)
   ret void
 }
 
 ; 4 bytes, i32 version.
-define void @f9(i8* %dest) {
+define void @f9(ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: iilf [[REG:%r[0-5]]], 2155905152
 ; CHECK: st [[REG]], 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 4, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 4, i1 false)
   ret void
 }
 
 ; 4 bytes, i64 version.
-define void @f10(i8* %dest) {
+define void @f10(ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: iilf [[REG:%r[0-5]]], 2155905152
 ; CHECK: st [[REG]], 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 4, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 4, i1 false)
   ret void
 }
 
 ; 5 bytes, i32 version.
-define void @f11(i8* %dest) {
+define void @f11(ptr %dest) {
 ; CHECK-LABEL: f11:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: mvc 1(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 5, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 5, i1 false)
   ret void
 }
 
 ; 5 bytes, i64 version.
-define void @f12(i8* %dest) {
+define void @f12(ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: mvc 1(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 5, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 5, i1 false)
   ret void
 }
 
 ; 257 bytes, i32 version.
-define void @f13(i8* %dest) {
+define void @f13(ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 128
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 257, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 257, i1 false)
   ret void
 }
 
 ; 257 bytes, i64 version.
-define void @f14(i8* %dest) {
+define void @f14(ptr %dest) {
 ; CHECK-LABEL: f14:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 128
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 257, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 257, i1 false)
   ret void
 }
 
 ; 258 bytes, i32 version.  We need two MVCs.
-define void @f15(i8* %dest) {
+define void @f15(ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 128
 ; CHECK: mvc 257(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 128, i32 258, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 128, i32 258, i1 false)
   ret void
 }
 
 ; 258 bytes, i64 version.
-define void @f16(i8* %dest) {
+define void @f16(ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: mvi 0(%r2), 128
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 128
 ; CHECK: mvc 257(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 128, i64 258, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 128, i64 258, i1 false)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memset-03.ll b/llvm/test/CodeGen/SystemZ/memset-03.ll
index a6370f4ab1088..606b44aaef0ac 100644
--- a/llvm/test/CodeGen/SystemZ/memset-03.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-03.ll
@@ -2,381 +2,381 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.memset.p0i8.i32(i8 *nocapture, i8, i32, i1) nounwind
-declare void @llvm.memset.p0i8.i64(i8 *nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind
 
 ; No bytes, i32 version.
-define void @f1(i8* %dest) {
+define void @f1(ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 0, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 0, i1 false)
   ret void
 }
 
 ; No bytes, i64 version.
-define void @f2(i8* %dest) {
+define void @f2(ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 0, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 0, i1 false)
   ret void
 }
 
 ; 1 byte, i32 version.
-define void @f3(i8* %dest) {
+define void @f3(ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 1, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 1, i1 false)
   ret void
 }
 
 ; 1 byte, i64 version.
-define void @f4(i8* %dest) {
+define void @f4(ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 1, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 1, i1 false)
   ret void
 }
 
 ; 2 bytes, i32 version.
-define void @f5(i8* %dest) {
+define void @f5(ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvhhi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 2, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 2, i1 false)
   ret void
 }
 
 ; 2 bytes, i64 version.
-define void @f6(i8* %dest) {
+define void @f6(ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvhhi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 2, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 2, i1 false)
   ret void
 }
 
 ; 3 bytes, i32 version.
-define void @f7(i8* %dest) {
+define void @f7(ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK-DAG: mvhhi 0(%r2), 0
 ; CHECK-DAG: mvi 2(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 3, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 3, i1 false)
   ret void
 }
 
 ; 3 bytes, i64 version.
-define void @f8(i8* %dest) {
+define void @f8(ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK-DAG: mvhhi 0(%r2), 0
 ; CHECK-DAG: mvi 2(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 3, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 3, i1 false)
   ret void
 }
 
 ; 4 bytes, i32 version.
-define void @f9(i8* %dest) {
+define void @f9(ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: mvhi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 4, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 4, i1 false)
   ret void
 }
 
 ; 4 bytes, i64 version.
-define void @f10(i8* %dest) {
+define void @f10(ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: mvhi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 4, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 4, i1 false)
   ret void
 }
 
 ; 5 bytes, i32 version.
-define void @f11(i8* %dest) {
+define void @f11(ptr %dest) {
 ; CHECK-LABEL: f11:
 ; CHECK-DAG: mvhi 0(%r2), 0
 ; CHECK-DAG: mvi 4(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 5, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 5, i1 false)
   ret void
 }
 
 ; 5 bytes, i64 version.
-define void @f12(i8* %dest) {
+define void @f12(ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK-DAG: mvhi 0(%r2), 0
 ; CHECK-DAG: mvi 4(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 5, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 5, i1 false)
   ret void
 }
 
 ; 6 bytes, i32 version.
-define void @f13(i8* %dest) {
+define void @f13(ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK-DAG: mvhi 0(%r2), 0
 ; CHECK-DAG: mvhhi 4(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 6, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 6, i1 false)
   ret void
 }
 
 ; 6 bytes, i64 version.
-define void @f14(i8* %dest) {
+define void @f14(ptr %dest) {
 ; CHECK-LABEL: f14:
 ; CHECK-DAG: mvhi 0(%r2), 0
 ; CHECK-DAG: mvhhi 4(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 6, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 6, i1 false)
   ret void
 }
 
 ; 7 bytes, i32 version.
-define void @f15(i8* %dest) {
+define void @f15(ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: xc 0(7,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 7, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 7, i1 false)
   ret void
 }
 
 ; 7 bytes, i64 version.
-define void @f16(i8* %dest) {
+define void @f16(ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: xc 0(7,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 7, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 7, i1 false)
   ret void
 }
 
 ; 8 bytes, i32 version.
-define void @f17(i8* %dest) {
+define void @f17(ptr %dest) {
 ; CHECK-LABEL: f17:
 ; CHECK: mvghi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 8, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 8, i1 false)
   ret void
 }
 
 ; 8 bytes, i64 version.
-define void @f18(i8* %dest) {
+define void @f18(ptr %dest) {
 ; CHECK-LABEL: f18:
 ; CHECK: mvghi 0(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 8, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 8, i1 false)
   ret void
 }
 
 ; 9 bytes, i32 version.
-define void @f19(i8* %dest) {
+define void @f19(ptr %dest) {
 ; CHECK-LABEL: f19:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 9, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 9, i1 false)
   ret void
 }
 
 ; 9 bytes, i64 version.
-define void @f20(i8* %dest) {
+define void @f20(ptr %dest) {
 ; CHECK-LABEL: f20:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 9, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 9, i1 false)
   ret void
 }
 
 ; 10 bytes, i32 version.
-define void @f21(i8* %dest) {
+define void @f21(ptr %dest) {
 ; CHECK-LABEL: f21:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvhhi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 10, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 10, i1 false)
   ret void
 }
 
 ; 10 bytes, i64 version.
-define void @f22(i8* %dest) {
+define void @f22(ptr %dest) {
 ; CHECK-LABEL: f22:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvhhi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 10, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 10, i1 false)
   ret void
 }
 
 ; 11 bytes, i32 version.
-define void @f23(i8* %dest) {
+define void @f23(ptr %dest) {
 ; CHECK-LABEL: f23:
 ; CHECK: xc 0(11,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 11, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 11, i1 false)
   ret void
 }
 
 ; 11 bytes, i64 version.
-define void @f24(i8* %dest) {
+define void @f24(ptr %dest) {
 ; CHECK-LABEL: f24:
 ; CHECK: xc 0(11,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 11, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 11, i1 false)
   ret void
 }
 
 ; 12 bytes, i32 version.
-define void @f25(i8* %dest) {
+define void @f25(ptr %dest) {
 ; CHECK-LABEL: f25:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvhi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 12, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 12, i1 false)
   ret void
 }
 
 ; 12 bytes, i64 version.
-define void @f26(i8* %dest) {
+define void @f26(ptr %dest) {
 ; CHECK-LABEL: f26:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvhi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 12, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 12, i1 false)
   ret void
 }
 
 ; 13 bytes, i32 version.
-define void @f27(i8* %dest) {
+define void @f27(ptr %dest) {
 ; CHECK-LABEL: f27:
 ; CHECK: xc 0(13,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 13, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 13, i1 false)
   ret void
 }
 
 ; 13 bytes, i64 version.
-define void @f28(i8* %dest) {
+define void @f28(ptr %dest) {
 ; CHECK-LABEL: f28:
 ; CHECK: xc 0(13,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 13, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 13, i1 false)
   ret void
 }
 
 ; 14 bytes, i32 version.
-define void @f29(i8* %dest) {
+define void @f29(ptr %dest) {
 ; CHECK-LABEL: f29:
 ; CHECK: xc 0(14,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 14, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 14, i1 false)
   ret void
 }
 
 ; 14 bytes, i64 version.
-define void @f30(i8* %dest) {
+define void @f30(ptr %dest) {
 ; CHECK-LABEL: f30:
 ; CHECK: xc 0(14,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 14, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 14, i1 false)
   ret void
 }
 
 ; 15 bytes, i32 version.
-define void @f31(i8* %dest) {
+define void @f31(ptr %dest) {
 ; CHECK-LABEL: f31:
 ; CHECK: xc 0(15,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 15, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 15, i1 false)
   ret void
 }
 
 ; 15 bytes, i64 version.
-define void @f32(i8* %dest) {
+define void @f32(ptr %dest) {
 ; CHECK-LABEL: f32:
 ; CHECK: xc 0(15,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 15, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 15, i1 false)
   ret void
 }
 
 ; 16 bytes, i32 version.
-define void @f33(i8* %dest) {
+define void @f33(ptr %dest) {
 ; CHECK-LABEL: f33:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvghi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 16, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 16, i1 false)
   ret void
 }
 
 ; 16 bytes, i64 version.
-define void @f34(i8* %dest) {
+define void @f34(ptr %dest) {
 ; CHECK-LABEL: f34:
 ; CHECK-DAG: mvghi 0(%r2), 0
 ; CHECK-DAG: mvghi 8(%r2), 0
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 16, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 16, i1 false)
   ret void
 }
 
 ; 17 bytes, i32 version.
-define void @f35(i8* %dest) {
+define void @f35(ptr %dest) {
 ; CHECK-LABEL: f35:
 ; CHECK: xc 0(17,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 17, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 17, i1 false)
   ret void
 }
 
 ; 17 bytes, i64 version.
-define void @f36(i8* %dest) {
+define void @f36(ptr %dest) {
 ; CHECK-LABEL: f36:
 ; CHECK: xc 0(17,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 17, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 17, i1 false)
   ret void
 }
 
 ; 256 bytes, i32 version.
-define void @f37(i8* %dest) {
+define void @f37(ptr %dest) {
 ; CHECK-LABEL: f37:
 ; CHECK: xc 0(256,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 256, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 256, i1 false)
   ret void
 }
 
 ; 256 bytes, i64 version.
-define void @f38(i8* %dest) {
+define void @f38(ptr %dest) {
 ; CHECK-LABEL: f38:
 ; CHECK: xc 0(256,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 256, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 256, i1 false)
   ret void
 }
 
 ; 257 bytes, i32 version.  We need two MVCs.
-define void @f39(i8* %dest) {
+define void @f39(ptr %dest) {
 ; CHECK-LABEL: f39:
 ; CHECK: xc 0(256,%r2), 0(%r2)
 ; CHECK: xc 256(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 0, i32 257, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 0, i32 257, i1 false)
   ret void
 }
 
 ; 257 bytes, i64 version.
-define void @f40(i8* %dest) {
+define void @f40(ptr %dest) {
 ; CHECK-LABEL: f40:
 ; CHECK: xc 0(256,%r2), 0(%r2)
 ; CHECK: xc 256(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 0, i64 257, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 0, i64 257, i1 false)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memset-04.ll b/llvm/test/CodeGen/SystemZ/memset-04.ll
index 825d69c4b46e0..62a4de0c688ed 100644
--- a/llvm/test/CodeGen/SystemZ/memset-04.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-04.ll
@@ -2,401 +2,401 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.memset.p0i8.i32(i8 *nocapture, i8, i32, i1) nounwind
-declare void @llvm.memset.p0i8.i64(i8 *nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind
 
 ; No bytes, i32 version.
-define void @f1(i8* %dest) {
+define void @f1(ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 0, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 0, i1 false)
   ret void
 }
 
 ; No bytes, i64 version.
-define void @f2(i8* %dest) {
+define void @f2(ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 0, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 0, i1 false)
   ret void
 }
 
 ; 1 byte, i32 version.
-define void @f3(i8* %dest) {
+define void @f3(ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 1, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 1, i1 false)
   ret void
 }
 
 ; 1 byte, i64 version.
-define void @f4(i8* %dest) {
+define void @f4(ptr %dest) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 1, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 1, i1 false)
   ret void
 }
 
 ; 2 bytes, i32 version.
-define void @f5(i8* %dest) {
+define void @f5(ptr %dest) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvhhi 0(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 2, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 2, i1 false)
   ret void
 }
 
 ; 2 bytes, i64 version.
-define void @f6(i8* %dest) {
+define void @f6(ptr %dest) {
 ; CHECK-LABEL: f6:
 ; CHECK: mvhhi 0(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 2, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 2, i1 false)
   ret void
 }
 
 ; 3 bytes, i32 version.
-define void @f7(i8* %dest) {
+define void @f7(ptr %dest) {
 ; CHECK-LABEL: f7:
 ; CHECK-DAG: mvhhi 0(%r2), -1
 ; CHECK-DAG: mvi 2(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 3, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 3, i1 false)
   ret void
 }
 
 ; 3 bytes, i64 version.
-define void @f8(i8* %dest) {
+define void @f8(ptr %dest) {
 ; CHECK-LABEL: f8:
 ; CHECK-DAG: mvhhi 0(%r2), -1
 ; CHECK-DAG: mvi 2(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 3, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 3, i1 false)
   ret void
 }
 
 ; 4 bytes, i32 version.
-define void @f9(i8* %dest) {
+define void @f9(ptr %dest) {
 ; CHECK-LABEL: f9:
 ; CHECK: mvhi 0(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 4, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 4, i1 false)
   ret void
 }
 
 ; 4 bytes, i64 version.
-define void @f10(i8* %dest) {
+define void @f10(ptr %dest) {
 ; CHECK-LABEL: f10:
 ; CHECK: mvhi 0(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 4, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 4, i1 false)
   ret void
 }
 
 ; 5 bytes, i32 version.
-define void @f11(i8* %dest) {
+define void @f11(ptr %dest) {
 ; CHECK-LABEL: f11:
 ; CHECK-DAG: mvhi 0(%r2), -1
 ; CHECK-DAG: mvi 4(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 5, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 5, i1 false)
   ret void
 }
 
 ; 5 bytes, i64 version.
-define void @f12(i8* %dest) {
+define void @f12(ptr %dest) {
 ; CHECK-LABEL: f12:
 ; CHECK-DAG: mvhi 0(%r2), -1
 ; CHECK-DAG: mvi 4(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 5, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 5, i1 false)
   ret void
 }
 
 ; 6 bytes, i32 version.
-define void @f13(i8* %dest) {
+define void @f13(ptr %dest) {
 ; CHECK-LABEL: f13:
 ; CHECK-DAG: mvhi 0(%r2), -1
 ; CHECK-DAG: mvhhi 4(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 6, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 6, i1 false)
   ret void
 }
 
 ; 6 bytes, i64 version.
-define void @f14(i8* %dest) {
+define void @f14(ptr %dest) {
 ; CHECK-LABEL: f14:
 ; CHECK-DAG: mvhi 0(%r2), -1
 ; CHECK-DAG: mvhhi 4(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 6, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 6, i1 false)
   ret void
 }
 
 ; 7 bytes, i32 version.
-define void @f15(i8* %dest) {
+define void @f15(ptr %dest) {
 ; CHECK-LABEL: f15:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(6,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 7, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 7, i1 false)
   ret void
 }
 
 ; 7 bytes, i64 version.
-define void @f16(i8* %dest) {
+define void @f16(ptr %dest) {
 ; CHECK-LABEL: f16:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(6,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 7, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 7, i1 false)
   ret void
 }
 
 ; 8 bytes, i32 version.
-define void @f17(i8* %dest) {
+define void @f17(ptr %dest) {
 ; CHECK-LABEL: f17:
 ; CHECK: mvghi 0(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 8, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 8, i1 false)
   ret void
 }
 
 ; 8 bytes, i64 version.
-define void @f18(i8* %dest) {
+define void @f18(ptr %dest) {
 ; CHECK-LABEL: f18:
 ; CHECK: mvghi 0(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 8, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 8, i1 false)
   ret void
 }
 
 ; 9 bytes, i32 version.
-define void @f19(i8* %dest) {
+define void @f19(ptr %dest) {
 ; CHECK-LABEL: f19:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvi 8(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 9, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 9, i1 false)
   ret void
 }
 
 ; 9 bytes, i64 version.
-define void @f20(i8* %dest) {
+define void @f20(ptr %dest) {
 ; CHECK-LABEL: f20:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvi 8(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 9, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 9, i1 false)
   ret void
 }
 
 ; 10 bytes, i32 version.
-define void @f21(i8* %dest) {
+define void @f21(ptr %dest) {
 ; CHECK-LABEL: f21:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvhhi 8(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 10, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 10, i1 false)
   ret void
 }
 
 ; 10 bytes, i64 version.
-define void @f22(i8* %dest) {
+define void @f22(ptr %dest) {
 ; CHECK-LABEL: f22:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvhhi 8(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 10, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 10, i1 false)
   ret void
 }
 
 ; 11 bytes, i32 version.
-define void @f23(i8* %dest) {
+define void @f23(ptr %dest) {
 ; CHECK-LABEL: f23:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(10,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 11, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 11, i1 false)
   ret void
 }
 
 ; 11 bytes, i64 version.
-define void @f24(i8* %dest) {
+define void @f24(ptr %dest) {
 ; CHECK-LABEL: f24:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(10,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 11, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 11, i1 false)
   ret void
 }
 
 ; 12 bytes, i32 version.
-define void @f25(i8* %dest) {
+define void @f25(ptr %dest) {
 ; CHECK-LABEL: f25:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvhi 8(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 12, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 12, i1 false)
   ret void
 }
 
 ; 12 bytes, i64 version.
-define void @f26(i8* %dest) {
+define void @f26(ptr %dest) {
 ; CHECK-LABEL: f26:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvhi 8(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 12, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 12, i1 false)
   ret void
 }
 
 ; 13 bytes, i32 version.
-define void @f27(i8* %dest) {
+define void @f27(ptr %dest) {
 ; CHECK-LABEL: f27:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(12,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 13, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 13, i1 false)
   ret void
 }
 
 ; 13 bytes, i64 version.
-define void @f28(i8* %dest) {
+define void @f28(ptr %dest) {
 ; CHECK-LABEL: f28:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(12,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 13, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 13, i1 false)
   ret void
 }
 
 ; 14 bytes, i32 version.
-define void @f29(i8* %dest) {
+define void @f29(ptr %dest) {
 ; CHECK-LABEL: f29:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(13,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 14, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 14, i1 false)
   ret void
 }
 
 ; 14 bytes, i64 version.
-define void @f30(i8* %dest) {
+define void @f30(ptr %dest) {
 ; CHECK-LABEL: f30:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(13,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 14, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 14, i1 false)
   ret void
 }
 
 ; 15 bytes, i32 version.
-define void @f31(i8* %dest) {
+define void @f31(ptr %dest) {
 ; CHECK-LABEL: f31:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(14,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 15, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 15, i1 false)
   ret void
 }
 
 ; 15 bytes, i64 version.
-define void @f32(i8* %dest) {
+define void @f32(ptr %dest) {
 ; CHECK-LABEL: f32:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(14,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 15, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 15, i1 false)
   ret void
 }
 
 ; 16 bytes, i32 version.
-define void @f33(i8* %dest) {
+define void @f33(ptr %dest) {
 ; CHECK-LABEL: f33:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvghi 8(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 16, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 16, i1 false)
   ret void
 }
 
 ; 16 bytes, i64 version.
-define void @f34(i8* %dest) {
+define void @f34(ptr %dest) {
 ; CHECK-LABEL: f34:
 ; CHECK-DAG: mvghi 0(%r2), -1
 ; CHECK-DAG: mvghi 8(%r2), -1
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 16, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 16, i1 false)
   ret void
 }
 
 ; 17 bytes, i32 version.
-define void @f35(i8* %dest) {
+define void @f35(ptr %dest) {
 ; CHECK-LABEL: f35:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(16,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 17, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 17, i1 false)
   ret void
 }
 
 ; 17 bytes, i64 version.
-define void @f36(i8* %dest) {
+define void @f36(ptr %dest) {
 ; CHECK-LABEL: f36:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(16,%r2), 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 17, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 17, i1 false)
   ret void
 }
 
 ; 257 bytes, i32 version.
-define void @f37(i8* %dest) {
+define void @f37(ptr %dest) {
 ; CHECK-LABEL: f37:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 257, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 257, i1 false)
   ret void
 }
 
 ; 257 bytes, i64 version.
-define void @f38(i8* %dest) {
+define void @f38(ptr %dest) {
 ; CHECK-LABEL: f38:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 255
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 257, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 257, i1 false)
   ret void
 }
 
 ; 258 bytes, i32 version.  We need two MVCs.
-define void @f39(i8* %dest) {
+define void @f39(ptr %dest) {
 ; CHECK-LABEL: f39:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 255
 ; CHECK: mvc 257(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 -1, i32 258, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 -1, i32 258, i1 false)
   ret void
 }
 
 ; 258 bytes, i64 version.
-define void @f40(i8* %dest) {
+define void @f40(ptr %dest) {
 ; CHECK-LABEL: f40:
 ; CHECK: mvi 0(%r2), 255
 ; CHECK: mvc 1(255,%r2), 0(%r2)
 ; CHECK: mvi 256(%r2), 255
 ; CHECK: mvc 257(1,%r2), 256(%r2)
 ; CHECK: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 -1, i64 258, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 -1, i64 258, i1 false)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/memset-05.ll b/llvm/test/CodeGen/SystemZ/memset-05.ll
index 077a1f6da5660..cc47b8c9fdda2 100644
--- a/llvm/test/CodeGen/SystemZ/memset-05.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-05.ll
@@ -3,7 +3,7 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @fun0(i8* %Addr, i64 %Len) {
+define void @fun0(ptr %Addr, i64 %Len) {
 ; CHECK-LABEL: fun0:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    aghi %r3, -1
@@ -18,11 +18,11 @@ define void @fun0(i8* %Addr, i64 %Len) {
 ; CHECK-NEXT:  .LBB0_3:
 ; CHECK-NEXT:    exrl %r3, .Ltmp0
 ; CHECK-NEXT:    br %r14
-  tail call void @llvm.memset.p0i8.i64(i8* %Addr, i8 0, i64 %Len, i1 false)
+  tail call void @llvm.memset.p0.i64(ptr %Addr, i8 0, i64 %Len, i1 false)
   ret void
 }
 
-define void @fun1(i8* %Addr, i32 %Len) {
+define void @fun1(ptr %Addr, i32 %Len) {
 ; CHECK-LABEL: fun1:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    llgfr %r1, %r3
@@ -38,12 +38,12 @@ define void @fun1(i8* %Addr, i32 %Len) {
 ; CHECK-NEXT:  .LBB1_3:
 ; CHECK-NEXT:    exrl %r1, .Ltmp0
 ; CHECK-NEXT:    br %r14
-  tail call void @llvm.memset.p0i8.i32(i8* %Addr, i8 0, i32 %Len, i1 false)
+  tail call void @llvm.memset.p0.i32(ptr %Addr, i8 0, i32 %Len, i1 false)
   ret void
 }
 
 ; Test that identical target instructions get reused.
-define void @fun2(i8* %Addr, i32 %Len) {
+define void @fun2(ptr %Addr, i32 %Len) {
 ; CHECK-LABEL: fun2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    llgfr %r1, %r3
@@ -83,9 +83,9 @@ define void @fun2(i8* %Addr, i32 %Len) {
 ; CHECK-NEXT:  .LBB2_11:
 ; CHECK-NEXT:    exrl %r1, .Ltmp0
 ; CHECK-NEXT:    br %r14
-  tail call void @llvm.memset.p0i8.i32(i8* %Addr, i8 0, i32 %Len, i1 false)
-  tail call void @llvm.memset.p0i8.i32(i8* %Addr, i8 0, i32 %Len, i1 false)
-  tail call void @llvm.memset.p0i8.i32(i8* %Addr, i8 0, i32 %Len, i1 false)
+  tail call void @llvm.memset.p0.i32(ptr %Addr, i8 0, i32 %Len, i1 false)
+  tail call void @llvm.memset.p0.i32(ptr %Addr, i8 0, i32 %Len, i1 false)
+  tail call void @llvm.memset.p0.i32(ptr %Addr, i8 0, i32 %Len, i1 false)
   ret void
 }
 
@@ -106,7 +106,7 @@ define void @fun3(i64 %Len) {
 ; CHECK-NEXT:  .LBB3_3:
 ; CHECK-NEXT:    exrl %r2, .Ltmp2
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* null, i8 0, i64 %Len, i1 false)
+  call void @llvm.memset.p0.i64(ptr null, i8 0, i64 %Len, i1 false)
   ret void
 }
 
@@ -123,20 +123,20 @@ define void @fun4() {
 ; CHECK-NEXT:    xc 803(221,%r1), 803(%r1)
 ; CHECK-NEXT:    mvghi 0(%r1), 989
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(
-     i8* getelementptr inbounds ([1024 x i8], [1024 x i8]* @Data, i64 0, i64 35),
+  call void @llvm.memset.p0.i64(
+     ptr getelementptr inbounds ([1024 x i8], ptr @Data, i64 0, i64 35),
      i8 0,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 0) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 0, i64 35) to i64), i64 1)),
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 0) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 0, i64 35) to i64), i64 1)),
      i1 false)
-  %i11 = getelementptr i8, i8* null,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 0) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 0, i64 35) to i64), i64 1))
-  store i8* %i11, i8** undef, align 8
+  %i11 = getelementptr i8, ptr null,
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 0) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 0, i64 35) to i64), i64 1))
+  store ptr %i11, ptr undef, align 8
   ret void
 }
 
@@ -146,20 +146,20 @@ define void @fun5() {
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvghi 0(%r1), 0
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(
-     i8* getelementptr inbounds ([1024 x i8], [1024 x i8]* @Data, i64 0, i64 35),
+  call void @llvm.memset.p0.i64(
+     ptr getelementptr inbounds ([1024 x i8], ptr @Data, i64 0, i64 35),
      i8 0,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1)),
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1)),
      i1 false)
-  %i11 = getelementptr i8, i8* null,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1))
-  store i8* %i11, i8** undef, align 8
+  %i11 = getelementptr i8, ptr null,
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1))
+  store ptr %i11, ptr undef, align 8
   ret void
 }
 
@@ -171,20 +171,20 @@ define void @fun6() {
 ; CHECK-NEXT:    xc 35(1,%r1), 35(%r1)
 ; CHECK-NEXT:    mvghi 0(%r1), 1
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(
-     i8* getelementptr inbounds ([1024 x i8], [1024 x i8]* @Data, i64 0, i64 35),
+  call void @llvm.memset.p0.i64(
+     ptr getelementptr inbounds ([1024 x i8], ptr @Data, i64 0, i64 35),
      i8 0,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 36) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1)),
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 36) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1)),
      i1 false)
-  %i11 = getelementptr i8, i8* null,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 36) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1))
-  store i8* %i11, i8** undef, align 8
+  %i11 = getelementptr i8, ptr null,
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 36) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1))
+  store ptr %i11, ptr undef, align 8
   ret void
 }
 
@@ -196,20 +196,20 @@ define void @fun7() {
 ; CHECK-NEXT:    xc 35(256,%r1), 35(%r1)
 ; CHECK-NEXT:    mvghi 0(%r1), 256
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(
-     i8* getelementptr inbounds ([1024 x i8], [1024 x i8]* @Data, i64 0, i64 35),
+  call void @llvm.memset.p0.i64(
+     ptr getelementptr inbounds ([1024 x i8], ptr @Data, i64 0, i64 35),
      i8 0,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 291) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1)),
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 291) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1)),
      i1 false)
-  %i11 = getelementptr i8, i8* null,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 291) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1))
-  store i8* %i11, i8** undef, align 8
+  %i11 = getelementptr i8, ptr null,
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 291) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1))
+  store ptr %i11, ptr undef, align 8
   ret void
 }
 
@@ -222,20 +222,20 @@ define void @fun8() {
 ; CHECK-NEXT:    xc 291(1,%r1), 291(%r1)
 ; CHECK-NEXT:    mvghi 0(%r1), 257
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(
-     i8* getelementptr inbounds ([1024 x i8], [1024 x i8]* @Data, i64 0, i64 35),
+  call void @llvm.memset.p0.i64(
+     ptr getelementptr inbounds ([1024 x i8], ptr @Data, i64 0, i64 35),
      i8 0,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 292) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1)),
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 292) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1)),
      i1 false)
-  %i11 = getelementptr i8, i8* null,
-     i64 sub (i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 292) to i64), i64 1),
-              i64 add (i64 ptrtoint (i8* getelementptr inbounds ([1024 x i8],
-                                     [1024 x i8]* @Data, i64 1, i64 35) to i64), i64 1))
-  store i8* %i11, i8** undef, align 8
+  %i11 = getelementptr i8, ptr null,
+     i64 sub (i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 292) to i64), i64 1),
+              i64 add (i64 ptrtoint (ptr getelementptr inbounds ([1024 x i8],
+                                     ptr @Data, i64 1, i64 35) to i64), i64 1))
+  store ptr %i11, ptr undef, align 8
   ret void
 }
 
@@ -246,5 +246,5 @@ define void @fun8() {
 ; CHECK-NEXT:  .Ltmp1:
 ; CHECK-NEXT:    xc 0(1,%r3), 0(%r3)
 
-declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg)
-declare void @llvm.memset.p0i8.i32(i8* nocapture writeonly, i8, i32, i1 immarg)
+declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg)
+declare void @llvm.memset.p0.i32(ptr nocapture writeonly, i8, i32, i1 immarg)

diff  --git a/llvm/test/CodeGen/SystemZ/memset-06.ll b/llvm/test/CodeGen/SystemZ/memset-06.ll
index 2678b3fd098fe..2c42f5a2934e9 100644
--- a/llvm/test/CodeGen/SystemZ/memset-06.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-06.ll
@@ -3,20 +3,19 @@
 ; Test that the EXRL target instruction is emitted successfully (before text
 ; section is closed).
 
- at a = dso_local global i32* null, align 8, !dbg !0
+ at a = dso_local global ptr null, align 8, !dbg !0
 @j = dso_local global i32 0, align 4, !dbg !5
 
 define void @fun() !dbg !14 {
 entry:
-  %0 = load i32*, i32** @a, align 8, !dbg !18
-  %1 = bitcast i32* %0 to i8*, !dbg !19
-  %2 = load i32, i32* @j, align 4, !dbg !20
-  %conv = sext i32 %2 to i64, !dbg !20
-  call void @llvm.memset.p0i8.i64(i8* align 4 %1, i8 0, i64 %conv, i1 false), !dbg !19
+  %0 = load ptr, ptr @a, align 8, !dbg !18
+  %1 = load i32, ptr @j, align 4, !dbg !20
+  %conv = sext i32 %1 to i64, !dbg !20
+  call void @llvm.memset.p0.i64(ptr align 4 %0, i8 0, i64 %conv, i1 false), !dbg !19
   ret void, !dbg !21
 }
 
-declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg) #1
+declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #1
 
 !llvm.dbg.cu = !{!2}
 !llvm.module.flags = !{!9, !10, !11, !12}

diff  --git a/llvm/test/CodeGen/SystemZ/memset-07.ll b/llvm/test/CodeGen/SystemZ/memset-07.ll
index 0d08298c86478..19198dd3c3b71 100644
--- a/llvm/test/CodeGen/SystemZ/memset-07.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-07.ll
@@ -2,11 +2,11 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.memset.p0i8.i32(i8 *nocapture, i8, i32, i1) nounwind
-declare void @llvm.memset.p0i8.i64(i8 *nocapture, i8, i64, i1) nounwind
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) nounwind
+declare void @llvm.memset.p0.i64(ptr nocapture, i8, i64, i1) nounwind
 
 ; Constant length: 6 iterations and 2 bytes remainder.
-define void @f1(i8* %dest, i8 %val) {
+define void @f1(ptr %dest, i8 %val) {
 ; CHECK-LABEL: f1:
 ; CHECK: lghi [[COUNT:%r[0-5]]], 6
 ; CHECK: [[LABEL:\.L[^:]*]]:
@@ -18,12 +18,12 @@ define void @f1(i8* %dest, i8 %val) {
 ; CHECK: stc %r3, 0(%r2)
 ; CHECK-NEXT: mvc 1(1,%r2), 0(%r2)
 ; CHECK-NEXT: br %r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 1538, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 1538, i1 false)
   ret void
 }
 
 ; Constant length: 6 iterations and 255 bytes remainder.
-define void @f2(i8* %dest) {
+define void @f2(ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: lghi [[COUNT:%r[0-5]]], 6
 ; CHECK: [[LABEL:\.L[^:]*]]:
@@ -35,12 +35,12 @@ define void @f2(i8* %dest) {
 ; CHECK: mvi  0(%r2), 1
 ; CHECK-NEXT: mvc 1(254,%r2), 0(%r2)
 ; CHECK-NEXT: br %r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 1, i32 1791, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 1, i32 1791, i1 false)
   ret void
 }
 
 ; Variable length, byte in register.
-define void @f3(i8* %dest, i8 %val, i64 %Len) {
+define void @f3(ptr %dest, i8 %val, i64 %Len) {
 ; CHECK-LABEL: f3:
 ; CHECK: # %bb.0:
 ; CHECK-NEXT: 	aghi	%r4, -2
@@ -63,12 +63,12 @@ define void @f3(i8* %dest, i8 %val, i64 %Len) {
 ; CHECK-NEXT:.LBB2_5:
 ; CHECK-NEXT:	stc	%r3, 0(%r2)
 ; CHECK-NEXT:	br	%r14
-  call void @llvm.memset.p0i8.i64(i8* %dest, i8 %val, i64 %Len, i1 false)
+  call void @llvm.memset.p0.i64(ptr %dest, i8 %val, i64 %Len, i1 false)
   ret void
 }
 
 ; Variable length, immediate byte.
-define void @f4(i8* %dest, i32 %Len) {
+define void @f4(ptr %dest, i32 %Len) {
 ; CHECK-LABEL: f4:
 ; CHECK: # %bb.0:
 ; CHECK-NEXT:	llgfr	%r1, %r3
@@ -92,7 +92,7 @@ define void @f4(i8* %dest, i32 %Len) {
 ; CHECK-NEXT:.LBB3_5:
 ; CHECK-NEXT:	mvi	0(%r2), 1
 ; CHECK-NEXT:	br	%r14
-  call void @llvm.memset.p0i8.i32(i8* %dest, i8 1, i32 %Len, i1 false)
+  call void @llvm.memset.p0.i32(ptr %dest, i8 1, i32 %Len, i1 false)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/memset-08.ll b/llvm/test/CodeGen/SystemZ/memset-08.ll
index 8e2c503a24c8f..9312309833680 100644
--- a/llvm/test/CodeGen/SystemZ/memset-08.ll
+++ b/llvm/test/CodeGen/SystemZ/memset-08.ll
@@ -3,19 +3,19 @@
 ;
 ; Test memsets of small constant lengths, that should not be done with MVC.
 
-declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1 immarg)
+declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg)
 
-define void @reg17(i8* %Dst, i8 %val) {
+define void @reg17(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg17:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stc %r3, 0(%r2)
 ; CHECK-NEXT:    mvc 1(16,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 17, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 17, i1 false)
   ret void
 }
 
-define void @reg18(i8* %Dst, i8 %val) {
+define void @reg18(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg18:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -23,11 +23,11 @@ define void @reg18(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    vsteh %v0, 16(%r2), 0
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 18, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 18, i1 false)
   ret void
 }
 
-define void @reg19(i8* %Dst, i8 %val) {
+define void @reg19(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg19:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -35,11 +35,11 @@ define void @reg19(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vstef %v0, 15(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 19, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 19, i1 false)
   ret void
 }
 
-define void @reg20(i8* %Dst, i8 %val) {
+define void @reg20(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg20:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -47,11 +47,11 @@ define void @reg20(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vstef %v0, 16(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 20, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 20, i1 false)
   ret void
 }
 
-define void @reg21(i8* %Dst, i8 %val) {
+define void @reg21(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg21:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -59,11 +59,11 @@ define void @reg21(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vsteg %v0, 13(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 21, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 21, i1 false)
   ret void
 }
 
-define void @reg22(i8* %Dst, i8 %val) {
+define void @reg22(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg22:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -71,11 +71,11 @@ define void @reg22(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vsteg %v0, 14(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 22, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 22, i1 false)
   ret void
 }
 
-define void @reg23(i8* %Dst, i8 %val) {
+define void @reg23(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg23:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -83,11 +83,11 @@ define void @reg23(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vsteg %v0, 15(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 23, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 23, i1 false)
   ret void
 }
 
-define void @reg24(i8* %Dst, i8 %val) {
+define void @reg24(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg24:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -95,11 +95,11 @@ define void @reg24(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vsteg %v0, 16(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 24, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 24, i1 false)
   ret void
 }
 
-define void @reg25(i8* %Dst, i8 %val) {
+define void @reg25(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg25:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -107,11 +107,11 @@ define void @reg25(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 9(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 25, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 25, i1 false)
   ret void
 }
 
-define void @reg26(i8* %Dst, i8 %val) {
+define void @reg26(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg26:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -119,11 +119,11 @@ define void @reg26(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 10(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 26, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 26, i1 false)
   ret void
 }
 
-define void @reg27(i8* %Dst, i8 %val) {
+define void @reg27(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg27:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -131,11 +131,11 @@ define void @reg27(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 11(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 27, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 27, i1 false)
   ret void
 }
 
-define void @reg28(i8* %Dst, i8 %val) {
+define void @reg28(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg28:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -143,11 +143,11 @@ define void @reg28(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 12(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 28, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 28, i1 false)
   ret void
 }
 
-define void @reg29(i8* %Dst, i8 %val) {
+define void @reg29(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg29:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -155,11 +155,11 @@ define void @reg29(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 13(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 29, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 29, i1 false)
   ret void
 }
 
-define void @reg30(i8* %Dst, i8 %val) {
+define void @reg30(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg30:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -167,11 +167,11 @@ define void @reg30(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 14(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 30, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 30, i1 false)
   ret void
 }
 
-define void @reg31(i8* %Dst, i8 %val) {
+define void @reg31(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg31:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -179,11 +179,11 @@ define void @reg31(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 15(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 31, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 31, i1 false)
   ret void
 }
 
-define void @reg32(i8* %Dst, i8 %val) {
+define void @reg32(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg32:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r3, %r3
@@ -191,230 +191,230 @@ define void @reg32(i8* %Dst, i8 %val) {
 ; CHECK-NEXT:    vst %v0, 16(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 32, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 32, i1 false)
   ret void
 }
 
-define void @reg33(i8* %Dst, i8 %val) {
+define void @reg33(ptr %Dst, i8 %val) {
 ; CHECK-LABEL: reg33:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stc %r3, 0(%r2)
 ; CHECK-NEXT:    mvc 1(32,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 %val, i64 33, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 %val, i64 33, i1 false)
   ret void
 }
 
 ;; Immediate value
 
-define void @imm17(i8* %Dst) {
+define void @imm17(ptr %Dst) {
 ; CHECK-LABEL: imm17:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvi 0(%r2), 1
 ; CHECK-NEXT:    mvc 1(16,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 17, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 17, i1 false)
   ret void
 }
 
-define void @imm18(i8* %Dst) {
+define void @imm18(ptr %Dst) {
 ; CHECK-LABEL: imm18:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    mvhhi 16(%r2), -1
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 18, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 18, i1 false)
   ret void
 }
 
-define void @zero18(i8* %Dst) {
+define void @zero18(ptr %Dst) {
 ; CHECK-LABEL: zero18:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    xc 0(18,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 0, i64 18, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 0, i64 18, i1 false)
   ret void
 }
 
-define void @imm19(i8* %Dst) {
+define void @imm19(ptr %Dst) {
 ; CHECK-LABEL: imm19:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vstef %v0, 15(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 19, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 19, i1 false)
   ret void
 }
 
-define void @imm20(i8* %Dst) {
+define void @imm20(ptr %Dst) {
 ; CHECK-LABEL: imm20:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    mvhi 16(%r2), -1
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 20, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 20, i1 false)
   ret void
 }
 
-define void @imm21(i8* %Dst) {
+define void @imm21(ptr %Dst) {
 ; CHECK-LABEL: imm21:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vsteg %v0, 13(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 21, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 21, i1 false)
   ret void
 }
 
-define void @imm22(i8* %Dst) {
+define void @imm22(ptr %Dst) {
 ; CHECK-LABEL: imm22:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    mvghi 14(%r2), -1
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 22, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 22, i1 false)
   ret void
 }
 
-define void @imm23(i8* %Dst) {
+define void @imm23(ptr %Dst) {
 ; CHECK-LABEL: imm23:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vsteg %v0, 15(%r2), 0
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 23, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 23, i1 false)
   ret void
 }
 
-define void @imm24(i8* %Dst) {
+define void @imm24(ptr %Dst) {
 ; CHECK-LABEL: imm24:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    mvghi 16(%r2), -1
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 24, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 24, i1 false)
   ret void
 }
 
-define void @imm25(i8* %Dst) {
+define void @imm25(ptr %Dst) {
 ; CHECK-LABEL: imm25:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vst %v0, 9(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 25, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 25, i1 false)
   ret void
 }
 
-define void @imm26(i8* %Dst) {
+define void @imm26(ptr %Dst) {
 ; CHECK-LABEL: imm26:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 10(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 26, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 26, i1 false)
   ret void
 }
 
-define void @zero26(i8* %Dst) {
+define void @zero26(ptr %Dst) {
 ; CHECK-LABEL: zero26:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    xc 0(26,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 0, i64 26, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 0, i64 26, i1 false)
   ret void
 }
 
-define void @imm27(i8* %Dst) {
+define void @imm27(ptr %Dst) {
 ; CHECK-LABEL: imm27:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vst %v0, 11(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 27, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 27, i1 false)
   ret void
 }
 
-define void @imm28(i8* %Dst) {
+define void @imm28(ptr %Dst) {
 ; CHECK-LABEL: imm28:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 12(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 28, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 28, i1 false)
   ret void
 }
 
-define void @imm29(i8* %Dst) {
+define void @imm29(ptr %Dst) {
 ; CHECK-LABEL: imm29:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vst %v0, 13(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 29, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 29, i1 false)
   ret void
 }
 
-define void @imm30(i8* %Dst) {
+define void @imm30(ptr %Dst) {
 ; CHECK-LABEL: imm30:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 14(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 30, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 30, i1 false)
   ret void
 }
 
-define void @imm31(i8* %Dst) {
+define void @imm31(ptr %Dst) {
 ; CHECK-LABEL: imm31:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vst %v0, 15(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 31, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 31, i1 false)
   ret void
 }
 
-define void @imm32(i8* %Dst) {
+define void @imm32(ptr %Dst) {
 ; CHECK-LABEL: imm32:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vgbm %v0, 65535
 ; CHECK-NEXT:    vst %v0, 16(%r2), 4
 ; CHECK-NEXT:    vst %v0, 0(%r2), 4
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 -1, i64 32, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 -1, i64 32, i1 false)
   ret void
 }
 
-define void @zero32(i8* %Dst) {
+define void @zero32(ptr %Dst) {
 ; CHECK-LABEL: zero32:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    xc 0(32,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 0, i64 32, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 0, i64 32, i1 false)
   ret void
 }
 
-define void @imm33(i8* %Dst) {
+define void @imm33(ptr %Dst) {
 ; CHECK-LABEL: imm33:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvi 0(%r2), 1
 ; CHECK-NEXT:    mvc 1(32,%r2), 0(%r2)
 ; CHECK-NEXT:    br %r14
-  call void @llvm.memset.p0i8.i64(i8* align 16 %Dst, i8 1, i64 33, i1 false)
+  call void @llvm.memset.p0.i64(ptr align 16 %Dst, i8 1, i64 33, i1 false)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/misched-cutoff.ll b/llvm/test/CodeGen/SystemZ/misched-cutoff.ll
index 859c7398f2cd1..b593f538746c9 100644
--- a/llvm/test/CodeGen/SystemZ/misched-cutoff.ll
+++ b/llvm/test/CodeGen/SystemZ/misched-cutoff.ll
@@ -5,7 +5,7 @@
 ; Test that the post-ra scheduler does not crash with -misched-cutoff.
 
 @g_184 = external dso_local global i16, align 2
- at g_294 = external dso_local global [1 x [9 x i32*]], align 8
+ at g_294 = external dso_local global [1 x [9 x ptr]], align 8
 
 define void @fun() {
 bb:
@@ -33,19 +33,19 @@ bb1:                                              ; preds = %bb1, %bb
   %i19 = select i1 false, i32 %i18, i32 undef
   %i20 = lshr i32 %i19, 1
   %i21 = select i1 false, i32 %i20, i32 undef
-  store i32 %i21, i32* undef, align 4
+  store i32 %i21, ptr undef, align 4
   %i22 = add nuw nsw i64 %i, 1
   %i23 = icmp ult i64 %i, 255
   br i1 %i23, label %bb1, label %bb24
 
 bb24:                                             ; preds = %bb1
-  %i25 = load volatile i16, i16* undef
-  store i32* null, i32** undef, align 8
-  store i32 -10, i32* undef, align 4
-  store i32 -10, i32* null, align 4
-  store i32 -10, i32* undef, align 4
-  store i16 0, i16* @g_184, align 2
-  store i32* null, i32** getelementptr inbounds ([1 x [9 x i32*]], [1 x [9 x i32*]]* @g_294, i64 0, i64 0, i64 2), align 8
-  store i32* null, i32** getelementptr inbounds ([1 x [9 x i32*]], [1 x [9 x i32*]]* @g_294, i64 0, i64 0, i64 5), align 8
+  %i25 = load volatile i16, ptr undef
+  store ptr null, ptr undef, align 8
+  store i32 -10, ptr undef, align 4
+  store i32 -10, ptr null, align 4
+  store i32 -10, ptr undef, align 4
+  store i16 0, ptr @g_184, align 2
+  store ptr null, ptr getelementptr inbounds ([1 x [9 x ptr]], ptr @g_294, i64 0, i64 0, i64 2), align 8
+  store ptr null, ptr getelementptr inbounds ([1 x [9 x ptr]], ptr @g_294, i64 0, i64 0, i64 5), align 8
   unreachable
 }

diff  --git a/llvm/test/CodeGen/SystemZ/multiselect.ll b/llvm/test/CodeGen/SystemZ/multiselect.ll
index 672a302a540e4..66473ce012ca8 100644
--- a/llvm/test/CodeGen/SystemZ/multiselect.ll
+++ b/llvm/test/CodeGen/SystemZ/multiselect.ll
@@ -3,7 +3,7 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -disable-block-placement | FileCheck %s
 
-define void @test0(i32 signext %positive, double %base, double %offset, double* %rmin, double* %rmax) {
+define void @test0(i32 signext %positive, double %base, double %offset, ptr %rmin, ptr %rmax) {
 entry:
 ; CHECK-LABEL: test0
 ; CHECK: cijlh %r2, 0,
@@ -15,8 +15,8 @@ entry:
   %add = fadd double %base, %offset
   %min = select i1 %tobool, double %add, double %base
   %max = select i1 %tobool, double %base, double %add
-  store double %min, double* %rmin, align 8
-  store double %max, double* %rmax, align 8
+  store double %min, ptr %rmin, align 8
+  store double %max, ptr %rmax, align 8
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/no-vx.ll b/llvm/test/CodeGen/SystemZ/no-vx.ll
index a590739e547ea..76d6c971318dc 100644
--- a/llvm/test/CodeGen/SystemZ/no-vx.ll
+++ b/llvm/test/CodeGen/SystemZ/no-vx.ll
@@ -4,7 +4,7 @@
 ; use of vector instructions, even if +vector-enhancements-1 if given.
 
 ; Function Attrs: noinline nounwind optnone
-define dso_local signext i32 @foo(fp128* %0, fp128* %1) #0 {
+define dso_local signext i32 @foo(ptr %0, ptr %1) #0 {
 ; CHECK-LABEL: @foo
 ; CHECK-NOT: vl
 ; CHECK-NOT: vst
@@ -14,19 +14,19 @@ entry:
   %arg2.addr = alloca fp128, align 8
   %indirect-arg-temp = alloca fp128, align 8
   %indirect-arg-temp1 = alloca fp128, align 8
-  %arg1 = load fp128, fp128* %0, align 8
-  %arg2 = load fp128, fp128* %1, align 8
-  store fp128 %arg1, fp128* %arg1.addr, align 8
-  store fp128 %arg2, fp128* %arg2.addr, align 8
-  %2 = load fp128, fp128* %arg1.addr, align 8
-  %3 = load fp128, fp128* %arg2.addr, align 8
-  store fp128 %2, fp128* %indirect-arg-temp, align 8
-  store fp128 %3, fp128* %indirect-arg-temp1, align 8
-  %call = call signext i32 @bar(i32 signext 2, fp128* %indirect-arg-temp, fp128* %indirect-arg-temp1)
+  %arg1 = load fp128, ptr %0, align 8
+  %arg2 = load fp128, ptr %1, align 8
+  store fp128 %arg1, ptr %arg1.addr, align 8
+  store fp128 %arg2, ptr %arg2.addr, align 8
+  %2 = load fp128, ptr %arg1.addr, align 8
+  %3 = load fp128, ptr %arg2.addr, align 8
+  store fp128 %2, ptr %indirect-arg-temp, align 8
+  store fp128 %3, ptr %indirect-arg-temp1, align 8
+  %call = call signext i32 @bar(i32 signext 2, ptr %indirect-arg-temp, ptr %indirect-arg-temp1)
   ret i32 %call
 }
 
-declare dso_local signext i32 @bar(i32 signext, fp128*, fp128*) #1
+declare dso_local signext i32 @bar(i32 signext, ptr, ptr) #1
 
 attributes #0 = { noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="z14" "target-features"="+transactional-execution,+vector-enhancements-1,-vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
 attributes #1 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="z14" "target-features"="+transactional-execution,+vector-enhancements-1,-vector" "unsafe-fp-math"="false" "use-soft-float"="false" }

diff  --git a/llvm/test/CodeGen/SystemZ/or-01.ll b/llvm/test/CodeGen/SystemZ/or-01.ll
index c8eb74a5603af..1928fcd26a5cc 100644
--- a/llvm/test/CodeGen/SystemZ/or-01.ll
+++ b/llvm/test/CodeGen/SystemZ/or-01.ll
@@ -15,92 +15,92 @@ define i32 @f1(i32 %a, i32 %b) {
 }
 
 ; Check the low end of the O range.
-define i32 @f2(i32 %a, i32 *%src) {
+define i32 @f2(i32 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: o %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the high end of the aligned O range.
-define i32 @f3(i32 %a, i32 *%src) {
+define i32 @f3(i32 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: o %r2, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the next word up, which should use OY instead of O.
-define i32 @f4(i32 %a, i32 *%src) {
+define i32 @f4(i32 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: oy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the high end of the aligned OY range.
-define i32 @f5(i32 %a, i32 *%src) {
+define i32 @f5(i32 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: oy %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 %a, i32 *%src) {
+define i32 @f6(i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: o %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the high end of the negative aligned OY range.
-define i32 @f7(i32 %a, i32 *%src) {
+define i32 @f7(i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: oy %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the low end of the OY range.
-define i32 @f8(i32 %a, i32 *%src) {
+define i32 @f8(i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: oy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i32 %a, i32 *%src) {
+define i32 @f9(i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: o %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
@@ -112,8 +112,8 @@ define i32 @f10(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
@@ -125,38 +125,38 @@ define i32 @f11(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %or = or i32 %a, %b
   ret i32 %or
 }
 
 ; Check that ORs of spilled values can use O rather than OR.
-define i32 @f12(i32 *%ptr0) {
+define i32 @f12(ptr %ptr0) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: o %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/or-03.ll b/llvm/test/CodeGen/SystemZ/or-03.ll
index ccc1d800245f5..326820744c547 100644
--- a/llvm/test/CodeGen/SystemZ/or-03.ll
+++ b/llvm/test/CodeGen/SystemZ/or-03.ll
@@ -15,70 +15,70 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; Check OG with no displacement.
-define i64 @f2(i64 %a, i64 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: og %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %or = or i64 %a, %b
   ret i64 %or
 }
 
 ; Check the high end of the aligned OG range.
-define i64 @f3(i64 %a, i64 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: og %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %or = or i64 %a, %b
   ret i64 %or
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: og %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %or = or i64 %a, %b
   ret i64 %or
 }
 
 ; Check the high end of the negative aligned OG range.
-define i64 @f5(i64 %a, i64 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: og %r2, -8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %or = or i64 %a, %b
   ret i64 %or
 }
 
 ; Check the low end of the OG range.
-define i64 @f6(i64 %a, i64 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: og %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %or = or i64 %a, %b
   ret i64 %or
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i64 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: og %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %or = or i64 %a, %b
   ret i64 %or
 }
@@ -90,38 +90,38 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %or = or i64 %a, %b
   ret i64 %or
 }
 
 ; Check that ORs of spilled values can use OG rather than OGR.
-define i64 @f9(i64 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: og %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/or-05.ll b/llvm/test/CodeGen/SystemZ/or-05.ll
index 59b8406e53e3d..6ec352fa7b419 100644
--- a/llvm/test/CodeGen/SystemZ/or-05.ll
+++ b/llvm/test/CodeGen/SystemZ/or-05.ll
@@ -3,134 +3,134 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the lowest useful constant, expressed as a signed integer.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: oi 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %or = or i8 %val, -255
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the highest useful constant, expressed as a signed integer.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %or = or i8 %val, -2
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the lowest useful constant, expressed as an unsigned integer.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: oi 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 1
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the highest useful constant, expressed as a unsigned integer.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 254
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the high end of the OI range.
-define void @f5(i8 *%src) {
+define void @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: oi 4095(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which should use OIY instead of OI.
-define void @f6(i8 *%src) {
+define void @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: oiy 4096(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the high end of the OIY range.
-define void @f7(i8 *%src) {
+define void @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: oiy 524287(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(i8 *%src) {
+define void @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, 524288
 ; CHECK: oi 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative OIY range.
-define void @f9(i8 *%src) {
+define void @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: oiy -1(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the low end of the OIY range.
-define void @f10(i8 *%src) {
+define void @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: oiy -524288(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f11(i8 *%src) {
+define void @f11(ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r2, -524289
 ; CHECK: oi 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
@@ -142,10 +142,10 @@ define void @f12(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }
 
@@ -157,9 +157,9 @@ define void @f13(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %or = or i8 %val, 127
-  store i8 %or, i8 *%ptr
+  store i8 %or, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/or-06.ll b/llvm/test/CodeGen/SystemZ/or-06.ll
index b47f52de8686b..1cf47d568bf51 100644
--- a/llvm/test/CodeGen/SystemZ/or-06.ll
+++ b/llvm/test/CodeGen/SystemZ/or-06.ll
@@ -4,105 +4,105 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Zero extension to 32 bits, negative constant.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %or = or i32 %ext, -2
   %trunc = trunc i32 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 64 bits, negative constant.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %or = or i64 %ext, -2
   %trunc = trunc i64 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 32 bits, positive constant.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %or = or i32 %ext, 254
   %trunc = trunc i32 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 64 bits, positive constant.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %or = or i64 %ext, 254
   %trunc = trunc i64 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 32 bits, negative constant.
-define void @f5(i8 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %or = or i32 %ext, -2
   %trunc = trunc i32 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 64 bits, negative constant.
-define void @f6(i8 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %or = or i64 %ext, -2
   %trunc = trunc i64 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 32 bits, positive constant.
-define void @f7(i8 *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %or = or i32 %ext, 254
   %trunc = trunc i32 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 64 bits, positive constant.
-define void @f8(i8 *%ptr) {
+define void @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: oi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %or = or i64 %ext, 254
   %trunc = trunc i64 %or to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/or-08.ll b/llvm/test/CodeGen/SystemZ/or-08.ll
index b2aa4146fb350..019077cc30fa1 100644
--- a/llvm/test/CodeGen/SystemZ/or-08.ll
+++ b/llvm/test/CodeGen/SystemZ/or-08.ll
@@ -3,54 +3,54 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test the simple i8 case.
-define void @f1(i8 *%ptr1) {
+define void @f1(ptr %ptr1) {
 ; CHECK-LABEL: f1:
 ; CHECK: oc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
-  %old = load i8, i8 *%ptr2
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
+  %old = load i8, ptr %ptr2
   %or = or i8 %val, %old
-  store i8 %or, i8 *%ptr2
+  store i8 %or, ptr %ptr2
   ret void
 }
 
 ; Test the simple i16 case.
-define void @f2(i16 *%ptr1) {
+define void @f2(ptr %ptr1) {
 ; CHECK-LABEL: f2:
 ; CHECK: oc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
-  %old = load i16, i16 *%ptr2
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
+  %old = load i16, ptr %ptr2
   %or = or i16 %val, %old
-  store i16 %or, i16 *%ptr2
+  store i16 %or, ptr %ptr2
   ret void
 }
 
 ; Test the simple i32 case.
-define void @f3(i32 *%ptr1) {
+define void @f3(ptr %ptr1) {
 ; CHECK-LABEL: f3:
 ; CHECK: oc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
-  %old = load i32, i32 *%ptr2
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
+  %old = load i32, ptr %ptr2
   %or = or i32 %old, %val
-  store i32 %or, i32 *%ptr2
+  store i32 %or, ptr %ptr2
   ret void
 }
 
 ; Test the i64 case.
-define void @f4(i64 *%ptr1) {
+define void @f4(ptr %ptr1) {
 ; CHECK-LABEL: f4:
 ; CHECK: oc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2
   %or = or i64 %old, %val
-  store i64 %or, i64 *%ptr2
+  store i64 %or, ptr %ptr2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/pie.ll b/llvm/test/CodeGen/SystemZ/pie.ll
index a3b33c4fa4cef..3d4045781a48c 100644
--- a/llvm/test/CodeGen/SystemZ/pie.ll
+++ b/llvm/test/CodeGen/SystemZ/pie.ll
@@ -2,8 +2,8 @@
 
 @foo = dso_local global i32 42
 
-define dso_local i32* @get_foo() {
-  ret i32* @foo
+define dso_local ptr @get_foo() {
+  ret ptr @foo
 }
 
 ; CHECK: larl    %r2, foo{{$}}

diff  --git a/llvm/test/CodeGen/SystemZ/pr31710.ll b/llvm/test/CodeGen/SystemZ/pr31710.ll
index 1123827fd939c..d12a265cbfeda 100644
--- a/llvm/test/CodeGen/SystemZ/pr31710.ll
+++ b/llvm/test/CodeGen/SystemZ/pr31710.ll
@@ -5,27 +5,27 @@
 ; release mode or hitting an assert if they're enabled.
 
 ; CHECK: btldata:
-define void @btldata(i64* %u0, i32** %p0, i32** %p1, i32** %p3, i32** %p5, i32** %p7) {
+define void @btldata(ptr %u0, ptr %p0, ptr %p1, ptr %p3, ptr %p5, ptr %p7) {
 entry:
-  %x0 = load i32*, i32** %p0, align 8, !tbaa !0
-  store i64 0, i64* %u0, align 8, !tbaa !4
-  %x1 = load i32*, i32** %p1, align 8, !tbaa !0
-  %x2 = load i32, i32* %x1, align 4, !tbaa !6
+  %x0 = load ptr, ptr %p0, align 8, !tbaa !0
+  store i64 0, ptr %u0, align 8, !tbaa !4
+  %x1 = load ptr, ptr %p1, align 8, !tbaa !0
+  %x2 = load i32, ptr %x1, align 4, !tbaa !6
   %x2ext = sext i32 %x2 to i64
-  store i32 %x2, i32* %x1, align 4, !tbaa !6
-  %x3 = load i32*, i32** %p3, align 8, !tbaa !0
-  %ptr = getelementptr inbounds i32, i32* %x3, i64 %x2ext
-  %x4 = load i32, i32* %ptr, align 4, !tbaa !6
+  store i32 %x2, ptr %x1, align 4, !tbaa !6
+  %x3 = load ptr, ptr %p3, align 8, !tbaa !0
+  %ptr = getelementptr inbounds i32, ptr %x3, i64 %x2ext
+  %x4 = load i32, ptr %ptr, align 4, !tbaa !6
   %x4inc = add nsw i32 %x4, 1
-  store i32 %x4inc, i32* %ptr, align 4, !tbaa !6
-  store i64 undef, i64* %u0, align 8, !tbaa !4
-  %x5 = load i32*, i32** %p5, align 8, !tbaa !0
-  %x6 = load i32, i32* %x5, align 4, !tbaa !6
-  store i32 %x6, i32* %x5, align 4, !tbaa !6
-  %x7 = load i32*, i32** %p7, align 8, !tbaa !0
-  %x8 = load i32, i32* %x7, align 4, !tbaa !6
+  store i32 %x4inc, ptr %ptr, align 4, !tbaa !6
+  store i64 undef, ptr %u0, align 8, !tbaa !4
+  %x5 = load ptr, ptr %p5, align 8, !tbaa !0
+  %x6 = load i32, ptr %x5, align 4, !tbaa !6
+  store i32 %x6, ptr %x5, align 4, !tbaa !6
+  %x7 = load ptr, ptr %p7, align 8, !tbaa !0
+  %x8 = load i32, ptr %x7, align 4, !tbaa !6
   %x8inc = add nsw i32 %x8, 1
-  store i32 %x8inc, i32* %x7, align 4, !tbaa !6
+  store i32 %x8inc, ptr %x7, align 4, !tbaa !6
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/pr32372.ll b/llvm/test/CodeGen/SystemZ/pr32372.ll
index 4dc8b6bf01f98..809960a01d712 100644
--- a/llvm/test/CodeGen/SystemZ/pr32372.ll
+++ b/llvm/test/CodeGen/SystemZ/pr32372.ll
@@ -1,7 +1,7 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
 ; RUN: llc %s -o - -mtriple=s390x-linux-gnu | FileCheck %s
 
-define void @pr32372(i8*) {
+define void @pr32372(ptr) {
 ; CHECK-LABEL: pr32372:
 ; CHECK:       # %bb.0: # %BB
 ; CHECK-NEXT:    mvhhi 0(%r1), -3825
@@ -9,9 +9,9 @@ define void @pr32372(i8*) {
 ; CHECK-NEXT:    # =>This Inner Loop Header: Depth=1
 ; CHECK-NEXT:    j .LBB0_1
 BB:
-  %L = load i8, i8* %0
-  store i16 -3825, i16* undef
-  %L5 = load i8, i8* %0
+  %L = load i8, ptr %0
+  store i16 -3825, ptr undef
+  %L5 = load i8, ptr %0
   %B8 = call { i8, i1 } @llvm.umul.with.overflow.i8(i8 %L5, i8 %L)
   %B9 = extractvalue {i8, i1} %B8, 0
   %I107 = insertelement <8 x i8> zeroinitializer, i8 %B9, i32 7

diff  --git a/llvm/test/CodeGen/SystemZ/pr32505.ll b/llvm/test/CodeGen/SystemZ/pr32505.ll
index 0cf6b67f0a298..b342ade675ee6 100644
--- a/llvm/test/CodeGen/SystemZ/pr32505.ll
+++ b/llvm/test/CodeGen/SystemZ/pr32505.ll
@@ -3,7 +3,7 @@
 
 target triple = "s390x-ibm-linux"
 
-define <2 x float> @pr32505(<2 x i8> * %a) {
+define <2 x float> @pr32505(ptr %a) {
 ; CHECK-LABEL: pr32505:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    lbh %r0, 1(%r2)
@@ -13,7 +13,7 @@ define <2 x float> @pr32505(<2 x i8> * %a) {
 ; CHECK-NEXT:    # kill: def $f0s killed $f0s killed $f0d
 ; CHECK-NEXT:    # kill: def $f2s killed $f2s killed $f2d
 ; CHECK-NEXT:    br %r14
-  %L17 = load <2 x i8>, <2 x i8>* %a
+  %L17 = load <2 x i8>, ptr %a
   %Se21 = sext <2 x i8> %L17 to <2 x i32>
   %BC = bitcast <2 x i32> %Se21 to <2 x float>
   ret <2 x float> %BC

diff  --git a/llvm/test/CodeGen/SystemZ/pr36164.ll b/llvm/test/CodeGen/SystemZ/pr36164.ll
index 1bde1254a1e08..e4ac2f5e72d67 100644
--- a/llvm/test/CodeGen/SystemZ/pr36164.ll
+++ b/llvm/test/CodeGen/SystemZ/pr36164.ll
@@ -52,47 +52,47 @@ define void @main() local_unnamed_addr #0 {
   br label %1
 
 ; <label>:1:                                      ; preds = %1, %0
-  store i32 1, i32* @g_73, align 4
-  %2 = load i64, i64* @g_938, align 8
-  store i32 0, i32* @g_69, align 4
-  %3 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %4 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %5 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %6 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 1, i32* @g_69, align 4
-  %7 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %8 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 3, i32* @g_69, align 4
-  %9 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %10 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 1, i32* @g_69, align 4
-  %11 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 2, i32* @g_69, align 4
-  %12 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 3, i32* @g_69, align 4
-  %13 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 0, i32* @g_69, align 4
-  %14 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %15 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %16 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  %17 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 1, i32* @g_69, align 4
-  %18 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 2, i32* @g_69, align 4
-  %19 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 3, i32* @g_69, align 4
-  %20 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 0, i32* @g_69, align 4
-  %21 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 1, i32* @g_69, align 4
-  %22 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 2, i32* @g_69, align 4
-  %23 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 3, i32* @g_69, align 4
+  store i32 1, ptr @g_73, align 4
+  %2 = load i64, ptr @g_938, align 8
+  store i32 0, ptr @g_69, align 4
+  %3 = load volatile i32, ptr @g_832, align 4
+  %4 = load volatile i32, ptr @g_832, align 4
+  %5 = load volatile i32, ptr @g_832, align 4
+  %6 = load volatile i32, ptr @g_832, align 4
+  store i32 1, ptr @g_69, align 4
+  %7 = load volatile i32, ptr @g_832, align 4
+  %8 = load volatile i32, ptr @g_832, align 4
+  store i32 3, ptr @g_69, align 4
+  %9 = load volatile i32, ptr @g_832, align 4
+  %10 = load volatile i32, ptr @g_832, align 4
+  store i32 1, ptr @g_69, align 4
+  %11 = load volatile i32, ptr @g_832, align 4
+  store i32 2, ptr @g_69, align 4
+  %12 = load volatile i32, ptr @g_832, align 4
+  store i32 3, ptr @g_69, align 4
+  %13 = load volatile i32, ptr @g_832, align 4
+  store i32 0, ptr @g_69, align 4
+  %14 = load volatile i32, ptr @g_832, align 4
+  %15 = load volatile i32, ptr @g_832, align 4
+  %16 = load volatile i32, ptr @g_832, align 4
+  %17 = load volatile i32, ptr @g_832, align 4
+  store i32 1, ptr @g_69, align 4
+  %18 = load volatile i32, ptr @g_832, align 4
+  store i32 2, ptr @g_69, align 4
+  %19 = load volatile i32, ptr @g_832, align 4
+  store i32 3, ptr @g_69, align 4
+  %20 = load volatile i32, ptr @g_832, align 4
+  store i32 0, ptr @g_69, align 4
+  %21 = load volatile i32, ptr @g_832, align 4
+  store i32 1, ptr @g_69, align 4
+  %22 = load volatile i32, ptr @g_832, align 4
+  store i32 2, ptr @g_69, align 4
+  %23 = load volatile i32, ptr @g_832, align 4
+  store i32 3, ptr @g_69, align 4
   %24 = add i64 %2, 24
-  store i64 %24, i64* @g_938, align 8
-  %25 = load volatile i32, i32* getelementptr inbounds (%0, %0* @g_832, i64 0, i32 0), align 4
-  store i32 4, i32* @g_69, align 4
-  store i1 true, i1* @g_11, align 4
+  store i64 %24, ptr @g_938, align 8
+  %25 = load volatile i32, ptr @g_832, align 4
+  store i32 4, ptr @g_69, align 4
+  store i1 true, ptr @g_11, align 4
   br label %1
 }

diff  --git a/llvm/test/CodeGen/SystemZ/pr47019.ll b/llvm/test/CodeGen/SystemZ/pr47019.ll
index a407b8321ef8d..19ff67a53b105 100644
--- a/llvm/test/CodeGen/SystemZ/pr47019.ll
+++ b/llvm/test/CodeGen/SystemZ/pr47019.ll
@@ -20,8 +20,8 @@ bb1:                                              ; preds = %bb1, %bb
   br i1 undef, label %bb2, label %bb1
 
 bb2:                                              ; preds = %bb1
-  store i32 0, i32* getelementptr inbounds ([1 x [10 x [8 x i32]]], [1 x [10 x [8 x i32]]]* @g_317, i64 0, i64 0, i64 9, i64 2), align 4
-  %i = load i32, i32* getelementptr inbounds ([1 x [10 x [8 x i32]]], [1 x [10 x [8 x i32]]]* @g_317, i64 0, i64 0, i64 9, i64 2), align 4
+  store i32 0, ptr getelementptr inbounds ([1 x [10 x [8 x i32]]], ptr @g_317, i64 0, i64 0, i64 9, i64 2), align 4
+  %i = load i32, ptr getelementptr inbounds ([1 x [10 x [8 x i32]]], ptr @g_317, i64 0, i64 0, i64 9, i64 2), align 4
   %i3 = insertelement <8 x i32> undef, i32 %i, i32 0
   %i4 = shufflevector <8 x i32> %i3, <8 x i32> undef, <8 x i32> zeroinitializer
   %i5 = add nsw <8 x i8> zeroinitializer, <i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6, i8 6>
@@ -38,7 +38,7 @@ bb2:                                              ; preds = %bb1
   %i16 = xor i32 %i15, 0
   %i17 = shl i32 %i16, 24
   %i18 = ashr exact i32 %i17, 24
-  store i32 %i18, i32* getelementptr inbounds ([9 x i32], [9 x i32]* @g_150, i64 0, i64 3), align 4
+  store i32 %i18, ptr getelementptr inbounds ([9 x i32], ptr @g_150, i64 0, i64 3), align 4
   unreachable
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/prefetch-01.ll b/llvm/test/CodeGen/SystemZ/prefetch-01.ll
index f184022f8a123..166fc9e590c88 100644
--- a/llvm/test/CodeGen/SystemZ/prefetch-01.ll
+++ b/llvm/test/CodeGen/SystemZ/prefetch-01.ll
@@ -2,77 +2,77 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare void @llvm.prefetch(i8*, i32, i32, i32)
+declare void @llvm.prefetch(ptr, i32, i32, i32)
 
 @g = dso_local global [4096 x i8] zeroinitializer
 
 ; Check that instruction read prefetches are ignored.
-define dso_local void @f1(i8 *%ptr) {
+define dso_local void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.prefetch(i8 *%ptr, i32 0, i32 0, i32 0)
+  call void @llvm.prefetch(ptr %ptr, i32 0, i32 0, i32 0)
   ret void
 }
 
 ; Check that instruction write prefetches are ignored.
-define dso_local void @f2(i8 *%ptr) {
+define dso_local void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  call void @llvm.prefetch(i8 *%ptr, i32 1, i32 0, i32 0)
+  call void @llvm.prefetch(ptr %ptr, i32 1, i32 0, i32 0)
   ret void
 }
 
 ; Check data read prefetches.
-define dso_local void @f3(i8 *%ptr) {
+define dso_local void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: pfd 1, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.prefetch(i8 *%ptr, i32 0, i32 0, i32 1)
+  call void @llvm.prefetch(ptr %ptr, i32 0, i32 0, i32 1)
   ret void
 }
 
 ; Check data write prefetches.
-define dso_local void @f4(i8 *%ptr) {
+define dso_local void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: pfd 2, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.prefetch(i8 *%ptr, i32 1, i32 0, i32 1)
+  call void @llvm.prefetch(ptr %ptr, i32 1, i32 0, i32 1)
   ret void
 }
 
 ; Check an address at the negative end of the range.
-define dso_local void @f5(i8 *%base, i64 %index) {
+define dso_local void @f5(ptr %base, i64 %index) {
 ; CHECK-LABEL: f5:
 ; CHECK: pfd 2, -524288({{%r2,%r3|%r3,%r2}})
 ; CHECK: br %r14
   %add = add i64 %index, -524288
-  %ptr = getelementptr i8, i8 *%base, i64 %add
-  call void @llvm.prefetch(i8 *%ptr, i32 1, i32 0, i32 1)
+  %ptr = getelementptr i8, ptr %base, i64 %add
+  call void @llvm.prefetch(ptr %ptr, i32 1, i32 0, i32 1)
   ret void
 }
 
 ; Check an address at the positive end of the range.
-define dso_local void @f6(i8 *%base, i64 %index) {
+define dso_local void @f6(ptr %base, i64 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK: pfd 2, 524287({{%r2,%r3|%r3,%r2}})
 ; CHECK: br %r14
   %add = add i64 %index, 524287
-  %ptr = getelementptr i8, i8 *%base, i64 %add
-  call void @llvm.prefetch(i8 *%ptr, i32 1, i32 0, i32 1)
+  %ptr = getelementptr i8, ptr %base, i64 %add
+  call void @llvm.prefetch(ptr %ptr, i32 1, i32 0, i32 1)
   ret void
 }
 
 ; Check that the next address up still compiles.
-define dso_local void @f7(i8 *%base, i64 %index) {
+define dso_local void @f7(ptr %base, i64 %index) {
 ; CHECK-LABEL: f7:
 ; CHECK: 524288
 ; CHECK: pfd 2,
 ; CHECK: br %r14
   %add = add i64 %index, 524288
-  %ptr = getelementptr i8, i8 *%base, i64 %add
-  call void @llvm.prefetch(i8 *%ptr, i32 1, i32 0, i32 1)
+  %ptr = getelementptr i8, ptr %base, i64 %add
+  call void @llvm.prefetch(ptr %ptr, i32 1, i32 0, i32 1)
   ret void
 }
 
@@ -81,7 +81,7 @@ define dso_local void @f8() {
 ; CHECK-LABEL: f8:
 ; CHECK: pfdrl 2, g
 ; CHECK: br %r14
-  %ptr = getelementptr [4096 x i8], [4096 x i8] *@g, i64 0, i64 0
-  call void @llvm.prefetch(i8 *%ptr, i32 1, i32 0, i32 1)
+  %ptr = getelementptr [4096 x i8], ptr at g, i64 0, i64 0
+  call void @llvm.prefetch(ptr %ptr, i32 1, i32 0, i32 1)
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/prefetch-02.ll b/llvm/test/CodeGen/SystemZ/prefetch-02.ll
index 5f417699f98a3..448d7b5650c7f 100644
--- a/llvm/test/CodeGen/SystemZ/prefetch-02.ll
+++ b/llvm/test/CodeGen/SystemZ/prefetch-02.ll
@@ -13,7 +13,7 @@
 ; NEAR-PREFETCH: call void @llvm.prefetch
 
 
-define void @fun(i32* nocapture %Src, i32* nocapture readonly %Dst) {
+define void @fun(ptr nocapture %Src, ptr nocapture readonly %Dst) {
 entry:
   br label %for.body
 
@@ -22,10 +22,10 @@ for.cond.cleanup:                                 ; preds = %for.body
 
 for.body:                                         ; preds = %for.body, %entry
   %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next.9, %for.body ]
-  %arrayidx = getelementptr inbounds i32, i32* %Dst, i64 %indvars.iv
-  %0 = load i32, i32* %arrayidx, align 4
-  %arrayidx2 = getelementptr inbounds i32, i32* %Src, i64 %indvars.iv
-  store i32 %0, i32* %arrayidx2, align 4
+  %arrayidx = getelementptr inbounds i32, ptr %Dst, i64 %indvars.iv
+  %0 = load i32, ptr %arrayidx, align 4
+  %arrayidx2 = getelementptr inbounds i32, ptr %Src, i64 %indvars.iv
+  store i32 %0, ptr %arrayidx2, align 4
   %indvars.iv.next.9 = add nuw nsw i64 %indvars.iv, 1600
   %cmp.9 = icmp ult i64 %indvars.iv.next.9, 11200
   br i1 %cmp.9, label %for.body, label %for.cond.cleanup

diff  --git a/llvm/test/CodeGen/SystemZ/prefetch-03.ll b/llvm/test/CodeGen/SystemZ/prefetch-03.ll
index 9c2e92689caf7..16392a88190cd 100644
--- a/llvm/test/CodeGen/SystemZ/prefetch-03.ll
+++ b/llvm/test/CodeGen/SystemZ/prefetch-03.ll
@@ -7,32 +7,32 @@
 ; prefetch in %for.body.
 ;
 ; CHECK-LABEL: for.body
-; CHECK: call void @llvm.prefetch.p0i8(i8* {{.*}}, i32 0
-; CHECK: call void @llvm.prefetch.p0i8(i8* {{.*}}, i32 1
+; CHECK: call void @llvm.prefetch.p0(ptr {{.*}}, i32 0
+; CHECK: call void @llvm.prefetch.p0(ptr {{.*}}, i32 1
 ; CHECK-LABEL: true
 ; CHECK-LABEL: false
 ; CHECK-LABEL: latch
 
-define void @fun(i32* nocapture %Src, i32* nocapture readonly %Dst) {
+define void @fun(ptr nocapture %Src, ptr nocapture readonly %Dst) {
 entry:
   br label %for.body
 
 for.body:
   %indvars.iv = phi i64 [ 0, %entry ], [ %indvars.iv.next.9, %latch ]
-  %arrayidx = getelementptr inbounds i32, i32* %Dst, i64 %indvars.iv
-  %0 = load i32, i32* %arrayidx, align 4
+  %arrayidx = getelementptr inbounds i32, ptr %Dst, i64 %indvars.iv
+  %0 = load i32, ptr %arrayidx, align 4
   %cmp = icmp sgt i32 %0, 0
   br i1 %cmp, label %true, label %false
 
 true:  
-  %arrayidx2 = getelementptr inbounds i32, i32* %Src, i64 %indvars.iv
-  store i32 %0, i32* %arrayidx2, align 4
+  %arrayidx2 = getelementptr inbounds i32, ptr %Src, i64 %indvars.iv
+  store i32 %0, ptr %arrayidx2, align 4
   br label %latch
 
 false:
   %a = add i64 %indvars.iv, 8
-  %arrayidx3 = getelementptr inbounds i32, i32* %Src, i64 %a
-  store i32 %0, i32* %arrayidx3, align 4
+  %arrayidx3 = getelementptr inbounds i32, ptr %Src, i64 %a
+  store i32 %0, ptr %arrayidx3, align 4
   br label %latch
 
 latch:

diff  --git a/llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll b/llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
index 0b872279f848d..678d9a9073155 100644
--- a/llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
+++ b/llvm/test/CodeGen/SystemZ/regcoal_remat_empty_subrange.ll
@@ -27,16 +27,16 @@ define void @main(i16 %in) {
 ; CHECK-NEXT:    stgrl %r2, g_39
 ; CHECK-NEXT:    stc %r5, 19(%r1)
 ; CHECK-NEXT:    br %r14
-  %tmp = load i32, i32* @g_151, align 4
+  %tmp = load i32, ptr @g_151, align 4
   %tmp3 = or i32 %tmp, 1
   %tmp4 = sext i32 %tmp3 to i64
   %tmp5 = srem i64 0, %tmp4
   %tmp6 = trunc i64 %tmp5 to i8
-  store i8 %tmp6, i8* getelementptr inbounds ([7 x [10 x i8]], [7 x [10 x i8]]* @g_222, i64 0, i64 1, i64 9), align 1
+  store i8 %tmp6, ptr getelementptr inbounds ([7 x [10 x i8]], ptr @g_222, i64 0, i64 1, i64 9), align 1
   %tmp7 = icmp slt i16 %in, 1
   %tmp8 = zext i1 %tmp7 to i64
   %tmp9 = srem i64 %tmp8, %tmp4
-  store i64 %tmp9, i64* @g_39, align 8
+  store i64 %tmp9, ptr @g_39, align 8
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/ret-addr-01.ll b/llvm/test/CodeGen/SystemZ/ret-addr-01.ll
index 9c3b246af5788..8111d2a72456d 100644
--- a/llvm/test/CodeGen/SystemZ/ret-addr-01.ll
+++ b/llvm/test/CodeGen/SystemZ/ret-addr-01.ll
@@ -3,13 +3,13 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; The current function's return address is in the link register.
-define i8* @rt0() norecurse nounwind readnone {
+define ptr @rt0() norecurse nounwind readnone {
 entry:
 ; CHECK-LABEL: rt0:
 ; CHECK: lgr  %r2, %r14
 ; CHECK: br   %r14
-  %0 = tail call i8* @llvm.returnaddress(i32 0)
-  ret i8* %0
+  %0 = tail call ptr @llvm.returnaddress(i32 0)
+  ret ptr %0
 }
 
-declare i8* @llvm.returnaddress(i32) nounwind readnone
+declare ptr @llvm.returnaddress(i32) nounwind readnone

diff  --git a/llvm/test/CodeGen/SystemZ/risbg-01.ll b/llvm/test/CodeGen/SystemZ/risbg-01.ll
index 28e871c3f7249..582c56ba87c03 100644
--- a/llvm/test/CodeGen/SystemZ/risbg-01.ll
+++ b/llvm/test/CodeGen/SystemZ/risbg-01.ll
@@ -267,7 +267,7 @@ define i64 @f20(i64 %foo) {
 ; Introduce a second use of %shr so that the ashr doesn't decompose to
 ; an lshr.
 ; NOTE: the extra move to %r2 should not be needed (temporary FAIL)
-define i32 @f21(i32 %foo, i32 *%dest) {
+define i32 @f21(i32 %foo, ptr %dest) {
 ; CHECK-LABEL: f21:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    # kill: def $r2l killed $r2l def $r2d
@@ -278,13 +278,13 @@ define i32 @f21(i32 %foo, i32 *%dest) {
 ; CHECK-NEXT:    lr %r2, %r0
 ; CHECK-NEXT:    br %r14
   %shr = ashr i32 %foo, 28
-  store i32 %shr, i32 *%dest
+  store i32 %shr, ptr %dest
   %and = and i32 %shr, 14
   ret i32 %and
 }
 
 ; ...and again with i64.
-define i64 @f22(i64 %foo, i64 *%dest) {
+define i64 @f22(i64 %foo, ptr %dest) {
 ; CHECK-LABEL: f22:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srag %r0, %r2, 60
@@ -292,7 +292,7 @@ define i64 @f22(i64 %foo, i64 *%dest) {
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %shr = ashr i64 %foo, 60
-  store i64 %shr, i64 *%dest
+  store i64 %shr, ptr %dest
   %and = and i64 %shr, 14
   ret i64 %and
 }
@@ -503,7 +503,7 @@ define i64 @f38(i64 %foo) {
 }
 
 ; Try a similar thing in which no shifted sign bits are kept.
-define i64 @f39(i64 %foo, i64 *%dest) {
+define i64 @f39(i64 %foo, ptr %dest) {
 ; CHECK-LABEL: f39:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srag %r0, %r2, 35
@@ -511,14 +511,14 @@ define i64 @f39(i64 %foo, i64 *%dest) {
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %ashr = ashr i64 %foo, 35
-  store i64 %ashr, i64 *%dest
+  store i64 %ashr, ptr %dest
   %shl = shl i64 %ashr, 2
   %and = and i64 %shl, 2147483647
   ret i64 %and
 }
 
 ; ...and again with the next highest shift value, where one sign bit is kept.
-define i64 @f40(i64 %foo, i64 *%dest) {
+define i64 @f40(i64 %foo, ptr %dest) {
 ; CHECK-LABEL: f40:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srag %r0, %r2, 36
@@ -526,7 +526,7 @@ define i64 @f40(i64 %foo, i64 *%dest) {
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %ashr = ashr i64 %foo, 36
-  store i64 %ashr, i64 *%dest
+  store i64 %ashr, ptr %dest
   %shl = shl i64 %ashr, 2
   %and = and i64 %shl, 2147483647
   ret i64 %and

diff  --git a/llvm/test/CodeGen/SystemZ/risbg-03.ll b/llvm/test/CodeGen/SystemZ/risbg-03.ll
index b637f40874b7a..eb2a578bbd488 100644
--- a/llvm/test/CodeGen/SystemZ/risbg-03.ll
+++ b/llvm/test/CodeGen/SystemZ/risbg-03.ll
@@ -16,7 +16,7 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; But we may fall back to RISBG if we can use the condition code.
-define i64 @f2(i64 %a, i64 %b, i32* %c) {
+define i64 @f2(i64 %a, i64 %b, ptr %c) {
 ; CHECK-LABEL: f2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    risbg %r2, %r3, 60, 62, 0
@@ -29,7 +29,7 @@ define i64 @f2(i64 %a, i64 %b, i32* %c) {
   %or = or i64 %anda, %andb
   %cmp = icmp sgt i64 %or, 0
   %conv = zext i1 %cmp to i32
-  store i32 %conv, i32* %c, align 4
+  store i32 %conv, ptr %c, align 4
   ret i64 %or
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/risbg-04.ll b/llvm/test/CodeGen/SystemZ/risbg-04.ll
index 9b4c076cfb2c2..5528c742ccc5a 100644
--- a/llvm/test/CodeGen/SystemZ/risbg-04.ll
+++ b/llvm/test/CodeGen/SystemZ/risbg-04.ll
@@ -254,7 +254,7 @@ define i64 @f20(i64 %foo) {
 ; Now try an arithmetic right shift in which the sign bits aren't needed.
 ; Introduce a second use of %shr so that the ashr doesn't decompose to
 ; an lshr.
-define i32 @f21(i32 %foo, i32 *%dest) {
+define i32 @f21(i32 %foo, ptr %dest) {
 ; CHECK-LABEL: f21:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srak %r0, %r2, 28
@@ -262,13 +262,13 @@ define i32 @f21(i32 %foo, i32 *%dest) {
 ; CHECK-NEXT:    st %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %shr = ashr i32 %foo, 28
-  store i32 %shr, i32 *%dest
+  store i32 %shr, ptr %dest
   %and = and i32 %shr, 14
   ret i32 %and
 }
 
 ; ...and again with i64.
-define i64 @f22(i64 %foo, i64 *%dest) {
+define i64 @f22(i64 %foo, ptr %dest) {
 ; CHECK-LABEL: f22:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srag %r0, %r2, 60
@@ -276,7 +276,7 @@ define i64 @f22(i64 %foo, i64 *%dest) {
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %shr = ashr i64 %foo, 60
-  store i64 %shr, i64 *%dest
+  store i64 %shr, ptr %dest
   %and = and i64 %shr, 14
   ret i64 %and
 }
@@ -481,7 +481,7 @@ define i64 @f38(i64 %foo) {
 }
 
 ; Try a similar thing in which no shifted sign bits are kept.
-define i64 @f39(i64 %foo, i64 *%dest) {
+define i64 @f39(i64 %foo, ptr %dest) {
 ; CHECK-LABEL: f39:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srag %r0, %r2, 35
@@ -489,14 +489,14 @@ define i64 @f39(i64 %foo, i64 *%dest) {
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %ashr = ashr i64 %foo, 35
-  store i64 %ashr, i64 *%dest
+  store i64 %ashr, ptr %dest
   %shl = shl i64 %ashr, 2
   %and = and i64 %shl, 2147483647
   ret i64 %and
 }
 
 ; ...and again with the next highest shift value, where one sign bit is kept.
-define i64 @f40(i64 %foo, i64 *%dest) {
+define i64 @f40(i64 %foo, ptr %dest) {
 ; CHECK-LABEL: f40:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    srag %r0, %r2, 36
@@ -504,7 +504,7 @@ define i64 @f40(i64 %foo, i64 *%dest) {
 ; CHECK-NEXT:    stg %r0, 0(%r3)
 ; CHECK-NEXT:    br %r14
   %ashr = ashr i64 %foo, 36
-  store i64 %ashr, i64 *%dest
+  store i64 %ashr, ptr %dest
   %shl = shl i64 %ashr, 2
   %and = and i64 %shl, 2147483647
   ret i64 %and

diff  --git a/llvm/test/CodeGen/SystemZ/rnsbg-01.ll b/llvm/test/CodeGen/SystemZ/rnsbg-01.ll
index 282810a781518..428a05c111150 100644
--- a/llvm/test/CodeGen/SystemZ/rnsbg-01.ll
+++ b/llvm/test/CodeGen/SystemZ/rnsbg-01.ll
@@ -189,13 +189,13 @@ define i64 @f17(i64 %a, i64 %b) {
 
 ; Test a combination involving an ASHR in which the sign bits matter.
 ; We can't use RNSBG for the ASHR in that case, but we can for the rest.
-define i32 @f18(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f18(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f18:
 ; CHECK: sra %r3, 4
 ; CHECK: rnsbg %r2, %r3, 32, 62, 1
 ; CHECK: br %r14
   %ashrb = ashr i32 %b, 4
-  store i32 %ashrb, i32 *%dest
+  store i32 %ashrb, ptr %dest
   %shlb = shl i32 %ashrb, 1
   %orb = or i32 %shlb, 1
   %and = and i32 %a, %orb
@@ -203,13 +203,13 @@ define i32 @f18(i32 %a, i32 %b, i32 *%dest) {
 }
 
 ; ...and again with i64.
-define i64 @f19(i64 %a, i64 %b, i64 *%dest) {
+define i64 @f19(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f19:
 ; CHECK: srag [[REG:%r[0145]]], %r3, 34
 ; CHECK: rnsbg %r2, [[REG]], 0, 62, 1
 ; CHECK: br %r14
   %ashrb = ashr i64 %b, 34
-  store i64 %ashrb, i64 *%dest
+  store i64 %ashrb, ptr %dest
   %shlb = shl i64 %ashrb, 1
   %orb = or i64 %shlb, 1
   %and = and i64 %a, %orb
@@ -217,12 +217,12 @@ define i64 @f19(i64 %a, i64 %b, i64 *%dest) {
 }
 
 ; Test a combination involving an ASHR in which the sign bits don't matter.
-define i32 @f20(i32 %a, i32 %b, i32 *%dest) {
+define i32 @f20(i32 %a, i32 %b, ptr %dest) {
 ; CHECK-LABEL: f20:
 ; CHECK: rnsbg %r2, %r3, 48, 62, 48
 ; CHECK: br %r14
   %ashrb = ashr i32 %b, 17
-  store i32 %ashrb, i32 *%dest
+  store i32 %ashrb, ptr %dest
   %shlb = shl i32 %ashrb, 1
   %orb = or i32 %shlb, -65535
   %and = and i32 %a, %orb
@@ -230,12 +230,12 @@ define i32 @f20(i32 %a, i32 %b, i32 *%dest) {
 }
 
 ; ...and again with i64.
-define i64 @f21(i64 %a, i64 %b, i64 *%dest) {
+define i64 @f21(i64 %a, i64 %b, ptr %dest) {
 ; CHECK-LABEL: f21:
 ; CHECK: rnsbg %r2, %r3, 48, 62, 16
 ; CHECK: br %r14
   %ashrb = ashr i64 %b, 49
-  store i64 %ashrb, i64 *%dest
+  store i64 %ashrb, ptr %dest
   %shlb = shl i64 %ashrb, 1
   %orb = or i64 %shlb, -65535
   %and = and i64 %a, %orb

diff  --git a/llvm/test/CodeGen/SystemZ/rosbg-02.ll b/llvm/test/CodeGen/SystemZ/rosbg-02.ll
index 8a7357a5318fa..e9a78b20451f9 100644
--- a/llvm/test/CodeGen/SystemZ/rosbg-02.ll
+++ b/llvm/test/CodeGen/SystemZ/rosbg-02.ll
@@ -8,17 +8,17 @@
 
 ; Function Attrs: nounwind
 define void @main() {
-  %1 = load i32, i32* undef, align 4
-  store i16 -28141, i16* @g_136, align 2
-  %2 = load i32, i32* undef, align 4
+  %1 = load i32, ptr undef, align 4
+  store i16 -28141, ptr @g_136, align 2
+  %2 = load i32, ptr undef, align 4
   %3 = xor i32 -28141, %2
   %4 = xor i32 %1, %3
   %5 = sext i32 %4 to i64
   %6 = icmp sgt i64 0, %5
   %7 = zext i1 %6 to i32
-  %8 = load i32, i32* @g_999, align 4
+  %8 = load i32, ptr @g_999, align 4
   %9 = or i32 %8, %7
 ; CHECK: rosbg   {{%r[0-9]+}}, {{%r[0-9]+}}, 63, 63, 33
-  store i32 %9, i32* @g_999, align 4
+  store i32 %9, ptr @g_999, align 4
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/selectcc-04.ll b/llvm/test/CodeGen/SystemZ/selectcc-04.ll
index 2fb6a4ecb2b37..8c5f015c00465 100644
--- a/llvm/test/CodeGen/SystemZ/selectcc-04.ll
+++ b/llvm/test/CodeGen/SystemZ/selectcc-04.ll
@@ -16,8 +16,8 @@ define dso_local void @fun() {
 entry:
   %tmp = add nuw nsw i16 0, 238
   %tmp4 = sub nsw i16 %tmp, 0
-  store i64 4, i64* getelementptr inbounds (<{ i64, i8, i8, i8, i8, i8, i8 }>, <{ i64, i8, i8, i8, i8, i8, i8 }>* @g_277, i64 0, i32 0), align 8
-  %tmp5 = load i64, i64* getelementptr inbounds ([7 x i64], [7 x i64]* @g_1531, i64 0, i64 5), align 8
+  store i64 4, ptr getelementptr inbounds (<{ i64, i8, i8, i8, i8, i8, i8 }>, ptr @g_277, i64 0, i32 0), align 8
+  %tmp5 = load i64, ptr getelementptr inbounds ([7 x i64], ptr @g_1531, i64 0, i64 5), align 8
   %tmp6 = trunc i64 %tmp5 to i32
   %tmp7 = trunc i64 %tmp5 to i16
   %tmp8 = shl i32 %tmp6, 24
@@ -33,6 +33,6 @@ entry:
   %tmp18 = icmp sge i32 %tmp17, undef
   %tmp19 = zext i1 %tmp18 to i32
   %tmp20 = or i32 %tmp15, %tmp19
-  store i32 %tmp20, i32* @g_62.6, align 4
+  store i32 %tmp20, ptr @g_62.6, align 4
   unreachable
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-01.ll b/llvm/test/CodeGen/SystemZ/shift-01.ll
index 9c1142d633aad..f50eba9929767 100644
--- a/llvm/test/CodeGen/SystemZ/shift-01.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-01.ll
@@ -114,13 +114,13 @@ define i32 @f10(i32 %a, i32 %b, i32 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i32 @f11(i32 %a, i32 *%ptr) {
+define i32 @f11(i32 %a, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 0(%r3)
 ; CHECK-NEXT:    sll %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i32, i32 *%ptr
+  %amt = load i32, ptr %ptr
   %shift = shl i32 %a, %amt
   ret i32 %shift
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-02.ll b/llvm/test/CodeGen/SystemZ/shift-02.ll
index cf3e69d556d5e..8921ca1d792de 100644
--- a/llvm/test/CodeGen/SystemZ/shift-02.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-02.ll
@@ -114,13 +114,13 @@ define i32 @f10(i32 %a, i32 %b, i32 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i32 @f11(i32 %a, i32 *%ptr) {
+define i32 @f11(i32 %a, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 0(%r3)
 ; CHECK-NEXT:    srl %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i32, i32 *%ptr
+  %amt = load i32, ptr %ptr
   %shift = lshr i32 %a, %amt
   ret i32 %shift
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-03.ll b/llvm/test/CodeGen/SystemZ/shift-03.ll
index e5a95f9707b56..5f345c7d245b8 100644
--- a/llvm/test/CodeGen/SystemZ/shift-03.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-03.ll
@@ -114,13 +114,13 @@ define i32 @f10(i32 %a, i32 %b, i32 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i32 @f11(i32 %a, i32 *%ptr) {
+define i32 @f11(i32 %a, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 0(%r3)
 ; CHECK-NEXT:    sra %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i32, i32 *%ptr
+  %amt = load i32, ptr %ptr
   %shift = ashr i32 %a, %amt
   ret i32 %shift
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-04.ll b/llvm/test/CodeGen/SystemZ/shift-04.ll
index b2967b72d159e..c91a7292604c8 100644
--- a/llvm/test/CodeGen/SystemZ/shift-04.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-04.ll
@@ -187,13 +187,13 @@ define i32 @f13(i32 %a, i32 %b, i32 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i32 @f14(i32 %a, i32 *%ptr) {
+define i32 @f14(i32 %a, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 0(%r3)
 ; CHECK-NEXT:    rll %r2, %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i32, i32 *%ptr
+  %amt = load i32, ptr %ptr
   %amtb = sub i32 32, %amt
   %parta = shl i32 %a, %amt
   %partb = lshr i32 %a, %amtb

diff  --git a/llvm/test/CodeGen/SystemZ/shift-05.ll b/llvm/test/CodeGen/SystemZ/shift-05.ll
index f1062aca35741..ddc888961521d 100644
--- a/llvm/test/CodeGen/SystemZ/shift-05.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-05.ll
@@ -151,13 +151,13 @@ define i64 @f13(i64 %a, i64 %b, i64 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i64 @f14(i64 %a, i64 *%ptr) {
+define i64 @f14(i64 %a, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 4(%r3)
 ; CHECK-NEXT:    sllg %r2, %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i64, i64 *%ptr
+  %amt = load i64, ptr %ptr
   %shift = shl i64 %a, %amt
   ret i64 %shift
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-06.ll b/llvm/test/CodeGen/SystemZ/shift-06.ll
index e956e6293f485..1dcafa78a98d4 100644
--- a/llvm/test/CodeGen/SystemZ/shift-06.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-06.ll
@@ -151,13 +151,13 @@ define i64 @f13(i64 %a, i64 %b, i64 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i64 @f14(i64 %a, i64 *%ptr) {
+define i64 @f14(i64 %a, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 4(%r3)
 ; CHECK-NEXT:    srlg %r2, %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i64, i64 *%ptr
+  %amt = load i64, ptr %ptr
   %shift = lshr i64 %a, %amt
   ret i64 %shift
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-07.ll b/llvm/test/CodeGen/SystemZ/shift-07.ll
index fb2712d084b70..5e905026a6e2f 100644
--- a/llvm/test/CodeGen/SystemZ/shift-07.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-07.ll
@@ -151,13 +151,13 @@ define i64 @f13(i64 %a, i64 %b, i64 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i64 @f14(i64 %a, i64 *%ptr) {
+define i64 @f14(i64 %a, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 4(%r3)
 ; CHECK-NEXT:    srag %r2, %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i64, i64 *%ptr
+  %amt = load i64, ptr %ptr
   %shift = ashr i64 %a, %amt
   ret i64 %shift
 }

diff  --git a/llvm/test/CodeGen/SystemZ/shift-08.ll b/llvm/test/CodeGen/SystemZ/shift-08.ll
index d91afd620c09b..c81097fd07e15 100644
--- a/llvm/test/CodeGen/SystemZ/shift-08.ll
+++ b/llvm/test/CodeGen/SystemZ/shift-08.ll
@@ -188,13 +188,13 @@ define i64 @f13(i64 %a, i64 %b, i64 %c) {
 }
 
 ; Check that the shift amount uses an address register.  It cannot be in %r0.
-define i64 @f14(i64 %a, i64 *%ptr) {
+define i64 @f14(i64 %a, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    l %r1, 4(%r3)
 ; CHECK-NEXT:    rllg %r2, %r2, 0(%r1)
 ; CHECK-NEXT:    br %r14
-  %amt = load i64, i64 *%ptr
+  %amt = load i64, ptr %ptr
   %amtb = sub i64 64, %amt
   %parta = shl i64 %a, %amt
   %partb = lshr i64 %a, %amtb

diff  --git a/llvm/test/CodeGen/SystemZ/signbits.ll b/llvm/test/CodeGen/SystemZ/signbits.ll
index 3b9219815f604..67e69b028c6ac 100644
--- a/llvm/test/CodeGen/SystemZ/signbits.ll
+++ b/llvm/test/CodeGen/SystemZ/signbits.ll
@@ -4,10 +4,10 @@
 ; RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 -debug-only=isel < %s 2>&1 | FileCheck %s
 ; REQUIRES: asserts
 
-%0 = type <{ %1*, i16, [6 x i8] }>
-%1 = type { i32 (...)** }
+%0 = type <{ ptr, i16, [6 x i8] }>
+%1 = type { ptr }
 
-define signext i16 @fun(%0* %Arg0, i16 signext %Arg1) {
+define signext i16 @fun(ptr %Arg0, i16 signext %Arg1) {
 entry:
   br i1 undef, label %lab0, label %lab1
 

diff  --git a/llvm/test/CodeGen/SystemZ/spill-01.ll b/llvm/test/CodeGen/SystemZ/spill-01.ll
index ea9a78c35c854..b243765c42500 100644
--- a/llvm/test/CodeGen/SystemZ/spill-01.ll
+++ b/llvm/test/CodeGen/SystemZ/spill-01.ll
@@ -28,7 +28,7 @@ declare void @foo()
 @h9 = dso_local global i64 9
 
 ; This function shouldn't spill anything
-define dso_local void @f1(i32 *%ptr0) {
+define dso_local void @f1(ptr %ptr0) {
 ; CHECK-LABEL: f1:
 ; CHECK: stmg
 ; CHECK: aghi %r15, -160
@@ -37,114 +37,114 @@ define dso_local void @f1(i32 *%ptr0) {
 ; CHECK-NOT: %r15
 ; CHECK: lmg
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i32 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i32 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i32 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i32 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i32 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i32 12
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
+  %ptr1 = getelementptr i32, ptr %ptr0, i32 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i32 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i32 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i32 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i32 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i32 12
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
 
   call void @foo()
 
-  store i32 %val0, i32 *%ptr0
-  store i32 %val1, i32 *%ptr1
-  store i32 %val2, i32 *%ptr2
-  store i32 %val3, i32 *%ptr3
-  store i32 %val4, i32 *%ptr4
-  store i32 %val5, i32 *%ptr5
-  store i32 %val6, i32 *%ptr6
+  store i32 %val0, ptr %ptr0
+  store i32 %val1, ptr %ptr1
+  store i32 %val2, ptr %ptr2
+  store i32 %val3, ptr %ptr3
+  store i32 %val4, ptr %ptr4
+  store i32 %val5, ptr %ptr5
+  store i32 %val6, ptr %ptr6
 
   ret void
 }
 
 ; Test a case where at least one i32 load and at least one i32 store
 ; need spills.
-define dso_local void @f2(i32 *%ptr0) {
+define dso_local void @f2(ptr %ptr0) {
 ; CHECK-LABEL: f2:
 ; CHECK: mvc [[OFFSET1:16[04]]](4,%r15), [[OFFSET2:[0-9]+]]({{%r[0-9]+}})
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mvc [[OFFSET2]](4,{{%r[0-9]+}}), [[OFFSET1]](%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
 
   call void @foo()
 
-  store i32 %val0, i32 *%ptr0
-  store i32 %val1, i32 *%ptr1
-  store i32 %val2, i32 *%ptr2
-  store i32 %val3, i32 *%ptr3
-  store i32 %val4, i32 *%ptr4
-  store i32 %val5, i32 *%ptr5
-  store i32 %val6, i32 *%ptr6
-  store i32 %val7, i32 *%ptr7
-  store i32 %val8, i32 *%ptr8
+  store i32 %val0, ptr %ptr0
+  store i32 %val1, ptr %ptr1
+  store i32 %val2, ptr %ptr2
+  store i32 %val3, ptr %ptr3
+  store i32 %val4, ptr %ptr4
+  store i32 %val5, ptr %ptr5
+  store i32 %val6, ptr %ptr6
+  store i32 %val7, ptr %ptr7
+  store i32 %val8, ptr %ptr8
 
   ret void
 }
 
 ; Test a case where at least one i64 load and at least one i64 store
 ; need spills.
-define dso_local void @f3(i64 *%ptr0) {
+define dso_local void @f3(ptr %ptr0) {
 ; CHECK-LABEL: f3:
 ; CHECK: mvc 160(8,%r15), [[OFFSET:[0-9]+]]({{%r[0-9]+}})
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mvc [[OFFSET]](8,{{%r[0-9]+}}), 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
 
   call void @foo()
 
-  store i64 %val0, i64 *%ptr0
-  store i64 %val1, i64 *%ptr1
-  store i64 %val2, i64 *%ptr2
-  store i64 %val3, i64 *%ptr3
-  store i64 %val4, i64 *%ptr4
-  store i64 %val5, i64 *%ptr5
-  store i64 %val6, i64 *%ptr6
-  store i64 %val7, i64 *%ptr7
-  store i64 %val8, i64 *%ptr8
+  store i64 %val0, ptr %ptr0
+  store i64 %val1, ptr %ptr1
+  store i64 %val2, ptr %ptr2
+  store i64 %val3, ptr %ptr3
+  store i64 %val4, ptr %ptr4
+  store i64 %val5, ptr %ptr5
+  store i64 %val6, ptr %ptr6
+  store i64 %val7, ptr %ptr7
+  store i64 %val8, ptr %ptr8
 
   ret void
 }
@@ -154,167 +154,167 @@ define dso_local void @f3(i64 *%ptr0) {
 ; need spills.  The 8 call-saved FPRs could be used for 8 of the %vals
 ; (and are at the time of writing), but it would really be better to use
 ; MVC for all 10.
-define dso_local void @f4(float *%ptr0) {
+define dso_local void @f4(ptr %ptr0) {
 ; CHECK-LABEL: f4:
 ; CHECK: mvc [[OFFSET1:16[04]]](4,%r15), [[OFFSET2:[0-9]+]]({{%r[0-9]+}})
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mvc [[OFFSET2]](4,{{%r[0-9]+}}), [[OFFSET1]](%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr float, float *%ptr0, i64 2
-  %ptr2 = getelementptr float, float *%ptr0, i64 4
-  %ptr3 = getelementptr float, float *%ptr0, i64 6
-  %ptr4 = getelementptr float, float *%ptr0, i64 8
-  %ptr5 = getelementptr float, float *%ptr0, i64 10
-  %ptr6 = getelementptr float, float *%ptr0, i64 12
-  %ptr7 = getelementptr float, float *%ptr0, i64 14
-  %ptr8 = getelementptr float, float *%ptr0, i64 16
-  %ptr9 = getelementptr float, float *%ptr0, i64 18
-
-  %val0 = load float, float *%ptr0
-  %val1 = load float, float *%ptr1
-  %val2 = load float, float *%ptr2
-  %val3 = load float, float *%ptr3
-  %val4 = load float, float *%ptr4
-  %val5 = load float, float *%ptr5
-  %val6 = load float, float *%ptr6
-  %val7 = load float, float *%ptr7
-  %val8 = load float, float *%ptr8
-  %val9 = load float, float *%ptr9
+  %ptr1 = getelementptr float, ptr %ptr0, i64 2
+  %ptr2 = getelementptr float, ptr %ptr0, i64 4
+  %ptr3 = getelementptr float, ptr %ptr0, i64 6
+  %ptr4 = getelementptr float, ptr %ptr0, i64 8
+  %ptr5 = getelementptr float, ptr %ptr0, i64 10
+  %ptr6 = getelementptr float, ptr %ptr0, i64 12
+  %ptr7 = getelementptr float, ptr %ptr0, i64 14
+  %ptr8 = getelementptr float, ptr %ptr0, i64 16
+  %ptr9 = getelementptr float, ptr %ptr0, i64 18
+
+  %val0 = load float, ptr %ptr0
+  %val1 = load float, ptr %ptr1
+  %val2 = load float, ptr %ptr2
+  %val3 = load float, ptr %ptr3
+  %val4 = load float, ptr %ptr4
+  %val5 = load float, ptr %ptr5
+  %val6 = load float, ptr %ptr6
+  %val7 = load float, ptr %ptr7
+  %val8 = load float, ptr %ptr8
+  %val9 = load float, ptr %ptr9
 
   call void @foo()
 
-  store float %val0, float *%ptr0
-  store float %val1, float *%ptr1
-  store float %val2, float *%ptr2
-  store float %val3, float *%ptr3
-  store float %val4, float *%ptr4
-  store float %val5, float *%ptr5
-  store float %val6, float *%ptr6
-  store float %val7, float *%ptr7
-  store float %val8, float *%ptr8
-  store float %val9, float *%ptr9
+  store float %val0, ptr %ptr0
+  store float %val1, ptr %ptr1
+  store float %val2, ptr %ptr2
+  store float %val3, ptr %ptr3
+  store float %val4, ptr %ptr4
+  store float %val5, ptr %ptr5
+  store float %val6, ptr %ptr6
+  store float %val7, ptr %ptr7
+  store float %val8, ptr %ptr8
+  store float %val9, ptr %ptr9
 
   ret void
 }
 
 ; Similarly for f64.
-define dso_local void @f5(double *%ptr0) {
+define dso_local void @f5(ptr %ptr0) {
 ; CHECK-LABEL: f5:
 ; CHECK: mvc 160(8,%r15), [[OFFSET:[0-9]+]]({{%r[0-9]+}})
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: mvc [[OFFSET]](8,{{%r[0-9]+}}), 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr double, double *%ptr0, i64 2
-  %ptr2 = getelementptr double, double *%ptr0, i64 4
-  %ptr3 = getelementptr double, double *%ptr0, i64 6
-  %ptr4 = getelementptr double, double *%ptr0, i64 8
-  %ptr5 = getelementptr double, double *%ptr0, i64 10
-  %ptr6 = getelementptr double, double *%ptr0, i64 12
-  %ptr7 = getelementptr double, double *%ptr0, i64 14
-  %ptr8 = getelementptr double, double *%ptr0, i64 16
-  %ptr9 = getelementptr double, double *%ptr0, i64 18
-
-  %val0 = load double, double *%ptr0
-  %val1 = load double, double *%ptr1
-  %val2 = load double, double *%ptr2
-  %val3 = load double, double *%ptr3
-  %val4 = load double, double *%ptr4
-  %val5 = load double, double *%ptr5
-  %val6 = load double, double *%ptr6
-  %val7 = load double, double *%ptr7
-  %val8 = load double, double *%ptr8
-  %val9 = load double, double *%ptr9
+  %ptr1 = getelementptr double, ptr %ptr0, i64 2
+  %ptr2 = getelementptr double, ptr %ptr0, i64 4
+  %ptr3 = getelementptr double, ptr %ptr0, i64 6
+  %ptr4 = getelementptr double, ptr %ptr0, i64 8
+  %ptr5 = getelementptr double, ptr %ptr0, i64 10
+  %ptr6 = getelementptr double, ptr %ptr0, i64 12
+  %ptr7 = getelementptr double, ptr %ptr0, i64 14
+  %ptr8 = getelementptr double, ptr %ptr0, i64 16
+  %ptr9 = getelementptr double, ptr %ptr0, i64 18
+
+  %val0 = load double, ptr %ptr0
+  %val1 = load double, ptr %ptr1
+  %val2 = load double, ptr %ptr2
+  %val3 = load double, ptr %ptr3
+  %val4 = load double, ptr %ptr4
+  %val5 = load double, ptr %ptr5
+  %val6 = load double, ptr %ptr6
+  %val7 = load double, ptr %ptr7
+  %val8 = load double, ptr %ptr8
+  %val9 = load double, ptr %ptr9
 
   call void @foo()
 
-  store double %val0, double *%ptr0
-  store double %val1, double *%ptr1
-  store double %val2, double *%ptr2
-  store double %val3, double *%ptr3
-  store double %val4, double *%ptr4
-  store double %val5, double *%ptr5
-  store double %val6, double *%ptr6
-  store double %val7, double *%ptr7
-  store double %val8, double *%ptr8
-  store double %val9, double *%ptr9
+  store double %val0, ptr %ptr0
+  store double %val1, ptr %ptr1
+  store double %val2, ptr %ptr2
+  store double %val3, ptr %ptr3
+  store double %val4, ptr %ptr4
+  store double %val5, ptr %ptr5
+  store double %val6, ptr %ptr6
+  store double %val7, ptr %ptr7
+  store double %val8, ptr %ptr8
+  store double %val9, ptr %ptr9
 
   ret void
 }
 
 ; Repeat f2 with atomic accesses.  We shouldn't use MVC here.
-define dso_local void @f6(i32 *%ptr0) {
+define dso_local void @f6(ptr %ptr0) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-
-  %val0 = load atomic i32, i32 *%ptr0 unordered, align 4
-  %val1 = load atomic i32, i32 *%ptr1 unordered, align 4
-  %val2 = load atomic i32, i32 *%ptr2 unordered, align 4
-  %val3 = load atomic i32, i32 *%ptr3 unordered, align 4
-  %val4 = load atomic i32, i32 *%ptr4 unordered, align 4
-  %val5 = load atomic i32, i32 *%ptr5 unordered, align 4
-  %val6 = load atomic i32, i32 *%ptr6 unordered, align 4
-  %val7 = load atomic i32, i32 *%ptr7 unordered, align 4
-  %val8 = load atomic i32, i32 *%ptr8 unordered, align 4
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+
+  %val0 = load atomic i32, ptr %ptr0 unordered, align 4
+  %val1 = load atomic i32, ptr %ptr1 unordered, align 4
+  %val2 = load atomic i32, ptr %ptr2 unordered, align 4
+  %val3 = load atomic i32, ptr %ptr3 unordered, align 4
+  %val4 = load atomic i32, ptr %ptr4 unordered, align 4
+  %val5 = load atomic i32, ptr %ptr5 unordered, align 4
+  %val6 = load atomic i32, ptr %ptr6 unordered, align 4
+  %val7 = load atomic i32, ptr %ptr7 unordered, align 4
+  %val8 = load atomic i32, ptr %ptr8 unordered, align 4
 
   call void @foo()
 
-  store atomic i32 %val0, i32 *%ptr0 unordered, align 4
-  store atomic i32 %val1, i32 *%ptr1 unordered, align 4
-  store atomic i32 %val2, i32 *%ptr2 unordered, align 4
-  store atomic i32 %val3, i32 *%ptr3 unordered, align 4
-  store atomic i32 %val4, i32 *%ptr4 unordered, align 4
-  store atomic i32 %val5, i32 *%ptr5 unordered, align 4
-  store atomic i32 %val6, i32 *%ptr6 unordered, align 4
-  store atomic i32 %val7, i32 *%ptr7 unordered, align 4
-  store atomic i32 %val8, i32 *%ptr8 unordered, align 4
+  store atomic i32 %val0, ptr %ptr0 unordered, align 4
+  store atomic i32 %val1, ptr %ptr1 unordered, align 4
+  store atomic i32 %val2, ptr %ptr2 unordered, align 4
+  store atomic i32 %val3, ptr %ptr3 unordered, align 4
+  store atomic i32 %val4, ptr %ptr4 unordered, align 4
+  store atomic i32 %val5, ptr %ptr5 unordered, align 4
+  store atomic i32 %val6, ptr %ptr6 unordered, align 4
+  store atomic i32 %val7, ptr %ptr7 unordered, align 4
+  store atomic i32 %val8, ptr %ptr8 unordered, align 4
 
   ret void
 }
 
 ; ...likewise volatile accesses.
-define dso_local void @f7(i32 *%ptr0) {
+define dso_local void @f7(ptr %ptr0) {
 ; CHECK-LABEL: f7:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-
-  %val0 = load volatile i32, i32 *%ptr0
-  %val1 = load volatile i32, i32 *%ptr1
-  %val2 = load volatile i32, i32 *%ptr2
-  %val3 = load volatile i32, i32 *%ptr3
-  %val4 = load volatile i32, i32 *%ptr4
-  %val5 = load volatile i32, i32 *%ptr5
-  %val6 = load volatile i32, i32 *%ptr6
-  %val7 = load volatile i32, i32 *%ptr7
-  %val8 = load volatile i32, i32 *%ptr8
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+
+  %val0 = load volatile i32, ptr %ptr0
+  %val1 = load volatile i32, ptr %ptr1
+  %val2 = load volatile i32, ptr %ptr2
+  %val3 = load volatile i32, ptr %ptr3
+  %val4 = load volatile i32, ptr %ptr4
+  %val5 = load volatile i32, ptr %ptr5
+  %val6 = load volatile i32, ptr %ptr6
+  %val7 = load volatile i32, ptr %ptr7
+  %val8 = load volatile i32, ptr %ptr8
 
   call void @foo()
 
-  store volatile i32 %val0, i32 *%ptr0
-  store volatile i32 %val1, i32 *%ptr1
-  store volatile i32 %val2, i32 *%ptr2
-  store volatile i32 %val3, i32 *%ptr3
-  store volatile i32 %val4, i32 *%ptr4
-  store volatile i32 %val5, i32 *%ptr5
-  store volatile i32 %val6, i32 *%ptr6
-  store volatile i32 %val7, i32 *%ptr7
-  store volatile i32 %val8, i32 *%ptr8
+  store volatile i32 %val0, ptr %ptr0
+  store volatile i32 %val1, ptr %ptr1
+  store volatile i32 %val2, ptr %ptr2
+  store volatile i32 %val3, ptr %ptr3
+  store volatile i32 %val4, ptr %ptr4
+  store volatile i32 %val5, ptr %ptr5
+  store volatile i32 %val6, ptr %ptr6
+  store volatile i32 %val7, ptr %ptr7
+  store volatile i32 %val8, ptr %ptr8
 
   ret void
 }
@@ -324,29 +324,29 @@ define dso_local void @f8() {
 ; CHECK-LABEL: f8:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %val0 = load i32, i32 *@g0
-  %val1 = load i32, i32 *@g1
-  %val2 = load i32, i32 *@g2
-  %val3 = load i32, i32 *@g3
-  %val4 = load i32, i32 *@g4
-  %val5 = load i32, i32 *@g5
-  %val6 = load i32, i32 *@g6
-  %val7 = load i32, i32 *@g7
-  %val8 = load i32, i32 *@g8
-  %val9 = load i32, i32 *@g9
+  %val0 = load i32, ptr at g0
+  %val1 = load i32, ptr at g1
+  %val2 = load i32, ptr at g2
+  %val3 = load i32, ptr at g3
+  %val4 = load i32, ptr at g4
+  %val5 = load i32, ptr at g5
+  %val6 = load i32, ptr at g6
+  %val7 = load i32, ptr at g7
+  %val8 = load i32, ptr at g8
+  %val9 = load i32, ptr at g9
 
   call void @foo()
 
-  store i32 %val0, i32 *@g0
-  store i32 %val1, i32 *@g1
-  store i32 %val2, i32 *@g2
-  store i32 %val3, i32 *@g3
-  store i32 %val4, i32 *@g4
-  store i32 %val5, i32 *@g5
-  store i32 %val6, i32 *@g6
-  store i32 %val7, i32 *@g7
-  store i32 %val8, i32 *@g8
-  store i32 %val9, i32 *@g9
+  store i32 %val0, ptr at g0
+  store i32 %val1, ptr at g1
+  store i32 %val2, ptr at g2
+  store i32 %val3, ptr at g3
+  store i32 %val4, ptr at g4
+  store i32 %val5, ptr at g5
+  store i32 %val6, ptr at g6
+  store i32 %val7, ptr at g7
+  store i32 %val8, ptr at g8
+  store i32 %val9, ptr at g9
 
   ret void
 }
@@ -356,29 +356,29 @@ define dso_local void @f9() {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: mvc
 ; CHECK: br %r14
-  %val0 = load i64, i64 *@h0
-  %val1 = load i64, i64 *@h1
-  %val2 = load i64, i64 *@h2
-  %val3 = load i64, i64 *@h3
-  %val4 = load i64, i64 *@h4
-  %val5 = load i64, i64 *@h5
-  %val6 = load i64, i64 *@h6
-  %val7 = load i64, i64 *@h7
-  %val8 = load i64, i64 *@h8
-  %val9 = load i64, i64 *@h9
+  %val0 = load i64, ptr at h0
+  %val1 = load i64, ptr at h1
+  %val2 = load i64, ptr at h2
+  %val3 = load i64, ptr at h3
+  %val4 = load i64, ptr at h4
+  %val5 = load i64, ptr at h5
+  %val6 = load i64, ptr at h6
+  %val7 = load i64, ptr at h7
+  %val8 = load i64, ptr at h8
+  %val9 = load i64, ptr at h9
 
   call void @foo()
 
-  store i64 %val0, i64 *@h0
-  store i64 %val1, i64 *@h1
-  store i64 %val2, i64 *@h2
-  store i64 %val3, i64 *@h3
-  store i64 %val4, i64 *@h4
-  store i64 %val5, i64 *@h5
-  store i64 %val6, i64 *@h6
-  store i64 %val7, i64 *@h7
-  store i64 %val8, i64 *@h8
-  store i64 %val9, i64 *@h9
+  store i64 %val0, ptr at h0
+  store i64 %val1, ptr at h1
+  store i64 %val2, ptr at h2
+  store i64 %val3, ptr at h3
+  store i64 %val4, ptr at h4
+  store i64 %val5, ptr at h5
+  store i64 %val6, ptr at h6
+  store i64 %val7, ptr at h7
+  store i64 %val8, ptr at h8
+  store i64 %val9, ptr at h9
 
   ret void
 }
@@ -400,60 +400,60 @@ define dso_local void @f10() {
 ; CHECK: stgrl [[REG]], h8
 ; CHECK: br %r14
 entry:
-  %val8 = load volatile i64, i64 *@h8
-  %val0 = load volatile i64, i64 *@h0
-  %val1 = load volatile i64, i64 *@h1
-  %val2 = load volatile i64, i64 *@h2
-  %val3 = load volatile i64, i64 *@h3
-  %val4 = load volatile i64, i64 *@h4
-  %val5 = load volatile i64, i64 *@h5
-  %val6 = load volatile i64, i64 *@h6
-  %val7 = load volatile i64, i64 *@h7
-  %val9 = load volatile i64, i64 *@h9
+  %val8 = load volatile i64, ptr at h8
+  %val0 = load volatile i64, ptr at h0
+  %val1 = load volatile i64, ptr at h1
+  %val2 = load volatile i64, ptr at h2
+  %val3 = load volatile i64, ptr at h3
+  %val4 = load volatile i64, ptr at h4
+  %val5 = load volatile i64, ptr at h5
+  %val6 = load volatile i64, ptr at h6
+  %val7 = load volatile i64, ptr at h7
+  %val9 = load volatile i64, ptr at h9
 
   call void @foo()
 
-  store volatile i64 %val0, i64 *@h0
-  store volatile i64 %val1, i64 *@h1
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
+  store volatile i64 %val0, ptr at h0
+  store volatile i64 %val1, ptr at h1
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
 
-  %check = load volatile i64, i64 *@h0
+  %check = load volatile i64, ptr at h0
   %cond = icmp eq i64 %check, 0
   br i1 %cond, label %skip, label %fallthru
 
 fallthru:
   call void @foo()
 
-  store volatile i64 %val0, i64 *@h0
-  store volatile i64 %val1, i64 *@h1
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
-  store volatile i64 %val8, i64 *@h8
+  store volatile i64 %val0, ptr at h0
+  store volatile i64 %val1, ptr at h1
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
+  store volatile i64 %val8, ptr at h8
   br label %skip
 
 skip:
   %newval8 = phi i64 [ %val8, %entry ], [ %val9, %fallthru ]
   call void @foo()
 
-  store volatile i64 %val0, i64 *@h0
-  store volatile i64 %val1, i64 *@h1
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
-  store volatile i64 %newval8, i64 *@h8
-  store volatile i64 %val9, i64 *@h9
+  store volatile i64 %val0, ptr at h0
+  store volatile i64 %val1, ptr at h1
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
+  store volatile i64 %newval8, ptr at h8
+  store volatile i64 %val9, ptr at h9
 
   ret void
 }
@@ -464,30 +464,30 @@ define dso_local void @f11() {
 ; CHECK-NOT: mvc [[OFFSET:[0-9]+]](8,%r15), [[OFFSET]](%r15)
 ; CHECK: br %r14
 entry:
-  %val0 = load volatile i64, i64 *@h0
-  %val1 = load volatile i64, i64 *@h1
-  %val2 = load volatile i64, i64 *@h2
-  %val3 = load volatile i64, i64 *@h3
-  %val4 = load volatile i64, i64 *@h4
-  %val5 = load volatile i64, i64 *@h5
-  %val6 = load volatile i64, i64 *@h6
-  %val7 = load volatile i64, i64 *@h7
-
-  %altval0 = load volatile i64, i64 *@h0
-  %altval1 = load volatile i64, i64 *@h1
+  %val0 = load volatile i64, ptr at h0
+  %val1 = load volatile i64, ptr at h1
+  %val2 = load volatile i64, ptr at h2
+  %val3 = load volatile i64, ptr at h3
+  %val4 = load volatile i64, ptr at h4
+  %val5 = load volatile i64, ptr at h5
+  %val6 = load volatile i64, ptr at h6
+  %val7 = load volatile i64, ptr at h7
+
+  %altval0 = load volatile i64, ptr at h0
+  %altval1 = load volatile i64, ptr at h1
 
   call void @foo()
 
-  store volatile i64 %val0, i64 *@h0
-  store volatile i64 %val1, i64 *@h1
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
+  store volatile i64 %val0, ptr at h0
+  store volatile i64 %val1, ptr at h1
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
 
-  %check = load volatile i64, i64 *@h0
+  %check = load volatile i64, ptr at h0
   %cond = icmp eq i64 %check, 0
   br i1 %cond, label %a1, label %b1
 
@@ -504,13 +504,13 @@ join1:
 
   call void @foo()
 
-  store volatile i64 %val1, i64 *@h1
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
+  store volatile i64 %val1, ptr at h1
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
   br i1 %cond, label %a2, label %b2
 
 a2:
@@ -526,23 +526,23 @@ join2:
 
   call void @foo()
 
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
 
   call void @foo()
 
-  store volatile i64 %newval0, i64 *@h0
-  store volatile i64 %newval1, i64 *@h1
-  store volatile i64 %val2, i64 *@h2
-  store volatile i64 %val3, i64 *@h3
-  store volatile i64 %val4, i64 *@h4
-  store volatile i64 %val5, i64 *@h5
-  store volatile i64 %val6, i64 *@h6
-  store volatile i64 %val7, i64 *@h7
+  store volatile i64 %newval0, ptr at h0
+  store volatile i64 %newval1, ptr at h1
+  store volatile i64 %val2, ptr at h2
+  store volatile i64 %val3, ptr at h3
+  store volatile i64 %val4, ptr at h4
+  store volatile i64 %val5, ptr at h5
+  store volatile i64 %val6, ptr at h6
+  store volatile i64 %val7, ptr at h7
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier.ll b/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier.ll
index 2751355851eec..f5bd3f53e2bd3 100644
--- a/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier.ll
+++ b/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier.ll
@@ -3,7 +3,7 @@
 ; Regression test for a machine verifier complaint discovered with llvm-stress.
 ; Test that splitting of a 128 bit store does not result in use of undef phys reg.
 
-define void @autogen_SD29355(i8*, i32*, i64*, i32, i64, i8) {
+define void @autogen_SD29355(ptr, ptr, ptr, i32, i64, i8) {
 ; CHECK: .text
 BB:
   %A4 = alloca double
@@ -11,8 +11,8 @@ BB:
   %A2 = alloca i8
   %A1 = alloca double
   %A = alloca i64
-  %L = load i8, i8* %0
-  store i8 33, i8* %0
+  %L = load i8, ptr %0
+  store i8 33, ptr %0
   %E = extractelement <8 x i1> zeroinitializer, i32 2
   br label %CF261
 
@@ -21,9 +21,9 @@ CF261:                                            ; preds = %BB
   %I = insertelement <8 x i8> zeroinitializer, i8 69, i32 3
   %B = udiv i8 -99, 33
   %Tr = trunc i64 -1 to i32
-  %Sl = select i1 true, i64* %2, i64* %2
-  %L5 = load i64, i64* %Sl
-  store i64 %L5, i64* %2
+  %Sl = select i1 true, ptr %2, ptr %2
+  %L5 = load i64, ptr %Sl
+  store i64 %L5, ptr %2
   %E6 = extractelement <4 x i16> zeroinitializer, i32 3
   %Shuff7 = shufflevector <4 x i16> zeroinitializer, <4 x i16> zeroinitializer, <4 x i32> <i32 6, i32 0, i32 2, i32 4>
   %I8 = insertelement <4 x i16> %Shuff7, i16 27357, i32 0
@@ -33,8 +33,8 @@ CF261:                                            ; preds = %BB
 
 CF239:                                            ; preds = %CF261
   %Sl11 = select i1 %Tr10, i16 -1, i16 27357
-  %L12 = load i8, i8* %0
-  store i64 %L5, i64* %A
+  %L12 = load i8, ptr %0
+  store i64 %L5, ptr %A
   %E13 = extractelement <8 x i1> zeroinitializer, i32 0
   br label %CF238
 
@@ -42,13 +42,13 @@ CF238:                                            ; preds = %CF238, %CF239
   %Shuff14 = shufflevector <4 x i16> zeroinitializer, <4 x i16> zeroinitializer, <4 x i32> <i32 undef, i32 5, i32 7, i32 1>
   %I15 = insertelement <4 x i16> %Shuff7, i16 -1, i32 1
   %B16 = fsub double 0xDACBFCEAC1C99968, 0xDACBFCEAC1C99968
-  %Sl17 = select i1 %E, i64* %Sl, i64* %Sl
+  %Sl17 = select i1 %E, ptr %Sl, ptr %Sl
   %Cmp = icmp ugt i16 %E6, 27357
   br i1 %Cmp, label %CF238, label %CF251
 
 CF251:                                            ; preds = %CF238
-  %L18 = load i64, i64* %Sl17
-  store i64 0, i64* %Sl
+  %L18 = load i64, ptr %Sl17
+  store i64 0, ptr %Sl
   %E19 = extractelement <4 x i16> zeroinitializer, i32 1
   %Shuff20 = shufflevector <2 x i1> zeroinitializer, <2 x i1> zeroinitializer, <2 x i32> <i32 undef, i32 2>
   %I21 = insertelement <2 x i1> zeroinitializer, i1 true, i32 0
@@ -61,8 +61,8 @@ CF237:                                            ; preds = %CF237, %CF271, %CF2
   br i1 %Cmp23, label %CF237, label %CF256
 
 CF256:                                            ; preds = %CF256, %CF237
-  %L24 = load i64, i64* %A
-  store i64 %L5, i64* %Sl17
+  %L24 = load i64, ptr %A
+  store i64 %L5, ptr %Sl17
   %E25 = extractelement <4 x i16> zeroinitializer, i32 3
   %Shuff26 = shufflevector <4 x i16> %Shuff7, <4 x i16> zeroinitializer, <4 x i32> <i32 2, i32 4, i32 6, i32 undef>
   %I27 = insertelement <4 x i16> zeroinitializer, i16 %Sl22, i32 0
@@ -73,16 +73,15 @@ CF256:                                            ; preds = %CF256, %CF237
   br i1 %Cmp30, label %CF256, label %CF271
 
 CF271:                                            ; preds = %CF256
-  %L31 = load i8, i8* %0
-  store i64 %L5, i64* %Sl
+  %L31 = load i8, ptr %0
+  store i64 %L5, ptr %Sl
   %E32 = extractelement <4 x i16> zeroinitializer, i32 2
   %Shuff33 = shufflevector <1 x i32> zeroinitializer, <1 x i32> zeroinitializer, <1 x i32> <i32 1>
   %I34 = insertelement <4 x i16> zeroinitializer, i16 %Sl11, i32 1
-  %PC = bitcast double* %A4 to i1*
-  %Sl35 = select i1 %FC, i32* %1, i32* %1
+  %Sl35 = select i1 %FC, ptr %1, ptr %1
   %Cmp36 = icmp ult <2 x i1> %Shuff20, %Shuff20
-  %L37 = load i64, i64* %Sl
-  store i64 %L5, i64* %Sl
+  %L37 = load i64, ptr %Sl
+  store i64 %L5, ptr %Sl
   %E38 = extractelement <2 x i32> zeroinitializer, i32 0
   %Shuff39 = shufflevector <4 x i16> zeroinitializer, <4 x i16> %Shuff7, <4 x i32> <i32 undef, i32 1, i32 3, i32 undef>
   %I40 = insertelement <4 x i16> %Shuff7, i16 %E19, i32 1
@@ -95,8 +94,8 @@ CF246:                                            ; preds = %CF246, %CF271
   br i1 %Cmp43, label %CF246, label %CF249
 
 CF249:                                            ; preds = %CF249, %CF263, %CF246
-  %L44 = load i64, i64* %A
-  store i64 %L5, i64* %Sl17
+  %L44 = load i64, ptr %A
+  store i64 %L5, ptr %Sl17
   %E45 = extractelement <4 x i16> %Shuff14, i32 2
   %Shuff46 = shufflevector <1 x i32> zeroinitializer, <1 x i32> zeroinitializer, <1 x i32> <i32 1>
   %I47 = insertelement <4 x i16> %Shuff7, i16 %E6, i32 1
@@ -105,8 +104,8 @@ CF249:                                            ; preds = %CF249, %CF263, %CF2
   br i1 %Cmp49, label %CF249, label %CF263
 
 CF263:                                            ; preds = %CF249
-  %L50 = load i64, i64* %Sl
-  store i1 true, i1* %PC
+  %L50 = load i64, ptr %Sl
+  store i1 true, ptr %A4
   %E51 = extractelement <2 x i1> zeroinitializer, i32 0
   br i1 %E51, label %CF249, label %CF259
 
@@ -119,8 +118,8 @@ CF259:                                            ; preds = %CF259, %CF263
   br i1 %Cmp56, label %CF259, label %CF268
 
 CF268:                                            ; preds = %CF259
-  %L57 = load i8, i8* %0
-  store i64 %L5, i64* %Sl
+  %L57 = load i8, ptr %0
+  store i64 %L5, ptr %Sl
   %E58 = extractelement <4 x i16> %Shuff14, i32 1
   %Shuff59 = shufflevector <1 x i32> %Shuff33, <1 x i32> %Shuff33, <1 x i32> zeroinitializer
   %I60 = insertelement <2 x i1> %Shuff20, i1 true, i32 0
@@ -131,11 +130,11 @@ CF268:                                            ; preds = %CF259
   br i1 %Cmp64, label %CF237, label %CF241
 
 CF241:                                            ; preds = %CF241, %CF265, %CF268
-  %L65 = load i1, i1* %PC
+  %L65 = load i1, ptr %A4
   br i1 %L65, label %CF241, label %CF262
 
 CF262:                                            ; preds = %CF262, %CF270, %CF241
-  store i64 %L37, i64* %Sl
+  store i64 %L37, ptr %Sl
   %E66 = extractelement <4 x i16> %Shuff14, i32 2
   %Shuff67 = shufflevector <4 x i16> %Shuff26, <4 x i16> %Shuff7, <4 x i32> <i32 1, i32 3, i32 undef, i32 7>
   %I68 = insertelement <2 x i32> zeroinitializer, i32 454413, i32 1
@@ -146,8 +145,8 @@ CF262:                                            ; preds = %CF262, %CF270, %CF2
 CF270:                                            ; preds = %CF262
   %Sl71 = select i1 %Sl42, <8 x i1> zeroinitializer, <8 x i1> zeroinitializer
   %Cmp72 = icmp sge <2 x i16> %B54, zeroinitializer
-  %L73 = load i64, i64* %Sl
-  store i64 %L73, i64* %Sl
+  %L73 = load i64, ptr %Sl
+  store i64 %L73, ptr %Sl
   %E74 = extractelement <8 x i1> %Sl71, i32 5
   br i1 %E74, label %CF262, label %CF265
 
@@ -155,22 +154,21 @@ CF265:                                            ; preds = %CF270
   %Shuff75 = shufflevector <2 x i32> %I68, <2 x i32> zeroinitializer, <2 x i32> <i32 undef, i32 2>
   %I76 = insertelement <2 x i1> %Cmp72, i1 %Sl42, i32 0
   %B77 = xor i16 27357, %B28
-  %PC78 = bitcast i1* %PC to i32*
   %Sl79 = select i1 %Cmp64, <4 x i16> %Shuff14, <4 x i16> %Shuff7
   %Cmp80 = icmp slt <2 x i1> zeroinitializer, %Shuff20
-  %L81 = load i1, i1* %PC
+  %L81 = load i1, ptr %A4
   br i1 %L81, label %CF241, label %CF245
 
 CF245:                                            ; preds = %CF245, %CF265
-  store i1 true, i1* %PC
+  store i1 true, ptr %A4
   %E82 = extractelement <1 x i32> %Shuff33, i32 0
   %Shuff83 = shufflevector <4 x i16> zeroinitializer, <4 x i16> %Shuff14, <4 x i32> <i32 2, i32 4, i32 6, i32 0>
   %I84 = insertelement <2 x i1> %Shuff20, i1 %Sl42, i32 0
   %FC85 = uitofp i1 %Cmp to float
   %Sl86 = select i1 %Tr10, i16 -1, i16 %Sl63
   %Cmp87 = icmp ugt <2 x i1> %I76, %I60
-  %L88 = load i32, i32* %PC78
-  store i8 33, i8* %0
+  %L88 = load i32, ptr %A4
+  store i8 33, ptr %0
   %E89 = extractelement <2 x i32> zeroinitializer, i32 1
   %Shuff90 = shufflevector <4 x i64> zeroinitializer, <4 x i64> %Shuff52, <4 x i32> <i32 0, i32 undef, i32 4, i32 6>
   %I91 = insertelement <2 x i32> %Shuff75, i32 %ZE, i32 0
@@ -181,8 +179,8 @@ CF245:                                            ; preds = %CF245, %CF265
   br i1 %Cmp95, label %CF245, label %CF257
 
 CF257:                                            ; preds = %CF245
-  %L96 = load i64, i64* %Sl
-  store i1 true, i1* %PC
+  %L96 = load i64, ptr %Sl
+  store i1 true, ptr %A4
   %E97 = extractelement <2 x i1> %Shuff20, i32 1
   br label %CF
 
@@ -196,16 +194,16 @@ CF:                                               ; preds = %CF, %CF258, %CF257
   br i1 %Cmp103, label %CF, label %CF240
 
 CF240:                                            ; preds = %CF240, %CF260, %CF
-  %L104 = load i32, i32* %1
-  store i1 true, i1* %PC
+  %L104 = load i32, ptr %1
+  store i1 true, ptr %A4
   %E105 = extractelement <4 x i16> %I8, i32 1
   %Shuff106 = shufflevector <4 x i16> %Shuff7, <4 x i16> %I34, <4 x i32> <i32 4, i32 undef, i32 undef, i32 2>
   %I107 = insertelement <2 x i1> %Cmp87, i1 %FC, i32 0
   %ZE108 = zext <4 x i16> %B69 to <4 x i64>
   %Sl109 = select i1 %Cmp, i16 27357, i16 %Sl102
   %Cmp110 = icmp sge <4 x i16> %B9, zeroinitializer
-  %L111 = load i64, i64* %Sl
-  store i8 %L57, i8* %0
+  %L111 = load i64, ptr %Sl
+  store i8 %L57, ptr %0
   %E112 = extractelement <2 x i1> %Shuff98, i32 0
   br i1 %E112, label %CF240, label %CF254
 
@@ -214,21 +212,21 @@ CF254:                                            ; preds = %CF254, %CF267, %CF2
   %I114 = insertelement <4 x i16> zeroinitializer, i16 27357, i32 3
   %B115 = and i16 %Sl102, %Sl11
   %FC116 = uitofp i16 %B115 to double
-  %Sl117 = select i1 %L81, i32* %1, i32* %1
+  %Sl117 = select i1 %L81, ptr %1, ptr %1
   %Cmp118 = icmp ne i64 %Sl94, %L50
   br i1 %Cmp118, label %CF254, label %CF267
 
 CF267:                                            ; preds = %CF254
-  %L119 = load i64, i64* %Sl
-  store i32 %ZE, i32* %PC78
+  %L119 = load i64, ptr %Sl
+  store i32 %ZE, ptr %A4
   %E120 = extractelement <4 x i16> zeroinitializer, i32 1
   %Shuff121 = shufflevector <1 x i32> %Shuff33, <1 x i32> %Shuff33, <1 x i32> zeroinitializer
   %I122 = insertelement <1 x i32> %Shuff121, i32 %E82, i32 0
   %B123 = mul <4 x i16> %I40, %I34
   %Sl124 = select i1 %FC, <4 x i1> %Cmp110, <4 x i1> %Cmp110
   %Cmp125 = icmp ne <4 x i64> %ZE108, zeroinitializer
-  %L126 = load i64, i64* %Sl
-  store i32 %ZE, i32* %Sl117
+  %L126 = load i64, ptr %Sl
+  store i32 %ZE, ptr %Sl117
   %E127 = extractelement <2 x i1> %Cmp87, i32 1
   br i1 %E127, label %CF254, label %CF264
 
@@ -239,8 +237,8 @@ CF264:                                            ; preds = %CF267
   %FC131 = sitofp i32 %3 to float
   %Sl132 = select i1 %Sl42, i64 %L24, i64 %L5
   %Cmp133 = icmp eq <2 x i1> %I99, %Shuff20
-  %L134 = load i32, i32* %PC78
-  store i32 %L104, i32* %1
+  %L134 = load i32, ptr %A4
+  store i32 %L104, ptr %1
   %E135 = extractelement <8 x i1> zeroinitializer, i32 4
   br i1 %E135, label %CF254, label %CF260
 
@@ -253,8 +251,8 @@ CF260:                                            ; preds = %CF264
   br i1 %Cmp140, label %CF240, label %CF247
 
 CF247:                                            ; preds = %CF247, %CF272, %CF260
-  %L141 = load i32, i32* %Sl117
-  store i8 %5, i8* %0
+  %L141 = load i32, ptr %Sl117
+  store i8 %5, ptr %0
   %E142 = extractelement <2 x i1> %Cmp36, i32 1
   br i1 %E142, label %CF247, label %CF272
 
@@ -263,8 +261,8 @@ CF272:                                            ; preds = %CF247
   %I144 = insertelement <1 x i32> %Shuff121, i32 %L88, i32 0
   %Tr145 = trunc i64 %Sl139 to i16
   %Sl146 = select i1 %Cmp49, i32 %L134, i32 %L104
-  %L147 = load i32, i32* %PC78
-  store i32 %Tr, i32* %Sl117
+  %L147 = load i32, ptr %A4
+  store i32 %Tr, ptr %Sl117
   %E148 = extractelement <4 x i16> %Shuff67, i32 3
   %Shuff149 = shufflevector <4 x i16> zeroinitializer, <4 x i16> %Shuff67, <4 x i32> <i32 2, i32 4, i32 6, i32 0>
   %I150 = insertelement <2 x i1> zeroinitializer, i1 %E127, i32 0
@@ -275,8 +273,8 @@ CF272:                                            ; preds = %CF247
   br i1 %Cmp154, label %CF247, label %CF253
 
 CF253:                                            ; preds = %CF253, %CF269, %CF272
-  %L155 = load i32, i32* %Sl117
-  store i32 %L141, i32* %PC78
+  %L155 = load i32, ptr %Sl117
+  store i32 %L141, ptr %A4
   %E156 = extractelement <4 x i1> %Cmp125, i32 2
   br i1 %E156, label %CF253, label %CF269
 
@@ -286,8 +284,8 @@ CF269:                                            ; preds = %CF253
   %B159 = shl i64 %L119, %L73
   %Se = sext i16 %B77 to i32
   %Sl160 = select i1 %Cmp56, i16 %Sl63, i16 %B77
-  %L161 = load i64, i64* %Sl
-  store i32 %B130, i32* %Sl117
+  %L161 = load i64, ptr %Sl
+  store i32 %B130, ptr %Sl117
   %E162 = extractelement <1 x i32> %Shuff59, i32 0
   %Shuff163 = shufflevector <4 x i16> %Shuff7, <4 x i16> %Shuff67, <4 x i32> <i32 5, i32 7, i32 1, i32 3>
   %I164 = insertelement <4 x i16> %Shuff106, i16 27357, i32 3
@@ -300,8 +298,8 @@ CF255:                                            ; preds = %CF255, %CF266, %CF2
   br i1 %Cmp167, label %CF255, label %CF266
 
 CF266:                                            ; preds = %CF255
-  %L168 = load i8, i8* %0
-  store i32 %E38, i32* %PC78
+  %L168 = load i8, ptr %0
+  store i32 %E38, ptr %A4
   %E169 = extractelement <2 x i16> zeroinitializer, i32 1
   %Shuff170 = shufflevector <4 x i16> %Sl79, <4 x i16> %I137, <4 x i32> <i32 6, i32 0, i32 2, i32 4>
   %I171 = insertelement <4 x i16> %Shuff163, i16 %ZE41, i32 0
@@ -311,8 +309,8 @@ CF266:                                            ; preds = %CF255
 CF258:                                            ; preds = %CF266
   %Sl173 = select i1 true, <2 x i32> %I68, <2 x i32> %I91
   %Cmp174 = icmp ugt <2 x i1> %Cmp72, %I150
-  %L175 = load i32, i32* %Sl117
-  store i32 %L104, i32* %Sl117
+  %L175 = load i32, ptr %Sl117
+  store i32 %L104, ptr %Sl117
   %E176 = extractelement <4 x i16> %Shuff67, i32 1
   %Shuff177 = shufflevector <1 x i32> %Shuff121, <1 x i32> %Shuff33, <1 x i32> zeroinitializer
   %I178 = insertelement <4 x i16> zeroinitializer, i16 27357, i32 0
@@ -322,8 +320,8 @@ CF258:                                            ; preds = %CF266
   br i1 %Cmp181, label %CF, label %CF236
 
 CF236:                                            ; preds = %CF236, %CF258
-  %L182 = load i8, i8* %0
-  store i32 %E38, i32* %Sl117
+  %L182 = load i8, ptr %0
+  store i32 %E38, ptr %Sl117
   %E183 = extractelement <1 x i32> %Shuff121, i32 0
   %Shuff184 = shufflevector <4 x i64> zeroinitializer, <4 x i64> %Shuff90, <4 x i32> <i32 7, i32 undef, i32 3, i32 5>
   %I185 = insertelement <4 x i16> %Shuff106, i16 %Tr93, i32 1
@@ -333,8 +331,8 @@ CF236:                                            ; preds = %CF236, %CF258
   br i1 %Cmp188, label %CF236, label %CF242
 
 CF242:                                            ; preds = %CF242, %CF250, %CF248, %CF236
-  %L189 = load i8, i8* %0
-  store i8 %Sl29, i8* %0
+  %L189 = load i8, ptr %0
+  store i8 %Sl29, ptr %0
   %E190 = extractelement <4 x i16> %B9, i32 3
   %Shuff191 = shufflevector <4 x i16> %Shuff26, <4 x i16> %Shuff26, <4 x i32> <i32 6, i32 0, i32 2, i32 4>
   %I192 = insertelement <1 x i32> %I122, i32 %3, i32 0
@@ -345,8 +343,8 @@ CF242:                                            ; preds = %CF242, %CF250, %CF2
   br i1 %Cmp196, label %CF242, label %CF250
 
 CF250:                                            ; preds = %CF242
-  %L197 = load i64, i64* %Sl
-  store i32 %ZE, i32* %Sl117
+  %L197 = load i64, ptr %Sl
+  store i32 %ZE, ptr %Sl117
   %E198 = extractelement <2 x i1> %Shuff20, i32 1
   br i1 %E198, label %CF242, label %CF244
 
@@ -360,8 +358,8 @@ CF244:                                            ; preds = %CF244, %CF250
   br i1 %Cmp204, label %CF244, label %CF248
 
 CF248:                                            ; preds = %CF244
-  %L205 = load float, float* %A3
-  store i32 %Tr, i32* %PC78
+  %L205 = load float, ptr %A3
+  store i32 %Tr, ptr %A4
   %E206 = extractelement <2 x i1> %Shuff20, i32 1
   br i1 %E206, label %CF242, label %CF243
 
@@ -375,8 +373,8 @@ CF243:                                            ; preds = %CF243, %CF273, %CF2
   br i1 %Cmp212, label %CF243, label %CF273
 
 CF273:                                            ; preds = %CF243
-  %L213 = load i32, i32* %PC78
-  store i8 %L168, i8* %0
+  %L213 = load i32, ptr %A4
+  store i8 %L168, ptr %0
   %E214 = extractelement <2 x i32> %Shuff113, i32 1
   %Shuff215 = shufflevector <4 x i16> %Shuff128, <4 x i16> %I137, <4 x i32> <i32 6, i32 0, i32 2, i32 4>
   %I216 = insertelement <2 x i1> %Shuff20, i1 %Cmp30, i32 0
@@ -384,8 +382,8 @@ CF273:                                            ; preds = %CF243
   %Tr218 = trunc <4 x i16> %B9 to <4 x i1>
   %Sl219 = select i1 %Cmp154, i8 %B, i8 %5
   %Cmp220 = icmp uge <4 x i64> %Shuff52, %Shuff52
-  %L221 = load i32, i32* %Sl117
-  store i8 %L168, i8* %0
+  %L221 = load i32, ptr %Sl117
+  store i8 %L168, ptr %0
   %E222 = extractelement <4 x i16> %Shuff191, i32 0
   %Shuff223 = shufflevector <4 x i16> %Shuff26, <4 x i16> %I34, <4 x i32> <i32 undef, i32 1, i32 3, i32 5>
   %I224 = insertelement <4 x i16> %Shuff26, i16 %Tr145, i32 1
@@ -395,8 +393,8 @@ CF273:                                            ; preds = %CF243
 
 CF252:                                            ; preds = %CF273
   %Cmp227 = icmp ugt <4 x i64> %Shuff143, zeroinitializer
-  %L228 = load i32, i32* %Sl117
-  store i32 %Tr, i32* %PC78
+  %L228 = load i32, ptr %Sl117
+  store i32 %Tr, ptr %A4
   %E229 = extractelement <4 x i16> %Shuff163, i32 2
   %Shuff230 = shufflevector <1 x i32> %Shuff199, <1 x i32> zeroinitializer, <1 x i32> <i32 1>
   %I231 = insertelement <4 x i16> %Shuff106, i16 %E32, i32 1
@@ -404,10 +402,10 @@ CF252:                                            ; preds = %CF273
   %FC233 = fptoui double 0x5A7FED9E637D2C1C to i32
   %Sl234 = select i1 %Cmp103, i8 %B193, i8 %L168
   %Cmp235 = icmp uge <2 x i16> zeroinitializer, zeroinitializer
-  store i32 %ZE, i32* %PC78
-  store i64 %L5, i64* %Sl
-  store i8 33, i8* %0
-  store i8 %L168, i8* %0
-  store i1 %Sl226, i1* %PC
+  store i32 %ZE, ptr %A4
+  store i64 %L5, ptr %Sl
+  store i8 33, ptr %0
+  store i8 %L168, ptr %0
+  store i1 %Sl226, ptr %A4
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier_2.ll b/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier_2.ll
index fc3b7ef1dadeb..988d107b650ad 100644
--- a/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier_2.ll
+++ b/llvm/test/CodeGen/SystemZ/splitMove_undefReg_mverifier_2.ll
@@ -4,17 +4,17 @@
 ; Test that splitting of a 128 bit store does not result in use of undef phys reg.
 ; This test case involved spilling of 128 bits, where the data operand was killed.
 
-define void @autogen_SD15107(i8*, i32*, i64*, i32, i64, i8) {
+define void @autogen_SD15107(ptr, ptr, ptr, i32, i64, i8) {
 ; CHECK: .text
 BB:
   %A4 = alloca double
   %A1 = alloca i32
-  %L = load i8, i8* %0
+  %L = load i8, ptr %0
   br label %CF331
 
 CF331:                                            ; preds = %CF331, %BB
   %Shuff = shufflevector <8 x i8> zeroinitializer, <8 x i8> zeroinitializer, <8 x i32> <i32 undef, i32 undef, i32 1, i32 3, i32 5, i32 7, i32 9, i32 11>
-  %L5 = load i8, i8* %0
+  %L5 = load i8, ptr %0
   %FC9 = fptosi float 0xC59D259100000000 to i8
   %Shuff13 = shufflevector <8 x i64> zeroinitializer, <8 x i64> zeroinitializer, <8 x i32> <i32 10, i32 undef, i32 14, i32 0, i32 undef, i32 4, i32 6, i32 8>
   %Tr = trunc <8 x i16> zeroinitializer to <8 x i1>
@@ -29,14 +29,14 @@ CF350:                                            ; preds = %CF331
 CF:                                               ; preds = %CF333, %CF364, %CF, %CF350
   %Shuff25 = shufflevector <16 x i1> zeroinitializer, <16 x i1> zeroinitializer, <16 x i32> <i32 25, i32 27, i32 29, i32 31, i32 1, i32 undef, i32 undef, i32 7, i32 9, i32 11, i32 undef, i32 15, i32 17, i32 19, i32 21, i32 23>
   %B27 = mul <8 x i8> zeroinitializer, %Shuff
-  %L31 = load i8, i8* %0
-  store i8 %L5, i8* %0
+  %L31 = load i8, ptr %0
+  store i8 %L5, ptr %0
   %E32 = extractelement <8 x i64> %Shuff13, i32 5
-  %Sl37 = select i1 %E18, i64* %2, i64* %2
+  %Sl37 = select i1 %E18, ptr %2, ptr %2
   %E40 = extractelement <8 x i64> %Shuff13, i32 4
   %I42 = insertelement <8 x i64> %Shuff13, i64 0, i32 1
-  %Sl44 = select i1 true, double* %A4, double* %A4
-  %L46 = load i64, i64* %Sl37
+  %Sl44 = select i1 true, ptr %A4, ptr %A4
+  %L46 = load i64, ptr %Sl37
   br i1 undef, label %CF, label %CF335
 
 CF335:                                            ; preds = %CF335, %CF
@@ -47,9 +47,9 @@ CF335:                                            ; preds = %CF335, %CF
   br i1 %Cmp52, label %CF335, label %CF364
 
 CF364:                                            ; preds = %CF335
-  store i64 %E32, i64* %Sl37
+  store i64 %E32, ptr %Sl37
   %B57 = udiv <8 x i64> %I42, %B50
-  %L61 = load i64, i64* %Sl37
+  %L61 = load i64, ptr %Sl37
   %Sl65 = select i1 undef, i1 %Cmp52, i1 true
   br i1 %Sl65, label %CF, label %CF333
 
@@ -58,15 +58,15 @@ CF333:                                            ; preds = %CF364
   br i1 %Cmp66, label %CF, label %CF324
 
 CF324:                                            ; preds = %CF358, %CF360, %CF333
-  %L67 = load i64, i64* %Sl37
+  %L67 = load i64, ptr %Sl37
   %Sl73 = select i1 %E18, i8 %L, i8 %L31
   %ZE = zext i1 true to i32
   %Cmp81 = icmp ult i64 184653, %L46
   br label %CF346
 
 CF346:                                            ; preds = %CF363, %CF346, %CF324
-  %L82 = load double, double* %Sl44
-  store i64 %Se, i64* %Sl37
+  %L82 = load double, ptr %Sl44
+  store i64 %Se, ptr %Sl37
   br i1 undef, label %CF346, label %CF363
 
 CF363:                                            ; preds = %CF346
@@ -75,10 +75,10 @@ CF363:                                            ; preds = %CF346
   %Cmp88 = icmp eq <16 x i1> zeroinitializer, undef
   %Shuff91 = shufflevector <8 x i64> %B57, <8 x i64> %I42, <8 x i32> <i32 1, i32 undef, i32 5, i32 7, i32 undef, i32 11, i32 13, i32 undef>
   %Sl95 = select i1 undef, i8 -1, i8 %5
-  store i8 %FC9, i8* %0
+  store i8 %FC9, ptr %0
   %Sl102 = select i1 %Sl65, float 0x3AAFABC380000000, float undef
-  %L104 = load i64, i64* %Sl37
-  store i8 %Sl95, i8* %0
+  %L104 = load i64, ptr %Sl37
+  store i8 %Sl95, ptr %0
   br i1 undef, label %CF346, label %CF360
 
 CF360:                                            ; preds = %CF363
@@ -89,14 +89,14 @@ CF360:                                            ; preds = %CF363
   br i1 %Cmp111, label %CF324, label %CF344
 
 CF344:                                            ; preds = %CF344, %CF360
-  store i64 %4, i64* %Sl37
+  store i64 %4, ptr %Sl37
   br i1 undef, label %CF344, label %CF358
 
 CF358:                                            ; preds = %CF344
   %B116 = add i8 29, %5
   %Sl118 = select i1 %Cmp81, <8 x i1> undef, <8 x i1> %Tr
-  %L120 = load i16, i16* undef
-  store i8 %FC9, i8* %0
+  %L120 = load i16, ptr undef
+  store i8 %FC9, ptr %0
   %E121 = extractelement <16 x i1> %Shuff25, i32 3
   br i1 %E121, label %CF324, label %CF325
 
@@ -108,32 +108,32 @@ CF325:                                            ; preds = %CF362, %CF358
 
 CF356:                                            ; preds = %CF356, %CF325
   %FC131 = sitofp <8 x i8> %B27 to <8 x double>
-  store i8 %Sl73, i8* %0
-  store i64 396197, i64* %Sl37
-  %L150 = load i64, i64* %Sl37
+  store i8 %Sl73, ptr %0
+  store i64 396197, ptr %Sl37
+  %L150 = load i64, ptr %Sl37
   %Cmp157 = icmp ult i64 %L150, %L61
   br i1 %Cmp157, label %CF356, label %CF359
 
 CF359:                                            ; preds = %CF359, %CF356
   %B162 = srem <8 x i64> %I85, %Shuff13
   %Tr163 = trunc i64 %Se to i8
-  %Sl164 = select i1 %Cmp52, i32* %A1, i32* %1
-  store i64 %E32, i64* undef
+  %Sl164 = select i1 %Cmp52, ptr %A1, ptr %1
+  store i64 %E32, ptr undef
   %I168 = insertelement <8 x i16> %I123, i16 undef, i32 5
   %Se170 = sext i1 %Cmp81 to i32
   %Cmp172 = icmp uge i8 %Sl73, %Sl73
   br i1 %Cmp172, label %CF359, label %CF362
 
 CF362:                                            ; preds = %CF359
-  store i16 0, i16* undef
-  store i64 448097, i64* %Sl37
+  store i16 0, ptr undef
+  store i64 448097, ptr %Sl37
   %E189 = extractelement <8 x i16> %Shuff48, i32 6
   %Sl194 = select i1 %Cmp111, i8 29, i8 0
   %Cmp195 = icmp eq i32 %ZE, %ZE
   br i1 %Cmp195, label %CF325, label %CF326
 
 CF326:                                            ; preds = %CF342, %CF362
-  store i64 %L104, i64* undef
+  store i64 %L104, ptr undef
   br label %CF342
 
 CF342:                                            ; preds = %CF326
@@ -144,7 +144,7 @@ CF337:                                            ; preds = %CF342
   br label %CF327
 
 CF327:                                            ; preds = %CF336, %CF355, %CF327, %CF337
-  store i64 %Se86, i64* undef
+  store i64 %Se86, ptr undef
   %Tr216 = trunc i64 184653 to i16
   %Sl217 = select i1 %Cmp157, <4 x i1> undef, <4 x i1> undef
   %Cmp218 = icmp slt i32 undef, %Se170
@@ -159,13 +159,13 @@ CF340:                                            ; preds = %CF355
   br label %CF334
 
 CF334:                                            ; preds = %CF343, %CF334, %CF340
-  %L226 = load i64, i64* undef
-  store i32 %3, i32* %Sl164
+  %L226 = load i64, ptr undef
+  store i32 %3, ptr %Sl164
   %Cmp233 = icmp uge i16 %Tr216, %L120
   br i1 %Cmp233, label %CF334, label %CF354
 
 CF354:                                            ; preds = %CF334
-  store i64 %L226, i64* %Sl37
+  store i64 %L226, ptr %Sl37
   %Cmp240 = icmp uge i1 %Cmp52, undef
   %Shuff243 = shufflevector <16 x i1> %I107, <16 x i1> undef, <16 x i32> <i32 28, i32 30, i32 undef, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14, i32 16, i32 18, i32 20, i32 22, i32 24, i32 undef>
   %B245 = fmul <16 x float> %FC109, %FC109
@@ -176,7 +176,7 @@ CF343:                                            ; preds = %CF354
   br i1 %Cmp248, label %CF334, label %CF336
 
 CF336:                                            ; preds = %CF343
-  store i64 %E32, i64* undef
+  store i64 %E32, ptr undef
   br i1 undef, label %CF327, label %CF328
 
 CF328:                                            ; preds = %CF345, %CF336
@@ -192,7 +192,7 @@ CF338:                                            ; preds = %CF345
   br label %CF329
 
 CF329:                                            ; preds = %CF339, %CF348, %CF357, %CF338
-  store i64 %L67, i64* %Sl37
+  store i64 %L67, ptr %Sl37
   br label %CF357
 
 CF357:                                            ; preds = %CF329
@@ -210,20 +210,20 @@ CF339:                                            ; preds = %CF348
 
 CF330:                                            ; preds = %CF361, %CF330, %CF339
   %E301 = extractelement <8 x double> %FC131, i32 3
-  store i64 %Sl16, i64* %Sl37
+  store i64 %Sl16, ptr %Sl37
   %Se313 = sext <8 x i1> %Sl118 to <8 x i32>
   %Cmp315 = icmp sgt i8 %Tr163, %L
   br i1 %Cmp315, label %CF330, label %CF361
 
 CF361:                                            ; preds = %CF330
-  store i16 %L120, i16* undef
+  store i16 %L120, ptr undef
   %Shuff318 = shufflevector <8 x i64> %B162, <8 x i64> undef, <8 x i32> <i32 8, i32 10, i32 12, i32 14, i32 0, i32 2, i32 4, i32 6>
   %ZE321 = zext i16 %E189 to i64
   %Sl322 = select i1 %Cmp240, i1 %Cmp262, i1 %Cmp291
   br i1 %Sl322, label %CF330, label %CF351
 
 CF351:                                            ; preds = %CF361
-  store double %Sl224, double* %Sl44
-  store i32 %ZE, i32* %Sl164
+  store double %Sl224, ptr %Sl44
+  store i32 %ZE, ptr %Sl164
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/stack-clash-dynamic-alloca.ll b/llvm/test/CodeGen/SystemZ/stack-clash-dynamic-alloca.ll
index a72cba1b8ba44..410f17325ecf6 100644
--- a/llvm/test/CodeGen/SystemZ/stack-clash-dynamic-alloca.ll
+++ b/llvm/test/CodeGen/SystemZ/stack-clash-dynamic-alloca.ll
@@ -37,9 +37,9 @@ define i32 @fun0(i32 %n) #0 {
 ; CHECK-NEXT:    br %r14
 
   %a = alloca i32, i32 %n
-  %b = getelementptr inbounds i32, i32* %a, i64 1198
-  store volatile i32 1, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 1198
+  store volatile i32 1, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -79,9 +79,9 @@ define i32 @fun1(i32 %n) #0 "stack-probe-size"="1250" {
 ; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)
 ; CHECK-NEXT:    br %r14
   %a = alloca i32, i32 %n
-  %b = getelementptr inbounds i32, i32* %a, i64 1198
-  store volatile i32 1, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 1198
+  store volatile i32 1, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -127,9 +127,9 @@ define i32 @fun2(i32 %n) #0 "stack-probe-size"="4" {
 ; CHECK-NEXT:    lmg %r11, %r15, 248(%r11)
 ; CHECK-NEXT:    br %r14
   %a = alloca i32, i32 %n
-  %b = getelementptr inbounds i32, i32* %a, i64 1198
-  store volatile i32 1, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 1198
+  store volatile i32 1, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/stack-clash-protection.ll b/llvm/test/CodeGen/SystemZ/stack-clash-protection.ll
index 40ffdc735589e..e074122197be8 100644
--- a/llvm/test/CodeGen/SystemZ/stack-clash-protection.ll
+++ b/llvm/test/CodeGen/SystemZ/stack-clash-protection.ll
@@ -16,9 +16,9 @@ define i32 @fun0() #0 {
 ; CHECK-NEXT:    br %r14
 
   %a = alloca i32, i64 100
-  %b = getelementptr inbounds i32, i32* %a, i64 98
-  store volatile i32 1, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 98
+  store volatile i32 1, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -38,9 +38,9 @@ define i32 @fun1() #0 {
 ; CHECK-NEXT:    br %r14
 
   %a = alloca i32, i64 2000
-  %b = getelementptr inbounds i32, i32* %a, i64 200
-  store volatile i32 1, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 200
+  store volatile i32 1, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -69,11 +69,11 @@ define i32 @fun2() #0 {
 ; CHECK-NEXT:    br %r14
 
   %a = alloca i32, i64 18000
-  %b0 = getelementptr inbounds i32, i32* %a, i64 98
-  %b1 = getelementptr inbounds i32, i32* %a, i64 7198
-  store volatile i32 1, i32* %b0
-  store volatile i32 1, i32* %b1
-  %c = load volatile i32, i32* %a
+  %b0 = getelementptr inbounds i32, ptr %a, i64 98
+  %b1 = getelementptr inbounds i32, ptr %a, i64 7198
+  store volatile i32 1, ptr %b0
+  store volatile i32 1, ptr %b1
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -99,10 +99,8 @@ define void @fun3() #0 {
 entry:
   %stack = alloca [7122 x i32], align 4
   %i = alloca i32, align 4
-  %0 = bitcast [7122 x i32]* %stack to i8*
-  %i.0.i.0..sroa_cast = bitcast i32* %i to i8*
-  store volatile i32 0, i32* %i, align 4
-  %i.0.i.0.6 = load volatile i32, i32* %i, align 4
+  store volatile i32 0, ptr %i, align 4
+  %i.0.i.0.6 = load volatile i32, ptr %i, align 4
   ret void
 }
 
@@ -131,10 +129,8 @@ define void @fun4() #0 "stack-probe-size"="8192" {
 entry:
   %stack = alloca [8000 x i32], align 4
   %i = alloca i32, align 4
-  %0 = bitcast [8000 x i32]* %stack to i8*
-  %i.0.i.0..sroa_cast = bitcast i32* %i to i8*
-  store volatile i32 0, i32* %i, align 4
-  %i.0.i.0.6 = load volatile i32, i32* %i, align 4
+  store volatile i32 0, ptr %i, align 4
+  %i.0.i.0.6 = load volatile i32, ptr %i, align 4
   ret void
 }
 
@@ -155,10 +151,8 @@ define void @fun5() #0 "stack-probe-size"="4100" {
 entry:
   %stack = alloca [1000 x i32], align 4
   %i = alloca i32, align 4
-  %0 = bitcast [1000 x i32]* %stack to i8*
-  %i.0.i.0..sroa_cast = bitcast i32* %i to i8*
-  store volatile i32 0, i32* %i, align 4
-  %i.0.i.0.6 = load volatile i32, i32* %i, align 4
+  store volatile i32 0, ptr %i, align 4
+  %i.0.i.0.6 = load volatile i32, ptr %i, align 4
   ret void
 }
 
@@ -184,10 +178,8 @@ define void @fun6() #0 "stack-probe-size"="5" {
 entry:
   %stack = alloca [1000 x i32], align 4
   %i = alloca i32, align 4
-  %0 = bitcast [1000 x i32]* %stack to i8*
-  %i.0.i.0..sroa_cast = bitcast i32* %i to i8*
-  store volatile i32 0, i32* %i, align 4
-  %i.0.i.0.6 = load volatile i32, i32* %i, align 4
+  store volatile i32 0, ptr %i, align 4
+  %i.0.i.0.6 = load volatile i32, ptr %i, align 4
   ret void
 }
 
@@ -207,9 +199,9 @@ define i32 @fun7() #0 {
 ; CHECK-NEXT:    br %r14
   %v = call i32 @foo()
   %a = alloca i32, i64 950
-  %b = getelementptr inbounds i32, i32* %a, i64 98
-  store volatile i32 %v, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 98
+  store volatile i32 %v, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -231,9 +223,9 @@ define i32 @fun8() #0 {
 
   %v = call i32 @foo()
   %a = alloca i32, i64 952
-  %b = getelementptr inbounds i32, i32* %a, i64 200
-  store volatile i32 %v, i32* %b
-  %c = load volatile i32, i32* %a
+  %b = getelementptr inbounds i32, ptr %a, i64 200
+  store volatile i32 %v, ptr %b
+  %c = load volatile i32, ptr %a
   ret i32 %c
 }
 
@@ -260,10 +252,8 @@ define void @fun9() #0 "backchain" {
 entry:
   %stack = alloca [7122 x i32], align 4
   %i = alloca i32, align 4
-  %0 = bitcast [7122 x i32]* %stack to i8*
-  %i.0.i.0..sroa_cast = bitcast i32* %i to i8*
-  store volatile i32 0, i32* %i, align 4
-  %i.0.i.0.6 = load volatile i32, i32* %i, align 4
+  store volatile i32 0, ptr %i, align 4
+  %i.0.i.0.6 = load volatile i32, ptr %i, align 4
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/stack-guard.ll b/llvm/test/CodeGen/SystemZ/stack-guard.ll
index df74f15a8d475..04a87b4632dd2 100644
--- a/llvm/test/CodeGen/SystemZ/stack-guard.ll
+++ b/llvm/test/CodeGen/SystemZ/stack-guard.ll
@@ -16,20 +16,18 @@
 define i32 @test_stack_guard() #0 {
 entry:
   %a1 = alloca [256 x i32], align 4
-  %0 = bitcast [256 x i32]* %a1 to i8*
-  call void @llvm.lifetime.start.p0i8(i64 1024, i8* %0)
-  %arraydecay = getelementptr inbounds [256 x i32], [256 x i32]* %a1, i64 0, i64 0
-  call void @foo3(i32* %arraydecay)
-  call void @llvm.lifetime.end.p0i8(i64 1024, i8* %0)
+  call void @llvm.lifetime.start.p0(i64 1024, ptr %a1)
+  call void @foo3(ptr %a1)
+  call void @llvm.lifetime.end.p0(i64 1024, ptr %a1)
   ret i32 0
 }
 
 ; Function Attrs: nounwind
-declare void @llvm.lifetime.start.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.start.p0(i64, ptr nocapture)
 
-declare void @foo3(i32*)
+declare void @foo3(ptr)
 
 ; Function Attrs: nounwind
-declare void @llvm.lifetime.end.p0i8(i64, i8* nocapture)
+declare void @llvm.lifetime.end.p0(i64, ptr nocapture)
 
 attributes #0 = { sspstrong }

diff  --git a/llvm/test/CodeGen/SystemZ/stackmap-dynamic-alloca.ll b/llvm/test/CodeGen/SystemZ/stackmap-dynamic-alloca.ll
index 6223ccd768073..53e768c28c218 100644
--- a/llvm/test/CodeGen/SystemZ/stackmap-dynamic-alloca.ll
+++ b/llvm/test/CodeGen/SystemZ/stackmap-dynamic-alloca.ll
@@ -23,7 +23,7 @@
 define void @f(i32 %nelems) {
 entry:
   %mem = alloca i32, i32 %nelems
-  call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0, i32* %mem)
+  call void (i64, i32, ...) @llvm.experimental.stackmap(i64 0, i32 0, ptr %mem)
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/stackpointer.ll b/llvm/test/CodeGen/SystemZ/stackpointer.ll
index 94d23b90e1da4..5b7f204e92ad7 100644
--- a/llvm/test/CodeGen/SystemZ/stackpointer.ll
+++ b/llvm/test/CodeGen/SystemZ/stackpointer.ll
@@ -1,13 +1,13 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-define i8* @get_stack() nounwind {
+define ptr @get_stack() nounwind {
 entry:
 ; CHECK-LABEL: get_stack:
 ; CHECK: lgr %r2, %r15
 ; CHECK-NEXT: br %r14
         %0 = call i64 @llvm.read_register.i64(metadata !0)
-        %1 = inttoptr i64 %0 to i8*
-  ret i8* %1
+        %1 = inttoptr i64 %0 to ptr
+  ret ptr %1
 }
 
 declare i64 @llvm.read_register.i64(metadata) nounwind

diff  --git a/llvm/test/CodeGen/SystemZ/store-replicated-vals.ll b/llvm/test/CodeGen/SystemZ/store-replicated-vals.ll
index c18806a43338b..3c0d6cbc4e5a1 100644
--- a/llvm/test/CodeGen/SystemZ/store-replicated-vals.ll
+++ b/llvm/test/CodeGen/SystemZ/store-replicated-vals.ll
@@ -5,171 +5,171 @@
 
 ;; Replicated registers
 
-define void @fun_2x1b(i8* %Src, i16* %Dst) {
+define void @fun_2x1b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_2x1b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepb %v0, 0(%r2)
 ; CHECK-NEXT:    vsteh %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- %i = load i8, i8* %Src
+ %i = load i8, ptr %Src
  %ZE = zext i8 %i to i16
  %Val = mul i16 %ZE, 257
- store i16 %Val, i16* %Dst
+ store i16 %Val, ptr %Dst
  ret void
 }
 
 ; Test multiple stores of same value.
-define void @fun_4x1b(i8* %Src, i32* %Dst, i32* %Dst2) {
+define void @fun_4x1b(ptr %Src, ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_4x1b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepb %v0, 0(%r2)
 ; CHECK-NEXT:    vstef %v0, 0(%r3), 0
 ; CHECK-NEXT:    vstef %v0, 0(%r4), 0
 ; CHECK-NEXT:    br %r14
- %i = load i8, i8* %Src
+ %i = load i8, ptr %Src
  %ZE = zext i8 %i to i32
  %Val = mul i32 %ZE, 16843009
- store i32 %Val, i32* %Dst
- store i32 %Val, i32* %Dst2
+ store i32 %Val, ptr %Dst
+ store i32 %Val, ptr %Dst2
  ret void
 }
 
-define void @fun_8x1b(i8* %Src, i64* %Dst) {
+define void @fun_8x1b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_8x1b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepb %v0, 0(%r2)
 ; CHECK-NEXT:    vsteg %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- %i = load i8, i8* %Src
+ %i = load i8, ptr %Src
  %ZE = zext i8 %i to i64
  %Val = mul i64 %ZE, 72340172838076673
- store i64 %Val, i64* %Dst
+ store i64 %Val, ptr %Dst
  ret void
 }
 
 ; A second truncated store of same value.
-define void @fun_8x1b_4x1b(i8* %Src, i64* %Dst, i32* %Dst2) {
+define void @fun_8x1b_4x1b(ptr %Src, ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_8x1b_4x1b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepb %v0, 0(%r2)
 ; CHECK-NEXT:    vsteg %v0, 0(%r3), 0
 ; CHECK-NEXT:    vstef %v0, 0(%r4), 0
 ; CHECK-NEXT:    br %r14
- %i = load i8, i8* %Src
+ %i = load i8, ptr %Src
  %ZE = zext i8 %i to i64
  %Val = mul i64 %ZE, 72340172838076673
- store i64 %Val, i64* %Dst
+ store i64 %Val, ptr %Dst
  %TrVal = trunc i64 %Val to i32
- store i32 %TrVal, i32* %Dst2
+ store i32 %TrVal, ptr %Dst2
  ret void
 }
 
-define void @fun_2x2b(i16* %Src, i32* %Dst) {
+define void @fun_2x2b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_2x2b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlreph %v0, 0(%r2)
 ; CHECK-NEXT:    vstef %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- %i = load i16, i16* %Src
+ %i = load i16, ptr %Src
  %ZE = zext i16 %i to i32
  %Val = mul i32 %ZE, 65537
- store i32 %Val, i32* %Dst
+ store i32 %Val, ptr %Dst
  ret void
 }
 
-define void @fun_4x2b(i16* %Src, i64* %Dst) {
+define void @fun_4x2b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_4x2b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlreph %v0, 0(%r2)
 ; CHECK-NEXT:    vsteg %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- %i = load i16, i16* %Src
+ %i = load i16, ptr %Src
  %ZE = zext i16 %i to i64
  %Val = mul i64 %ZE, 281479271743489
- store i64 %Val, i64* %Dst
+ store i64 %Val, ptr %Dst
  ret void
 }
 
-define void @fun_2x4b(i32* %Src, i64* %Dst) {
+define void @fun_2x4b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_2x4b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepf %v0, 0(%r2)
 ; CHECK-NEXT:    vsteg %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- %i = load i32, i32* %Src
+ %i = load i32, ptr %Src
  %ZE = zext i32 %i to i64
  %Val = mul i64 %ZE, 4294967297
- store i64 %Val, i64* %Dst
+ store i64 %Val, ptr %Dst
  ret void
 }
 
 ;; Replicated registers already in a vector.
 
 ; Test multiple stores of same value.
-define void @fun_2Eltsx8x1b(i8* %Src, <2 x i64>* %Dst, <2 x i64>* %Dst2) {
+define void @fun_2Eltsx8x1b(ptr %Src, ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_2Eltsx8x1b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepb %v0, 0(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r3), 3
 ; CHECK-NEXT:    vst %v0, 0(%r4), 3
 ; CHECK-NEXT:    br %r14
- %i = load i8, i8* %Src
+ %i = load i8, ptr %Src
  %ZE = zext i8 %i to i64
  %Mul = mul i64 %ZE, 72340172838076673
  %tmp = insertelement <2 x i64> undef, i64 %Mul, i32 0
  %Val = shufflevector <2 x i64> %tmp, <2 x i64> undef, <2 x i32> zeroinitializer
- store <2 x i64> %Val, <2 x i64>* %Dst
- store <2 x i64> %Val, <2 x i64>* %Dst2
+ store <2 x i64> %Val, ptr %Dst
+ store <2 x i64> %Val, ptr %Dst2
  ret void
 }
 
-define void @fun_4Eltsx2x2b(i16* %Src, <4 x i32>* %Dst) {
+define void @fun_4Eltsx2x2b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_4Eltsx2x2b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlreph %v0, 0(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r3), 3
 ; CHECK-NEXT:    br %r14
- %i = load i16, i16* %Src
+ %i = load i16, ptr %Src
  %ZE = zext i16 %i to i32
  %Mul = mul i32 %ZE, 65537
  %tmp = insertelement <4 x i32> undef, i32 %Mul, i32 0
  %Val = shufflevector <4 x i32> %tmp, <4 x i32> undef, <4 x i32> zeroinitializer
- store <4 x i32> %Val, <4 x i32>* %Dst
+ store <4 x i32> %Val, ptr %Dst
  ret void
 }
 
-define void @fun_6Eltsx2x2b(i16* %Src, <6 x i32>* %Dst) {
+define void @fun_6Eltsx2x2b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_6Eltsx2x2b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlreph %v0, 0(%r2)
 ; CHECK-NEXT:    vsteg %v0, 16(%r3), 0
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
- %i = load i16, i16* %Src
+ %i = load i16, ptr %Src
  %ZE = zext i16 %i to i32
  %Mul = mul i32 %ZE, 65537
  %tmp = insertelement <6 x i32> undef, i32 %Mul, i32 0
  %Val = shufflevector <6 x i32> %tmp, <6 x i32> undef, <6 x i32> zeroinitializer
- store <6 x i32> %Val, <6 x i32>* %Dst
+ store <6 x i32> %Val, ptr %Dst
  ret void
 }
 
-define void @fun_2Eltsx2x4b(i32* %Src, <2 x i64>* %Dst) {
+define void @fun_2Eltsx2x4b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_2Eltsx2x4b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepf %v0, 0(%r2)
 ; CHECK-NEXT:    vst %v0, 0(%r3), 3
 ; CHECK-NEXT:    br %r14
- %i = load i32, i32* %Src
+ %i = load i32, ptr %Src
  %ZE = zext i32 %i to i64
  %Mul = mul i64 %ZE, 4294967297
  %tmp = insertelement <2 x i64> undef, i64 %Mul, i32 0
  %Val = shufflevector <2 x i64> %tmp, <2 x i64> undef, <2 x i32> zeroinitializer
- store <2 x i64> %Val, <2 x i64>* %Dst
+ store <2 x i64> %Val, ptr %Dst
  ret void
 }
 
-define void @fun_5Eltsx2x4b(i32* %Src, <5 x i64>* %Dst) {
+define void @fun_5Eltsx2x4b(ptr %Src, ptr %Dst) {
 ; CHECK-LABEL: fun_5Eltsx2x4b:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlrepf %v0, 0(%r2)
@@ -177,17 +177,17 @@ define void @fun_5Eltsx2x4b(i32* %Src, <5 x i64>* %Dst) {
 ; CHECK-NEXT:    vst %v0, 16(%r3), 4
 ; CHECK-NEXT:    vst %v0, 0(%r3), 4
 ; CHECK-NEXT:    br %r14
- %i = load i32, i32* %Src
+ %i = load i32, ptr %Src
  %ZE = zext i32 %i to i64
  %Mul = mul i64 %ZE, 4294967297
  %tmp = insertelement <5 x i64> undef, i64 %Mul, i32 0
  %Val = shufflevector <5 x i64> %tmp, <5 x i64> undef, <5 x i32> zeroinitializer
- store <5 x i64> %Val, <5 x i64>* %Dst
+ store <5 x i64> %Val, ptr %Dst
  ret void
 }
 
 ; Test replicating an incoming argument.
-define void @fun_8x1b_arg(i8 %Arg, i64* %Dst) {
+define void @fun_8x1b_arg(i8 %Arg, ptr %Dst) {
 ; CHECK-LABEL: fun_8x1b_arg:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlvgp %v0, %r2, %r2
@@ -196,7 +196,7 @@ define void @fun_8x1b_arg(i8 %Arg, i64* %Dst) {
 ; CHECK-NEXT:    br %r14
  %ZE = zext i8 %Arg to i64
  %Val = mul i64 %ZE, 72340172838076673
- store i64 %Val, i64* %Dst
+ store i64 %Val, ptr %Dst
  ret void
 }
 
@@ -212,7 +212,7 @@ define void @fun_nonlocalval() {
 ; CHECK-NEXT:    vrepf %v0, %v0, 1
 ; CHECK-NEXT:    vst %v0, 0(%r1), 3
 ; CHECK-NEXT:    br %r14
-  %i = load i32, i32* undef, align 4
+  %i = load i32, ptr undef, align 4
   br i1 undef, label %bb2, label %bb7
 
 bb2:                                              ; preds = %bb1
@@ -220,7 +220,7 @@ bb2:                                              ; preds = %bb1
   %i4 = mul nuw i64 %i3, 4294967297
   %i5 = insertelement <2 x i64> poison, i64 %i4, i64 0
   %i6 = shufflevector <2 x i64> %i5, <2 x i64> poison, <2 x i32> zeroinitializer
-  store <2 x i64> %i6, <2 x i64>* undef, align 8
+  store <2 x i64> %i6, ptr undef, align 8
   ret void
 
 bb7:
@@ -230,99 +230,99 @@ bb7:
 ;; Replicated immediates
 
 ; Some cases where scalar instruction is better
-define void @fun_8x1i_zero(i64* %Dst) {
+define void @fun_8x1i_zero(ptr %Dst) {
 ; CHECK-LABEL: fun_8x1i_zero:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvghi 0(%r2), 0
 ; CHECK-NEXT:    br %r14
- store i64 0, i64* %Dst
+ store i64 0, ptr %Dst
  ret void
 }
 
-define void @fun_4x1i_minus1(i32* %Dst) {
+define void @fun_4x1i_minus1(ptr %Dst) {
 ; CHECK-LABEL: fun_4x1i_minus1:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvhi 0(%r2), -1
 ; CHECK-NEXT:    br %r14
- store i32 -1, i32* %Dst
+ store i32 -1, ptr %Dst
  ret void
 }
 
-define void @fun_4x1i_allones(i32* %Dst) {
+define void @fun_4x1i_allones(ptr %Dst) {
 ; CHECK-LABEL: fun_4x1i_allones:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvhi 0(%r2), -1
 ; CHECK-NEXT:    br %r14
- store i32 4294967295, i32* %Dst
+ store i32 4294967295, ptr %Dst
  ret void
 }
 
-define void @fun_2i(i16* %Dst) {
+define void @fun_2i(ptr %Dst) {
 ; CHECK-LABEL: fun_2i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    mvhhi 0(%r2), 1
 ; CHECK-NEXT:    br %r14
- store i16 1, i16* %Dst
+ store i16 1, ptr %Dst
  ret void
 }
 
-define void @fun_2x2i(i32* %Dst) {
+define void @fun_2x2i(ptr %Dst) {
 ; CHECK-LABEL: fun_2x2i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepih %v0, 1
 ; CHECK-NEXT:    vstef %v0, 0(%r2), 0
 ; CHECK-NEXT:    br %r14
- store i32 65537, i32* %Dst
+ store i32 65537, ptr %Dst
  ret void
 }
 
-define void @fun_4x2i(i64* %Dst) {
+define void @fun_4x2i(ptr %Dst) {
 ; CHECK-LABEL: fun_4x2i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepih %v0, 1
 ; CHECK-NEXT:    vsteg %v0, 0(%r2), 0
 ; CHECK-NEXT:    br %r14
- store i64 281479271743489, i64* %Dst
+ store i64 281479271743489, ptr %Dst
  ret void
 }
 
-define void @fun_2x4i(i64* %Dst) {
+define void @fun_2x4i(ptr %Dst) {
 ; CHECK-LABEL: fun_2x4i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepif %v0, 1
 ; CHECK-NEXT:    vsteg %v0, 0(%r2), 0
 ; CHECK-NEXT:    br %r14
- store i64 4294967297, i64* %Dst
+ store i64 4294967297, ptr %Dst
  ret void
 }
 
 ; Store replicated immediate twice using the same vector.
-define void @fun_4x1i(i32* %Dst, i32* %Dst2) {
+define void @fun_4x1i(ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_4x1i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 3
 ; CHECK-NEXT:    vstef %v0, 0(%r2), 0
 ; CHECK-NEXT:    vstef %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- store i32 50529027, i32* %Dst
- store i32 50529027, i32* %Dst2
+ store i32 50529027, ptr %Dst
+ store i32 50529027, ptr %Dst2
  ret void
 }
 
-define void @fun_8x1i(i64* %Dst, i64* %Dst2) {
+define void @fun_8x1i(ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_8x1i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 1
 ; CHECK-NEXT:    vsteg %v0, 0(%r2), 0
 ; CHECK-NEXT:    vsteg %v0, 0(%r3), 0
 ; CHECK-NEXT:    br %r14
- store i64 72340172838076673, i64* %Dst
- store i64 72340172838076673, i64* %Dst2
+ store i64 72340172838076673, ptr %Dst
+ store i64 72340172838076673, ptr %Dst2
  ret void
 }
 
 ; Similar, but with vectors.
-define void @fun_4Eltsx4x1i_2Eltsx4x1i(<4 x i32>* %Dst, <2 x i32>* %Dst2) {
+define void @fun_4Eltsx4x1i_2Eltsx4x1i(ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_4Eltsx4x1i_2Eltsx4x1i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 3
@@ -331,15 +331,15 @@ define void @fun_4Eltsx4x1i_2Eltsx4x1i(<4 x i32>* %Dst, <2 x i32>* %Dst2) {
 ; CHECK-NEXT:    br %r14
  %tmp = insertelement <4 x i32> undef, i32 50529027, i32 0
  %Val = shufflevector <4 x i32> %tmp, <4 x i32> undef, <4 x i32> zeroinitializer
- store <4 x i32> %Val, <4 x i32>* %Dst
+ store <4 x i32> %Val, ptr %Dst
  %tmp2 = insertelement <2 x i32> undef, i32 50529027, i32 0
  %Val2 = shufflevector <2 x i32> %tmp2, <2 x i32> undef, <2 x i32> zeroinitializer
- store <2 x i32> %Val2, <2 x i32>* %Dst2
+ store <2 x i32> %Val2, ptr %Dst2
  ret void
 }
 
 ; Same, but 64-bit store is scalar.
-define void @fun_4Eltsx4x1i_8x1i(<4 x i32>* %Dst, i64* %Dst2) {
+define void @fun_4Eltsx4x1i_8x1i(ptr %Dst, ptr %Dst2) {
 ; CHECK-LABEL: fun_4Eltsx4x1i_8x1i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepib %v0, 3
@@ -348,12 +348,12 @@ define void @fun_4Eltsx4x1i_8x1i(<4 x i32>* %Dst, i64* %Dst2) {
 ; CHECK-NEXT:    br %r14
  %tmp = insertelement <4 x i32> undef, i32 50529027, i32 0
  %Val = shufflevector <4 x i32> %tmp, <4 x i32> undef, <4 x i32> zeroinitializer
- store <4 x i32> %Val, <4 x i32>* %Dst
- store i64 217020518514230019, i64* %Dst2
+ store <4 x i32> %Val, ptr %Dst
+ store i64 217020518514230019, ptr %Dst2
  ret void
 }
 
-define void @fun_3Eltsx2x4i(<3 x i64>* %Dst) {
+define void @fun_3Eltsx2x4i(ptr %Dst) {
 ; CHECK-LABEL: fun_3Eltsx2x4i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vrepif %v0, 1
@@ -362,12 +362,12 @@ define void @fun_3Eltsx2x4i(<3 x i64>* %Dst) {
 ; CHECK-NEXT:    br %r14
  %tmp = insertelement <3 x i64> undef, i64 4294967297, i32 0
  %Val = shufflevector <3 x i64> %tmp, <3 x i64> undef, <3 x i32> zeroinitializer
- store <3 x i64> %Val, <3 x i64>* %Dst
+ store <3 x i64> %Val, ptr %Dst
  ret void
 }
 
 ; i128 replicated '1': not using vrepib, but should compile.
-define void @fun_16x1i(i128* %Dst) {
+define void @fun_16x1i(ptr %Dst) {
 ; CHECK-LABEL: fun_16x1i:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    llihf %r0, 16843009
@@ -375,6 +375,6 @@ define void @fun_16x1i(i128* %Dst) {
 ; CHECK-NEXT:    stg %r0, 8(%r2)
 ; CHECK-NEXT:    stg %r0, 0(%r2)
 ; CHECK-NEXT:    br %r14
- store i128 1334440654591915542993625911497130241, i128* %Dst
+ store i128 1334440654591915542993625911497130241, ptr %Dst
  ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll b/llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
index 49f11597d1ec8..ee337a95754a8 100644
--- a/llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
+++ b/llvm/test/CodeGen/SystemZ/store_nonbytesized_vecs.ll
@@ -2,7 +2,7 @@
 ; RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 < %s  | FileCheck %s
 
 ; Store a <4 x i31> vector.
-define void @fun0(<4 x i31> %src, <4 x i31>* %p)
+define void @fun0(<4 x i31> %src, ptr %p)
 ; CHECK-LABEL: fun0:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlgvf %r1, %v24, 0
@@ -19,7 +19,7 @@ define void @fun0(<4 x i31> %src, <4 x i31>* %p)
 ; CHECK-NEXT:    stg %r0, 8(%r2)
 ; CHECK-NEXT:    br %r14
 {
-  store <4 x i31> %src, <4 x i31>* %p
+  store <4 x i31> %src, ptr %p
   ret void
 }
 
@@ -70,7 +70,7 @@ define i16 @fun1(<16 x i1> %src)
 }
 
 ; Truncate a <8 x i32> vector to <8 x i31> and store it (test splitting).
-define void @fun2(<8 x i32> %src, <8 x i31>* %p)
+define void @fun2(<8 x i32> %src, ptr %p)
 ; CHECK-LABEL: fun2:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    stmg %r14, %r15, 112(%r15)
@@ -116,12 +116,12 @@ define void @fun2(<8 x i32> %src, <8 x i31>* %p)
 ; CHECK-NEXT:    br %r14
 {
   %tmp = trunc <8 x i32> %src to <8 x i31>
-  store <8 x i31> %tmp, <8 x i31>* %p
+  store <8 x i31> %tmp, ptr %p
   ret void
 }
 
 ; Load and store a <3 x i31> vector (test widening).
-define void @fun3(<3 x i31>* %src, <3 x i31>* %p)
+define void @fun3(ptr %src, ptr %p)
 ; CHECK-LABEL: fun3:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    llgf %r0, 8(%r2)
@@ -130,7 +130,7 @@ define void @fun3(<3 x i31>* %src, <3 x i31>* %p)
 ; CHECK-NEXT:    st %r0, 8(%r3)
 ; CHECK-NEXT:    br %r14
 {
-  %tmp = load <3 x i31>, <3 x i31>* %src
-  store <3 x i31> %tmp, <3 x i31>* %p
+  %tmp = load <3 x i31>, ptr %src
+  store <3 x i31> %tmp, ptr %p
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/strcmp-01.ll b/llvm/test/CodeGen/SystemZ/strcmp-01.ll
index a3e3bbbb23be7..d8c66fead3c92 100644
--- a/llvm/test/CodeGen/SystemZ/strcmp-01.ll
+++ b/llvm/test/CodeGen/SystemZ/strcmp-01.ll
@@ -2,10 +2,10 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare signext i32 @strcmp(i8 *%src1, i8 *%src2)
+declare signext i32 @strcmp(ptr %src1, ptr %src2)
 
 ; Check a case where the result is used as an integer.
-define i32 @f1(i8 *%src1, i8 *%src2) {
+define i32 @f1(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f1:
 ; CHECK: lhi %r0, 0
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -16,12 +16,12 @@ define i32 @f1(i8 *%src1, i8 *%src2) {
 ; CHECK: sll %r2, 2
 ; CHECK: sra %r2, 30
 ; CHECK: br %r14
-  %res = call i32 @strcmp(i8 *%src1, i8 *%src2)
+  %res = call i32 @strcmp(ptr %src1, ptr %src2)
   ret i32 %res
 }
 
 ; Check a case where the result is tested for equality.
-define void @f2(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f2(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi %r0, 0
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -30,12 +30,12 @@ define void @f2(i8 *%src1, i8 *%src2, i32 *%dest) {
 ; CHECK-NEXT: %bb.{{[0-9]+}}
 ; CHECK-NEXT: ber %r14
 ; CHECK: br %r14
-  %res = call i32 @strcmp(i8 *%src1, i8 *%src2)
+  %res = call i32 @strcmp(ptr %src1, ptr %src2)
   %cmp = icmp eq i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -44,7 +44,7 @@ exit:
 
 ; Test a case where the result is used both as an integer and for
 ; branching.
-define i32 @f3(i8 *%src1, i8 *%src2, i32 *%dest) {
+define i32 @f3(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK: lhi %r0, 0
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -57,12 +57,12 @@ define i32 @f3(i8 *%src1, i8 *%src2, i32 *%dest) {
 ; CHECK: blr %r14
 ; CHECK: br %r14
 entry:
-  %res = call i32 @strcmp(i8 *%src1, i8 *%src2)
+  %res = call i32 @strcmp(ptr %src1, ptr %src2)
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/strcmp-nobuiltin.ll b/llvm/test/CodeGen/SystemZ/strcmp-nobuiltin.ll
index 187348881a6db..0feb0893e7e76 100644
--- a/llvm/test/CodeGen/SystemZ/strcmp-nobuiltin.ll
+++ b/llvm/test/CodeGen/SystemZ/strcmp-nobuiltin.ll
@@ -3,30 +3,30 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare signext i32 @strcmp(i8 *%src1, i8 *%src2)
+declare signext i32 @strcmp(ptr %src1, ptr %src2)
 
 ; Check a case where the result is used as an integer.
-define i32 @f1(i8 *%src1, i8 *%src2) {
+define i32 @f1(ptr %src1, ptr %src2) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: clst
 ; CHECK: brasl %r14, strcmp
 ; CHECK: br %r14
-  %res = call i32 @strcmp(i8 *%src1, i8 *%src2) nobuiltin
+  %res = call i32 @strcmp(ptr %src1, ptr %src2) nobuiltin
   ret i32 %res
 }
 
 ; Check a case where the result is tested for equality.
-define void @f2(i8 *%src1, i8 *%src2, i32 *%dest) {
+define void @f2(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: clst
 ; CHECK: brasl %r14, strcmp
 ; CHECK: br %r14
-  %res = call i32 @strcmp(i8 *%src1, i8 *%src2) nobuiltin
+  %res = call i32 @strcmp(ptr %src1, ptr %src2) nobuiltin
   %cmp = icmp eq i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:
@@ -35,18 +35,18 @@ exit:
 
 ; Test a case where the result is used both as an integer and for
 ; branching.
-define i32 @f3(i8 *%src1, i8 *%src2, i32 *%dest) {
+define i32 @f3(ptr %src1, ptr %src2, ptr %dest) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: clst
 ; CHECK: brasl %r14, strcmp
 ; CHECK: br %r14
 entry:
-  %res = call i32 @strcmp(i8 *%src1, i8 *%src2) nobuiltin
+  %res = call i32 @strcmp(ptr %src1, ptr %src2) nobuiltin
   %cmp = icmp slt i32 %res, 0
   br i1 %cmp, label %exit, label %store
 
 store:
-  store i32 0, i32 *%dest
+  store i32 0, ptr %dest
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/strcpy-01.ll b/llvm/test/CodeGen/SystemZ/strcpy-01.ll
index 40f91a312ac8d..d892b5f21cf3a 100644
--- a/llvm/test/CodeGen/SystemZ/strcpy-01.ll
+++ b/llvm/test/CodeGen/SystemZ/strcpy-01.ll
@@ -2,11 +2,11 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i8 *@strcpy(i8 *%dest, i8 *%src)
-declare i8 *@stpcpy(i8 *%dest, i8 *%src)
+declare ptr at strcpy(ptr %dest, ptr %src)
+declare ptr at stpcpy(ptr %dest, ptr %src)
 
 ; Check strcpy.
-define i8 *@f1(i8 *%dest, i8 *%src) {
+define ptr at f1(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lhi %r0, 0
 ; CHECK-DAG: lgr [[REG:%r[145]]], %r2
@@ -15,12 +15,12 @@ define i8 *@f1(i8 *%dest, i8 *%src) {
 ; CHECK-NEXT: jo [[LABEL]]
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  %res = call i8 *@strcpy(i8 *%dest, i8 *%src)
-  ret i8 *%res
+  %res = call ptr at strcpy(ptr %dest, ptr %src)
+  ret ptr %res
 }
 
 ; Check stpcpy.
-define i8 *@f2(i8 *%dest, i8 *%src) {
+define ptr at f2(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lhi %r0, 0
 ; CHECK: [[LABEL:\.[^:]*]]:
@@ -28,13 +28,13 @@ define i8 *@f2(i8 *%dest, i8 *%src) {
 ; CHECK-NEXT: jo [[LABEL]]
 ; CHECK-NOT: %r2
 ; CHECK: br %r14
-  %res = call i8 *@stpcpy(i8 *%dest, i8 *%src)
-  ret i8 *%res
+  %res = call ptr at stpcpy(ptr %dest, ptr %src)
+  ret ptr %res
 }
 
 ; Check correct operation with other loads and stores.  The load must
 ; come before the loop and the store afterwards.
-define i32 @f3(i32 %dummy, i8 *%dest, i8 *%src, i32 *%resptr, i32 *%storeptr) {
+define i32 @f3(i32 %dummy, ptr %dest, ptr %src, ptr %resptr, ptr %storeptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: lhi %r0, 0
 ; CHECK-DAG: l %r2, 0(%r5)
@@ -43,8 +43,8 @@ define i32 @f3(i32 %dummy, i8 *%dest, i8 *%src, i32 *%resptr, i32 *%storeptr) {
 ; CHECK-NEXT: jo [[LABEL]]
 ; CHECK: mvhi 0(%r6), 0
 ; CHECK: br %r14
-  %res = load i32, i32 *%resptr
-  %unused = call i8 *@strcpy(i8 *%dest, i8 *%src)
-  store i32 0, i32 *%storeptr
+  %res = load i32, ptr %resptr
+  %unused = call ptr at strcpy(ptr %dest, ptr %src)
+  store i32 0, ptr %storeptr
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/strcpy-nobuiltin.ll b/llvm/test/CodeGen/SystemZ/strcpy-nobuiltin.ll
index 5c81863c68f63..3c1bc0b25c7ef 100644
--- a/llvm/test/CodeGen/SystemZ/strcpy-nobuiltin.ll
+++ b/llvm/test/CodeGen/SystemZ/strcpy-nobuiltin.ll
@@ -3,40 +3,40 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i8 *@strcpy(i8 *%dest, i8 *%src)
-declare i8 *@stpcpy(i8 *%dest, i8 *%src)
+declare ptr at strcpy(ptr %dest, ptr %src)
+declare ptr at stpcpy(ptr %dest, ptr %src)
 
 ; Check strcpy.
-define i8 *@f1(i8 *%dest, i8 *%src) {
+define ptr at f1(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: mvst
 ; CHECK: brasl %r14, strcpy
 ; CHECK: br %r14
-  %res = call i8 *@strcpy(i8 *%dest, i8 *%src) nobuiltin
-  ret i8 *%res
+  %res = call ptr at strcpy(ptr %dest, ptr %src) nobuiltin
+  ret ptr %res
 }
 
 ; Check stpcpy.
-define i8 *@f2(i8 *%dest, i8 *%src) {
+define ptr at f2(ptr %dest, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: mvst
 ; CHECK: brasl %r14, stpcpy
 ; CHECK: br %r14
-  %res = call i8 *@stpcpy(i8 *%dest, i8 *%src) nobuiltin
-  ret i8 *%res
+  %res = call ptr at stpcpy(ptr %dest, ptr %src) nobuiltin
+  ret ptr %res
 }
 
 ; Check correct operation with other loads and stores.  The load must
 ; come before the loop and the store afterwards.
-define i32 @f3(i32 %dummy, i8 *%dest, i8 *%src, i32 *%resptr, i32 *%storeptr) {
+define i32 @f3(i32 %dummy, ptr %dest, ptr %src, ptr %resptr, ptr %storeptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-DAG: l [[REG1:%r[0-9]+]], 0(%r5)
 ; CHECK-NOT: mvst
 ; CHECK: brasl %r14, strcpy
 ; CHECK: mvhi 0(%r6), 0
 ; CHECK: br %r14
-  %res = load i32, i32 *%resptr
-  %unused = call i8 *@strcpy(i8 *%dest, i8 *%src) nobuiltin
-  store i32 0, i32 *%storeptr
+  %res = load i32, ptr %resptr
+  %unused = call ptr at strcpy(ptr %dest, ptr %src) nobuiltin
+  store i32 0, ptr %storeptr
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/strlen-01.ll b/llvm/test/CodeGen/SystemZ/strlen-01.ll
index 2fb63425fe01a..8598ff4f6b987 100644
--- a/llvm/test/CodeGen/SystemZ/strlen-01.ll
+++ b/llvm/test/CodeGen/SystemZ/strlen-01.ll
@@ -2,12 +2,12 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i64 @strlen(i8 *%src)
-declare i64 @strnlen(i8 *%src, i64 %len)
+declare i64 @strlen(ptr %src)
+declare i64 @strnlen(ptr %src, i64 %len)
 
 ; Test strlen with its proper i64 prototype.  It would also be valid for
 ; the uses of %r3 and REG after the LGR to be swapped.
-define i64 @f1(i32 %dummy, i8 *%src) {
+define i64 @f1(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK-DAG: lhi %r0, 0
 ; CHECK-DAG: lghi %r2, 0
@@ -18,12 +18,12 @@ define i64 @f1(i32 %dummy, i8 *%src) {
 ; CHECK-NEXT: %bb.{{[0-9]+}}
 ; CHECK-NEXT: sgr %r2, %r3
 ; CHECK: br %r14
-  %res = call i64 @strlen(i8 *%src)
+  %res = call i64 @strlen(ptr %src)
   ret i64 %res
 }
 
 ; Test strnlen with its proper i64 prototype.
-define i64 @f2(i64 %len, i8 *%src) {
+define i64 @f2(i64 %len, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK-DAG: agr %r2, %r3
 ; CHECK-DAG: lhi %r0, 0
@@ -34,6 +34,6 @@ define i64 @f2(i64 %len, i8 *%src) {
 ; CHECK-NEXT: %bb.{{[0-9]+}}
 ; CHECK-NEXT: sgr %r2, %r3
 ; CHECK: br %r14
-  %res = call i64 @strnlen(i8 *%src, i64 %len)
+  %res = call i64 @strnlen(ptr %src, i64 %len)
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/strlen-nobuiltin.ll b/llvm/test/CodeGen/SystemZ/strlen-nobuiltin.ll
index c16e601def35e..9d5531885bfba 100644
--- a/llvm/test/CodeGen/SystemZ/strlen-nobuiltin.ll
+++ b/llvm/test/CodeGen/SystemZ/strlen-nobuiltin.ll
@@ -3,23 +3,23 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
-declare i64 @strlen(i8 *%src)
-declare i64 @strnlen(i8 *%src, i64 %len)
+declare i64 @strlen(ptr %src)
+declare i64 @strnlen(ptr %src, i64 %len)
 
-define i64 @f1(i32 %dummy, i8 *%src) {
+define i64 @f1(i32 %dummy, ptr %src) {
 ; CHECK-LABEL: f1:
 ; CHECK: brasl %r14, strlen
 ; CHECK: br %r14
-  %res = call i64 @strlen(i8 *%src) nobuiltin
+  %res = call i64 @strlen(ptr %src) nobuiltin
   ret i64 %res
 }
 
 ; Likewise for strnlen.
-define i64 @f2(i64 %len, i8 *%src) {
+define i64 @f2(i64 %len, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK-NOT: srst
 ; CHECK: brasl %r14, strnlen
 ; CHECK: br %r14
-  %res = call i64 @strnlen(i8 *%src, i64 %len) nobuiltin
+  %res = call i64 @strnlen(ptr %src, i64 %len) nobuiltin
   ret i64 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/subregliveness-01.ll b/llvm/test/CodeGen/SystemZ/subregliveness-01.ll
index 7e76469207d02..76785b22b1bf4 100644
--- a/llvm/test/CodeGen/SystemZ/subregliveness-01.ll
+++ b/llvm/test/CodeGen/SystemZ/subregliveness-01.ll
@@ -13,14 +13,14 @@ target triple = "s390x-ibm-linux"
 ; Function Attrs: nounwind
 define void @main() #0 {
 bb:
-  %tmp = load i48, i48* bitcast ({ i8, i8, i8, i8, i8, i8 }* @g_399 to i48*), align 8, !noalias !1
+  %tmp = load i48, ptr @g_399, align 8, !noalias !1
   %tmp1 = ashr i48 %tmp, 17
   %tmp2 = trunc i48 %tmp1 to i32
   %tmp3 = sext i32 %tmp2 to i64
   br label %bb4
 
 bb4:                                              ; preds = %bb4, %bb
-  %tmp5 = load i64, i64* undef, align 8, !tbaa !4, !noalias !1
+  %tmp5 = load i64, ptr undef, align 8, !tbaa !4, !noalias !1
   %tmp6 = urem i64 -923186811629238421, %tmp3
   %tmp7 = or i64 %tmp6, %tmp5
   %tmp8 = trunc i64 %tmp7 to i32
@@ -29,7 +29,7 @@ bb4:                                              ; preds = %bb4, %bb
   %tmp11 = xor i32 %tmp10, -1592309976
   %tmp12 = or i32 0, %tmp11
   %tmp13 = or i32 %tmp12, 3
-  store i32 %tmp13, i32* @g_439, align 4, !tbaa !8, !noalias !1
+  store i32 %tmp13, ptr @g_439, align 4, !tbaa !8, !noalias !1
   br label %bb4
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/subregliveness-02.ll b/llvm/test/CodeGen/SystemZ/subregliveness-02.ll
index 778b3b7036c3d..1cc0529b94360 100644
--- a/llvm/test/CodeGen/SystemZ/subregliveness-02.ll
+++ b/llvm/test/CodeGen/SystemZ/subregliveness-02.ll
@@ -15,7 +15,7 @@ bb:
   %tmp3 = fmul double %tmp2, 2.560000e+02
   %tmp4 = fptosi double %tmp3 to i32
   %tmp5 = trunc i32 %tmp4 to i8
-  store i8 %tmp5, i8* undef, align 1
+  store i8 %tmp5, ptr undef, align 1
   unreachable
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/subregliveness-03.ll b/llvm/test/CodeGen/SystemZ/subregliveness-03.ll
index 5987bc398bf9b..a8debd8f6470a 100644
--- a/llvm/test/CodeGen/SystemZ/subregliveness-03.ll
+++ b/llvm/test/CodeGen/SystemZ/subregliveness-03.ll
@@ -6,9 +6,9 @@
 target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
 target triple = "s390x-ibm-linux"
 
-%0 = type { i8*, i32, i32 }
+%0 = type { ptr, i32, i32 }
 
-declare i8* @Perl_sv_grow(%0*, i64) #0
+declare ptr @Perl_sv_grow(ptr, i64) #0
 
 ; Function Attrs: nounwind
 define signext i32 @Perl_yylex() #1 {
@@ -16,35 +16,35 @@ bb:
   br label %bb1
 
 bb1:                                              ; preds = %bb3, %bb
-  %tmp = phi i8* [ %tmp8, %bb3 ], [ undef, %bb ]
+  %tmp = phi ptr [ %tmp8, %bb3 ], [ undef, %bb ]
   %tmp2 = icmp eq i8 undef, 0
   br i1 %tmp2, label %bb9, label %bb3
 
 bb3:                                              ; preds = %bb1
-  %tmp4 = ptrtoint i8* %tmp to i64
+  %tmp4 = ptrtoint ptr %tmp to i64
   %tmp5 = sub i64 %tmp4, 0
   %tmp6 = shl i64 %tmp5, 32
   %tmp7 = ashr exact i64 %tmp6, 32
-  %tmp8 = getelementptr inbounds i8, i8* null, i64 %tmp7
+  %tmp8 = getelementptr inbounds i8, ptr null, i64 %tmp7
   br label %bb1
 
 bb9:                                              ; preds = %bb1
   br i1 undef, label %bb10, label %bb15
 
 bb10:                                             ; preds = %bb9
-  %tmp11 = ptrtoint i8* %tmp to i64
+  %tmp11 = ptrtoint ptr %tmp to i64
   %tmp12 = sub i64 %tmp11, 0
-  %tmp13 = call i8* @Perl_sv_grow(%0* nonnull undef, i64 undef) #2
-  %tmp14 = getelementptr inbounds i8, i8* %tmp13, i64 %tmp12
+  %tmp13 = call ptr @Perl_sv_grow(ptr nonnull undef, i64 undef) #2
+  %tmp14 = getelementptr inbounds i8, ptr %tmp13, i64 %tmp12
   br label %bb15
 
 bb15:                                             ; preds = %bb10, %bb9
-  %tmp16 = phi i8* [ %tmp14, %bb10 ], [ %tmp, %bb9 ]
-  %tmp17 = call i8* @Perl_uvuni_to_utf8(i8* %tmp16, i64 undef) #2
+  %tmp16 = phi ptr [ %tmp14, %bb10 ], [ %tmp, %bb9 ]
+  %tmp17 = call ptr @Perl_uvuni_to_utf8(ptr %tmp16, i64 undef) #2
   unreachable
 }
 
-declare i8* @Perl_uvuni_to_utf8(i8*, i64) #0
+declare ptr @Perl_uvuni_to_utf8(ptr, i64) #0
 
 attributes #0 = { "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="z13" "target-features"="+transactional-execution,+vector" "unsafe-fp-math"="false" "use-soft-float"="false" }
 attributes #1 = { nounwind "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-calls"="false" "less-precise-fpmad"="false" "frame-pointer"="none" "no-infs-fp-math"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="false" "stack-protector-buffer-size"="8" "target-cpu"="z13" "target-features"="+transactional-execution,+vector" "unsafe-fp-math"="false" "use-soft-float"="false" }

diff  --git a/llvm/test/CodeGen/SystemZ/subregliveness-04.ll b/llvm/test/CodeGen/SystemZ/subregliveness-04.ll
index a7011885e1a78..8b23c03311b7c 100644
--- a/llvm/test/CodeGen/SystemZ/subregliveness-04.ll
+++ b/llvm/test/CodeGen/SystemZ/subregliveness-04.ll
@@ -27,7 +27,7 @@ bb5:                                              ; preds = %bb3
   %tmp11 = ashr exact i64 %tmp10, 48
   %tmp12 = and i64 %tmp11, %tmp4
   %tmp13 = trunc i64 %tmp12 to i32
-  store i32 %tmp13, i32* undef, align 4
+  store i32 %tmp13, ptr undef, align 4
   br label %bb15
 
 bb14:                                             ; preds = %bb3

diff  --git a/llvm/test/CodeGen/SystemZ/subregliveness-05.ll b/llvm/test/CodeGen/SystemZ/subregliveness-05.ll
index da1e37d6e740c..c9e934c06e7e7 100644
--- a/llvm/test/CodeGen/SystemZ/subregliveness-05.ll
+++ b/llvm/test/CodeGen/SystemZ/subregliveness-05.ll
@@ -14,7 +14,7 @@ bb:
   br label %bb1
 
 bb1:                                              ; preds = %bb
-  %tmp = load i32, i32* @g_65, align 4
+  %tmp = load i32, ptr @g_65, align 4
   %tmp2 = sext i32 %tmp to i64
   %tmp3 = shl i32 %tmp, 16
   %tmp4 = ashr exact i32 %tmp3, 16

diff  --git a/llvm/test/CodeGen/SystemZ/swift-return.ll b/llvm/test/CodeGen/SystemZ/swift-return.ll
index 4bbdbcffd5271..c818372b76b49 100644
--- a/llvm/test/CodeGen/SystemZ/swift-return.ll
+++ b/llvm/test/CodeGen/SystemZ/swift-return.ll
@@ -20,8 +20,8 @@
 define i16 @test(i32 %key) {
 entry:
   %key.addr = alloca i32, align 4
-  store i32 %key, i32* %key.addr, align 4
-  %0 = load i32, i32* %key.addr, align 4
+  store i32 %key, ptr %key.addr, align 4
+  %0 = load i32, ptr %key.addr, align 4
   %call = call swiftcc { i16, i8 } @gen(i32 %0)
   %v3 = extractvalue { i16, i8 } %call, 0
   %v1 = sext i16 %v3 to i32
@@ -63,8 +63,8 @@ declare swiftcc { i16, i8 } @gen(i32)
 define i32 @test2(i32 %key) #0 {
 entry:
   %key.addr = alloca i32, align 4
-  store i32 %key, i32* %key.addr, align 4
-  %0 = load i32, i32* %key.addr, align 4
+  store i32 %key, ptr %key.addr, align 4
+  %0 = load i32, ptr %key.addr, align 4
   %call = call swiftcc { i32, i32, i32, i32, i32 } @gen2(i32 %0)
 
   %v3 = extractvalue { i32, i32, i32, i32, i32 } %call, 0
@@ -118,8 +118,8 @@ define swiftcc { i32, i32, i32, i32, i32 } @gen2(i32 %key) {
 define i32 @test3(i32 %key) #0 {
 entry:
   %key.addr = alloca i32, align 4
-  store i32 %key, i32* %key.addr, align 4
-  %0 = load i32, i32* %key.addr, align 4
+  store i32 %key, ptr %key.addr, align 4
+  %0 = load i32, ptr %key.addr, align 4
   %call = call swiftcc { i32, i32, i32, i32 } @gen3(i32 %0)
 
   %v3 = extractvalue { i32, i32, i32, i32 } %call, 0
@@ -150,8 +150,8 @@ declare swiftcc { i32, i32, i32, i32 } @gen3(i32 %key)
 define float @test4(float %key) #0 {
 entry:
   %key.addr = alloca float, align 4
-  store float %key, float* %key.addr, align 4
-  %0 = load float, float* %key.addr, align 4
+  store float %key, ptr %key.addr, align 4
+  %0 = load float, ptr %key.addr, align 4
   %call = call swiftcc { float, float, float, float } @gen4(float %0)
 
   %v3 = extractvalue { float, float, float, float } %call, 0
@@ -186,13 +186,13 @@ define void @consume_i1_ret() {
   %v6 = extractvalue { i1, i1, i1, i1 } %call, 2
   %v7 = extractvalue { i1, i1, i1, i1 } %call, 3
   %val = zext i1 %v3 to i32
-  store volatile i32 %val, i32* @var
+  store volatile i32 %val, ptr @var
   %val2 = zext i1 %v5 to i32
-  store volatile i32 %val2, i32* @var
+  store volatile i32 %val2, ptr @var
   %val3 = zext i1 %v6 to i32
-  store volatile i32 %val3, i32* @var
+  store volatile i32 %val3, ptr @var
   %val4 = zext i1 %v7 to i32
-  store i32 %val4, i32* @var
+  store i32 %val4, ptr @var
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/swifterror.ll b/llvm/test/CodeGen/SystemZ/swifterror.ll
index 5a91914719683..3ea29f1d830ec 100644
--- a/llvm/test/CodeGen/SystemZ/swifterror.ll
+++ b/llvm/test/CodeGen/SystemZ/swifterror.ll
@@ -1,13 +1,13 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -disable-block-placement | FileCheck %s
 ; RUN: llc < %s -O0 -mtriple=s390x-linux-gnu -disable-block-placement | FileCheck --check-prefix=CHECK-O0 %s
 
-declare i8* @malloc(i64)
-declare void @free(i8*)
+declare ptr @malloc(i64)
+declare void @free(ptr)
 %swift_error = type {i64, i8}
 
 ; This tests the basic usage of a swifterror parameter. "foo" is the function
 ; that takes a swifterror parameter and "caller" is the caller of "foo".
-define float @foo(%swift_error** swifterror %error_ptr_ref) {
+define float @foo(ptr swifterror %error_ptr_ref) {
 ; CHECK-LABEL: foo:
 ; CHECK: lghi %r2, 16
 ; CHECK: brasl %r14, malloc
@@ -19,16 +19,15 @@ define float @foo(%swift_error** swifterror %error_ptr_ref) {
 ; CHECK-O0: lgr [[T0:%r[0-9]+]], %r2
 ; CHECK-O0: mvi 8(%r2), 1
 entry:
-  %call = call i8* @malloc(i64 16)
-  %call.0 = bitcast i8* %call to %swift_error*
-  store %swift_error* %call.0, %swift_error** %error_ptr_ref
-  %tmp = getelementptr inbounds i8, i8* %call, i64 8
-  store i8 1, i8* %tmp
+  %call = call ptr @malloc(i64 16)
+  store ptr %call, ptr %error_ptr_ref
+  %tmp = getelementptr inbounds i8, ptr %call, i64 8
+  store i8 1, ptr %tmp
   ret float 1.0
 }
 
 ; "caller" calls "foo" that takes a swifterror parameter.
-define float @caller(i8* %error_ref) {
+define float @caller(ptr %error_ref) {
 ; CHECK-LABEL: caller:
 ; Make a copy of error_ref because r2 is getting clobbered
 ; CHECK: lgr %r[[REG1:[0-9]+]], %r2
@@ -46,25 +45,24 @@ define float @caller(i8* %error_ref) {
 ; CHECK-O0: cghi %r9, 0
 ; CHECK-O0: jlh
 entry:
-  %error_ptr_ref = alloca swifterror %swift_error*
-  store %swift_error* null, %swift_error** %error_ptr_ref
-  %call = call float @foo(%swift_error** swifterror %error_ptr_ref)
-  %error_from_foo = load %swift_error*, %swift_error** %error_ptr_ref
-  %had_error_from_foo = icmp ne %swift_error* %error_from_foo, null
-  %tmp = bitcast %swift_error* %error_from_foo to i8*
+  %error_ptr_ref = alloca swifterror ptr
+  store ptr null, ptr %error_ptr_ref
+  %call = call float @foo(ptr swifterror %error_ptr_ref)
+  %error_from_foo = load ptr, ptr %error_ptr_ref
+  %had_error_from_foo = icmp ne ptr %error_from_foo, null
   br i1 %had_error_from_foo, label %handler, label %cont
 cont:
-  %v1 = getelementptr inbounds %swift_error, %swift_error* %error_from_foo, i64 0, i32 1
-  %t = load i8, i8* %v1
-  store i8 %t, i8* %error_ref
+  %v1 = getelementptr inbounds %swift_error, ptr %error_from_foo, i64 0, i32 1
+  %t = load i8, ptr %v1
+  store i8 %t, ptr %error_ref
   br label %handler
 handler:
-  call void @free(i8* %tmp)
+  call void @free(ptr %error_from_foo)
   ret float 1.0
 }
 
 ; "caller2" is the caller of "foo", it calls "foo" inside a loop.
-define float @caller2(i8* %error_ref) {
+define float @caller2(ptr %error_ref) {
 ; CHECK-LABEL: caller2:
 ; Make a copy of error_ref because r2 is getting clobbered
 ; CHECK: lgr %r[[REG1:[0-9]+]], %r2
@@ -84,31 +82,30 @@ define float @caller2(i8* %error_ref) {
 ; CHECK-O0: cghi %r9, 0
 ; CHECK-O0: jlh
 entry:
-  %error_ptr_ref = alloca swifterror %swift_error*
+  %error_ptr_ref = alloca swifterror ptr
   br label %bb_loop
 bb_loop:
-  store %swift_error* null, %swift_error** %error_ptr_ref
-  %call = call float @foo(%swift_error** swifterror %error_ptr_ref)
-  %error_from_foo = load %swift_error*, %swift_error** %error_ptr_ref
-  %had_error_from_foo = icmp ne %swift_error* %error_from_foo, null
-  %tmp = bitcast %swift_error* %error_from_foo to i8*
+  store ptr null, ptr %error_ptr_ref
+  %call = call float @foo(ptr swifterror %error_ptr_ref)
+  %error_from_foo = load ptr, ptr %error_ptr_ref
+  %had_error_from_foo = icmp ne ptr %error_from_foo, null
   br i1 %had_error_from_foo, label %handler, label %cont
 cont:
   %cmp = fcmp ogt float %call, 1.000000e+00
   br i1 %cmp, label %bb_end, label %bb_loop
 bb_end:
-  %v1 = getelementptr inbounds %swift_error, %swift_error* %error_from_foo, i64 0, i32 1
-  %t = load i8, i8* %v1
-  store i8 %t, i8* %error_ref
+  %v1 = getelementptr inbounds %swift_error, ptr %error_from_foo, i64 0, i32 1
+  %t = load i8, ptr %v1
+  store i8 %t, ptr %error_ref
   br label %handler
 handler:
-  call void @free(i8* %tmp)
+  call void @free(ptr %error_from_foo)
   ret float 1.0
 }
 
 ; "foo_if" is a function that takes a swifterror parameter, it sets swifterror
 ; under a certain condition.
-define float @foo_if(%swift_error** swifterror %error_ptr_ref, i32 %cc) {
+define float @foo_if(ptr swifterror %error_ptr_ref, i32 %cc) {
 ; CHECK-LABEL: foo_if:
 ; CHECK: cije %r2, 0
 ; CHECK: lghi %r2, 16
@@ -135,11 +132,10 @@ entry:
   br i1 %cond, label %gen_error, label %normal
 
 gen_error:
-  %call = call i8* @malloc(i64 16)
-  %call.0 = bitcast i8* %call to %swift_error*
-  store %swift_error* %call.0, %swift_error** %error_ptr_ref
-  %tmp = getelementptr inbounds i8, i8* %call, i64 8
-  store i8 1, i8* %tmp
+  %call = call ptr @malloc(i64 16)
+  store ptr %call, ptr %error_ptr_ref
+  %tmp = getelementptr inbounds i8, ptr %call, i64 8
+  store i8 1, ptr %tmp
   ret float 1.0
 
 normal:
@@ -148,7 +144,7 @@ normal:
 
 ; "foo_loop" is a function that takes a swifterror parameter, it sets swifterror
 ; under a certain condition inside a loop.
-define float @foo_loop(%swift_error** swifterror %error_ptr_ref, i32 %cc, float %cc2) {
+define float @foo_loop(ptr swifterror %error_ptr_ref, i32 %cc, float %cc2) {
 ; CHECK-LABEL: foo_loop:
 ; CHECK: lr %r[[REG1:[0-9]+]], %r2
 ; CHECK: cije %r[[REG1]], 0
@@ -180,11 +176,10 @@ bb_loop:
   br i1 %cond, label %gen_error, label %bb_cont
 
 gen_error:
-  %call = call i8* @malloc(i64 16)
-  %call.0 = bitcast i8* %call to %swift_error*
-  store %swift_error* %call.0, %swift_error** %error_ptr_ref
-  %tmp = getelementptr inbounds i8, i8* %call, i64 8
-  store i8 1, i8* %tmp
+  %call = call ptr @malloc(i64 16)
+  store ptr %call, ptr %error_ptr_ref
+  %tmp = getelementptr inbounds i8, ptr %call, i64 8
+  store i8 1, ptr %tmp
   br label %bb_cont
 
 bb_cont:
@@ -198,7 +193,7 @@ bb_end:
 
 ; "foo_sret" is a function that takes a swifterror parameter, it also has a sret
 ; parameter.
-define void @foo_sret(%struct.S* sret(%struct.S) %agg.result, i32 %val1, %swift_error** swifterror %error_ptr_ref) {
+define void @foo_sret(ptr sret(%struct.S) %agg.result, i32 %val1, ptr swifterror %error_ptr_ref) {
 ; CHECK-LABEL: foo_sret:
 ; CHECK-DAG: lgr %r[[REG1:[0-9]+]], %r2
 ; CHECK-DAG: lr %r[[REG2:[0-9]+]], %r3
@@ -224,18 +219,17 @@ define void @foo_sret(%struct.S* sret(%struct.S) %agg.result, i32 %val1, %swift_
 ; CHECK-O0: st %r[[REG2]], 4(%r[[REG1]])
 ; CHECK-O0: br %r14
 entry:
-  %call = call i8* @malloc(i64 16)
-  %call.0 = bitcast i8* %call to %swift_error*
-  store %swift_error* %call.0, %swift_error** %error_ptr_ref
-  %tmp = getelementptr inbounds i8, i8* %call, i64 8
-  store i8 1, i8* %tmp
-  %v2 = getelementptr inbounds %struct.S, %struct.S* %agg.result, i32 0, i32 1
-  store i32 %val1, i32* %v2
+  %call = call ptr @malloc(i64 16)
+  store ptr %call, ptr %error_ptr_ref
+  %tmp = getelementptr inbounds i8, ptr %call, i64 8
+  store i8 1, ptr %tmp
+  %v2 = getelementptr inbounds %struct.S, ptr %agg.result, i32 0, i32 1
+  store i32 %val1, ptr %v2
   ret void
 }
 
 ; "caller3" calls "foo_sret" that takes a swifterror parameter.
-define float @caller3(i8* %error_ref) {
+define float @caller3(ptr %error_ref) {
 ; CHECK-LABEL: caller3:
 ; Make a copy of error_ref because r2 is getting clobbered
 ; CHECK: lgr %r[[REG1:[0-9]+]], %r2
@@ -263,26 +257,25 @@ define float @caller3(i8* %error_ref) {
 ; CHECK-O0: brasl %r14, free
 entry:
   %s = alloca %struct.S, align 8
-  %error_ptr_ref = alloca swifterror %swift_error*
-  store %swift_error* null, %swift_error** %error_ptr_ref
-  call void @foo_sret(%struct.S* sret(%struct.S) %s, i32 1, %swift_error** swifterror %error_ptr_ref)
-  %error_from_foo = load %swift_error*, %swift_error** %error_ptr_ref
-  %had_error_from_foo = icmp ne %swift_error* %error_from_foo, null
-  %tmp = bitcast %swift_error* %error_from_foo to i8*
+  %error_ptr_ref = alloca swifterror ptr
+  store ptr null, ptr %error_ptr_ref
+  call void @foo_sret(ptr sret(%struct.S) %s, i32 1, ptr swifterror %error_ptr_ref)
+  %error_from_foo = load ptr, ptr %error_ptr_ref
+  %had_error_from_foo = icmp ne ptr %error_from_foo, null
   br i1 %had_error_from_foo, label %handler, label %cont
 cont:
-  %v1 = getelementptr inbounds %swift_error, %swift_error* %error_from_foo, i64 0, i32 1
-  %t = load i8, i8* %v1
-  store i8 %t, i8* %error_ref
+  %v1 = getelementptr inbounds %swift_error, ptr %error_from_foo, i64 0, i32 1
+  %t = load i8, ptr %v1
+  store i8 %t, ptr %error_ref
   br label %handler
 handler:
-  call void @free(i8* %tmp)
+  call void @free(ptr %error_from_foo)
   ret float 1.0
 }
 
 ; This is a caller with multiple swifterror values, it calls "foo" twice, each
 ; time with a 
diff erent swifterror value, from "alloca swifterror".
-define float @caller_with_multiple_swifterror_values(i8* %error_ref, i8* %error_ref2) {
+define float @caller_with_multiple_swifterror_values(ptr %error_ref, ptr %error_ref2) {
 ; CHECK-LABEL: caller_with_multiple_swifterror_values:
 ; CHECK-DAG: lgr %r[[REG1:[0-9]+]], %r2
 ; CHECK-DAG: lgr %r[[REG2:[0-9]+]], %r3
@@ -318,35 +311,33 @@ define float @caller_with_multiple_swifterror_values(i8* %error_ref, i8* %error_
 ; CHECK-O0: brasl %r14, foo
 ; CHECK-O0: jlh
 entry:
-  %error_ptr_ref = alloca swifterror %swift_error*
-  store %swift_error* null, %swift_error** %error_ptr_ref
-  %call = call float @foo(%swift_error** swifterror %error_ptr_ref)
-  %error_from_foo = load %swift_error*, %swift_error** %error_ptr_ref
-  %had_error_from_foo = icmp ne %swift_error* %error_from_foo, null
-  %tmp = bitcast %swift_error* %error_from_foo to i8*
+  %error_ptr_ref = alloca swifterror ptr
+  store ptr null, ptr %error_ptr_ref
+  %call = call float @foo(ptr swifterror %error_ptr_ref)
+  %error_from_foo = load ptr, ptr %error_ptr_ref
+  %had_error_from_foo = icmp ne ptr %error_from_foo, null
   br i1 %had_error_from_foo, label %handler, label %cont
 cont:
-  %v1 = getelementptr inbounds %swift_error, %swift_error* %error_from_foo, i64 0, i32 1
-  %t = load i8, i8* %v1
-  store i8 %t, i8* %error_ref
+  %v1 = getelementptr inbounds %swift_error, ptr %error_from_foo, i64 0, i32 1
+  %t = load i8, ptr %v1
+  store i8 %t, ptr %error_ref
   br label %handler
 handler:
-  call void @free(i8* %tmp)
+  call void @free(ptr %error_from_foo)
 
-  %error_ptr_ref2 = alloca swifterror %swift_error*
-  store %swift_error* null, %swift_error** %error_ptr_ref2
-  %call2 = call float @foo(%swift_error** swifterror %error_ptr_ref2)
-  %error_from_foo2 = load %swift_error*, %swift_error** %error_ptr_ref2
-  %had_error_from_foo2 = icmp ne %swift_error* %error_from_foo2, null
-  %bitcast2 = bitcast %swift_error* %error_from_foo2 to i8*
+  %error_ptr_ref2 = alloca swifterror ptr
+  store ptr null, ptr %error_ptr_ref2
+  %call2 = call float @foo(ptr swifterror %error_ptr_ref2)
+  %error_from_foo2 = load ptr, ptr %error_ptr_ref2
+  %had_error_from_foo2 = icmp ne ptr %error_from_foo2, null
   br i1 %had_error_from_foo2, label %handler2, label %cont2
 cont2:
-  %v2 = getelementptr inbounds %swift_error, %swift_error* %error_from_foo2, i64 0, i32 1
-  %t2 = load i8, i8* %v2
-  store i8 %t2, i8* %error_ref2
+  %v2 = getelementptr inbounds %swift_error, ptr %error_from_foo2, i64 0, i32 1
+  %t2 = load i8, ptr %v2
+  store i8 %t2, ptr %error_ref2
   br label %handler2
 handler2:
-  call void @free(i8* %bitcast2)
+  call void @free(ptr %error_from_foo2)
 
   ret float 1.0
 }

diff  --git a/llvm/test/CodeGen/SystemZ/swiftself.ll b/llvm/test/CodeGen/SystemZ/swiftself.ll
index ee6104ad20398..40ba2642b013c 100644
--- a/llvm/test/CodeGen/SystemZ/swiftself.ll
+++ b/llvm/test/CodeGen/SystemZ/swiftself.ll
@@ -3,17 +3,17 @@
 ; Parameter with swiftself should be allocated to r10.
 ; CHECK-LABEL: swiftself_param:
 ; CHECK: lgr %r2, %r10
-define i8 *@swiftself_param(i8* swiftself %addr0) {
-  ret i8 *%addr0
+define ptr at swiftself_param(ptr swiftself %addr0) {
+  ret ptr %addr0
 }
 
 ; Check that r10 is used to pass a swiftself argument.
 ; CHECK-LABEL: call_swiftself:
 ; CHECK: lgr %r10, %r2
 ; CHECK: brasl %r14, swiftself_param
-define i8 *@call_swiftself(i8* %arg) {
-  %res = call i8 *@swiftself_param(i8* swiftself %arg)
-  ret i8 *%res
+define ptr at call_swiftself(ptr %arg) {
+  %res = call ptr at swiftself_param(ptr swiftself %arg)
+  ret ptr %res
 }
 
 ; r10 should be saved by the callee even if used for swiftself
@@ -22,9 +22,9 @@ define i8 *@call_swiftself(i8* %arg) {
 ; ...
 ; CHECK: lmg %r10,
 ; CHECK: br %r14
-define i8 *@swiftself_clobber(i8* swiftself %addr0) {
+define ptr at swiftself_clobber(ptr swiftself %addr0) {
   call void asm sideeffect "", "~{r10}"()
-  ret i8 *%addr0
+  ret ptr %addr0
 }
 
 ; Demonstrate that we do not need any loads when calling multiple functions
@@ -34,9 +34,9 @@ define i8 *@swiftself_clobber(i8* swiftself %addr0) {
 ; CHECK: brasl %r14, swiftself_param
 ; CHECK-NOT: lg{{.*}}r10,
 ; CHECK-NEXT: brasl %r14, swiftself_param
-define void @swiftself_passthrough(i8* swiftself %addr0) {
-  call i8 *@swiftself_param(i8* swiftself %addr0)
-  call i8 *@swiftself_param(i8* swiftself %addr0)
+define void @swiftself_passthrough(ptr swiftself %addr0) {
+  call ptr at swiftself_param(ptr swiftself %addr0)
+  call ptr at swiftself_param(ptr swiftself %addr0)
   ret void
 }
 
@@ -47,10 +47,10 @@ define void @swiftself_passthrough(i8* swiftself %addr0) {
 ; CHECK: lgr %r10, %r[[REG1]]
 ; CHECK: brasl %r14, swiftself_param
 ; CHECK: br %r14
-define i8* @swiftself_tail(i8* swiftself %addr0) {
+define ptr @swiftself_tail(ptr swiftself %addr0) {
   call void asm sideeffect "", "~{r10}"()
-  %res = tail call i8* @swiftself_param(i8* swiftself %addr0)
-  ret i8* %res
+  %res = tail call ptr @swiftself_param(ptr swiftself %addr0)
+  ret ptr %res
 }
 
 ; We can not use a tail call if the callee swiftself is not the same as the
@@ -60,7 +60,7 @@ define i8* @swiftself_tail(i8* swiftself %addr0) {
 ; CHECK: brasl %r14, swiftself_param
 ; CHECK: lmg %r10,
 ; CHECK: br %r14
-define i8* @swiftself_notail(i8* swiftself %addr0, i8* %addr1) nounwind {
-  %res = tail call i8* @swiftself_param(i8* swiftself %addr1)
-  ret i8* %res
+define ptr @swiftself_notail(ptr swiftself %addr0, ptr %addr1) nounwind {
+  %res = tail call ptr @swiftself_param(ptr swiftself %addr1)
+  ret ptr %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll b/llvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll
index 6b3c979651c4c..f7f8cfc871d71 100644
--- a/llvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll
+++ b/llvm/test/CodeGen/SystemZ/tail-call-mem-intrinsics.ll
@@ -2,22 +2,22 @@
 
 ; CHECK-LABEL: tail_memmove:
 ; CHECK: jg memmove
-define void @tail_memmove(i8* nocapture %p, i8* nocapture readonly %q, i32 %n) #0 {
+define void @tail_memmove(ptr nocapture %p, ptr nocapture readonly %q, i32 %n) #0 {
 entry:
-  tail call void @llvm.memmove.p0i8.p0i8.i32(i8* %p, i8* %q, i32 %n, i1 false)
+  tail call void @llvm.memmove.p0.p0.i32(ptr %p, ptr %q, i32 %n, i1 false)
   ret void
 }
 
 ; CHECK-LABEL: tail_memset:
 ; CHECK: jg memset
-define void @tail_memset(i8* nocapture %p, i8 %c, i32 %n) #0 {
+define void @tail_memset(ptr nocapture %p, i8 %c, i32 %n) #0 {
 entry:
-  tail call void @llvm.memset.p0i8.i32(i8* %p, i8 %c, i32 %n, i1 true)
+  tail call void @llvm.memset.p0.i32(ptr %p, i8 %c, i32 %n, i1 true)
   ret void
 }
 
-declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i1) #0
-declare void @llvm.memmove.p0i8.p0i8.i32(i8* nocapture, i8* nocapture readonly, i32, i1) #0
-declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i1) #0
+declare void @llvm.memcpy.p0.p0.i32(ptr nocapture, ptr nocapture readonly, i32, i1) #0
+declare void @llvm.memmove.p0.p0.i32(ptr nocapture, ptr nocapture readonly, i32, i1) #0
+declare void @llvm.memset.p0.i32(ptr nocapture, i8, i32, i1) #0
 
 attributes #0 = { nounwind }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-01.ll b/llvm/test/CodeGen/SystemZ/tls-01.ll
index cff676bd0a79f..195a6b559632e 100644
--- a/llvm/test/CodeGen/SystemZ/tls-01.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-01.ll
@@ -7,7 +7,7 @@
 
 ; The offset must be loaded from the constant pool.  It doesn't really
 ; matter whether we use LARL/AG or LGRL/AGR for the last part.
-define dso_local i32 *@foo() {
+define dso_local ptr at foo() {
 ; CHECK-CP: .LCP{{.*}}:
 ; CHECK-CP: .quad x at NTPOFF
 ;
@@ -18,5 +18,5 @@ define dso_local i32 *@foo() {
 ; CHECK-MAIN-DAG: larl %r1, .LCP{{.*}}
 ; CHECK-MAIN: ag %r2, 0(%r1)
 ; CHECK-MAIN: br %r14
-  ret i32 *@x
+  ret ptr at x
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-02.ll b/llvm/test/CodeGen/SystemZ/tls-02.ll
index 12d52a4d741ff..475af621e3b89 100644
--- a/llvm/test/CodeGen/SystemZ/tls-02.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-02.ll
@@ -6,7 +6,7 @@
 
 ; The offset must be loaded from the GOT.  This TLS access model does
 ; not use literal pool constants.
-define i32 *@foo() {
+define ptr at foo() {
 ; CHECK-MAIN-LABEL: foo:
 ; CHECK-MAIN: ear [[HIGH:%r[0-5]]], %a0
 ; CHECK-MAIN: sllg %r2, [[HIGH]], 32
@@ -14,5 +14,5 @@ define i32 *@foo() {
 ; CHECK-MAIN-DAG: larl %r1, x at INDNTPOFF
 ; CHECK-MAIN: ag %r2, 0(%r1)
 ; CHECK-MAIN: br %r14
-  ret i32 *@x
+  ret ptr at x
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-03.ll b/llvm/test/CodeGen/SystemZ/tls-03.ll
index c9f7bd632904c..c82939f79bf52 100644
--- a/llvm/test/CodeGen/SystemZ/tls-03.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-03.ll
@@ -6,7 +6,7 @@
 @x = thread_local global i32 0
 
 ; Call __tls_get_offset to retrieve the symbol's TLS offset.
-define i32 *@foo() {
+define ptr at foo() {
 ; CHECK-CP: .LCP{{.*}}:
 ; CHECK-CP: .quad x at TLSGD
 ;
@@ -19,5 +19,5 @@ define i32 *@foo() {
 ; CHECK-MAIN: ear [[TP]], %a1
 ; CHECK-MAIN: agr %r2, [[TP]]
 ; CHECK-MAIN: br %r14
-  ret i32 *@x
+  ret ptr at x
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-04.ll b/llvm/test/CodeGen/SystemZ/tls-04.ll
index dcb210a712729..f53f9dec77de0 100644
--- a/llvm/test/CodeGen/SystemZ/tls-04.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-04.ll
@@ -7,7 +7,7 @@
 
 ; Call __tls_get_offset to retrieve the module's TLS base offset.
 ; Add the per-symbol offset and the thread pointer.
-define i32 *@foo() {
+define ptr at foo() {
 ; CHECK-CP: .LCP{{.*}}_0:
 ; CHECK-CP: .quad x at TLSLDM
 ; CHECK-CP: .LCP{{.*}}_1:
@@ -24,5 +24,5 @@ define i32 *@foo() {
 ; CHECK-MAIN: ear [[TP]], %a1
 ; CHECK-MAIN: agr %r2, [[TP]]
 ; CHECK-MAIN: br %r14
-  ret i32 *@x
+  ret ptr at x
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-05.ll b/llvm/test/CodeGen/SystemZ/tls-05.ll
index 502d6d45852c8..af0ca70240172 100644
--- a/llvm/test/CodeGen/SystemZ/tls-05.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-05.ll
@@ -8,8 +8,8 @@
 @x = thread_local global i32 0
 
 define i32 @foo() {
-  %val = load i32, i32* @x
+  %val = load i32, ptr @x
   %inc = add nsw i32 %val, 1
-  store i32 %inc, i32* @x
+  store i32 %inc, ptr @x
   ret i32 %val
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-06.ll b/llvm/test/CodeGen/SystemZ/tls-06.ll
index 8f1796df72913..a9fb2869c1369 100644
--- a/llvm/test/CodeGen/SystemZ/tls-06.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-06.ll
@@ -10,8 +10,8 @@
 @y = thread_local global i32 0
 
 define i32 @foo() {
-  %valx = load i32, i32* @x
-  %valy = load i32, i32* @y
+  %valx = load i32, ptr @x
+  %valy = load i32, ptr @y
   %add = add nsw i32 %valx, %valy
   ret i32 %add
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-07.ll b/llvm/test/CodeGen/SystemZ/tls-07.ll
index be66c093bd42e..6768c33922bb1 100644
--- a/llvm/test/CodeGen/SystemZ/tls-07.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-07.ll
@@ -9,8 +9,8 @@
 @y = thread_local(localdynamic) global i32 0
 
 define i32 @foo() {
-  %valx = load i32, i32* @x
-  %valy = load i32, i32* @y
+  %valx = load i32, ptr @x
+  %valy = load i32, ptr @y
   %add = add nsw i32 %valx, %valy
   ret i32 %add
 }

diff  --git a/llvm/test/CodeGen/SystemZ/tls-08.ll b/llvm/test/CodeGen/SystemZ/tls-08.ll
index 57dd552740f20..e53cbd3956eab 100644
--- a/llvm/test/CodeGen/SystemZ/tls-08.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-08.ll
@@ -7,11 +7,11 @@
 ; GR32 regs.
 
 @x = dso_local thread_local global i32 0, align 4
-define weak_odr hidden i32* @fun0() {
+define weak_odr hidden ptr @fun0() {
 ; CHECK: name: fun0
 ; CHECK: {{%[0-9]+}}:gr32bit = EAR $a0
 ; CHECK: {{%[0-9]+}}:gr32bit = EAR $a1
-  ret i32* @x
+  ret ptr @x
 }
 
 define i32 @fun1() {

diff  --git a/llvm/test/CodeGen/SystemZ/tls-09.ll b/llvm/test/CodeGen/SystemZ/tls-09.ll
index 4512206c275c9..10dd1494aa82d 100644
--- a/llvm/test/CodeGen/SystemZ/tls-09.ll
+++ b/llvm/test/CodeGen/SystemZ/tls-09.ll
@@ -11,27 +11,27 @@ define i32 @fun0(i32 signext, i32 signext, i32 signext, i32 signext, i32 signext
   %12 = alloca i32, align 4
   %13 = alloca i32, align 4
   %14 = alloca i32, align 4
-  %15 = load i32, i32* @x, align 4
-  store i32 %0, i32* %8, align 4
-  store i32 %1, i32* %9, align 4
-  store i32 %2, i32* %10, align 4
-  store i32 %3, i32* %11, align 4
-  store i32 %4, i32* %12, align 4
-  store i32 %5, i32* %13, align 4
-  store i32 %6, i32* %14, align 4
-  %16 = load i32, i32* %8, align 4
+  %15 = load i32, ptr @x, align 4
+  store i32 %0, ptr %8, align 4
+  store i32 %1, ptr %9, align 4
+  store i32 %2, ptr %10, align 4
+  store i32 %3, ptr %11, align 4
+  store i32 %4, ptr %12, align 4
+  store i32 %5, ptr %13, align 4
+  store i32 %6, ptr %14, align 4
+  %16 = load i32, ptr %8, align 4
   %17 = add nsw i32 %15, %16
-  %18 = load i32, i32* %9, align 4
+  %18 = load i32, ptr %9, align 4
   %19 = add nsw i32 %17, %18
-  %20 = load i32, i32* %10, align 4
+  %20 = load i32, ptr %10, align 4
   %21 = add nsw i32 %19, %20
-  %22 = load i32, i32* %11, align 4
+  %22 = load i32, ptr %11, align 4
   %23 = add nsw i32 %21, %22
-  %24 = load i32, i32* %12, align 4
+  %24 = load i32, ptr %12, align 4
   %25 = add nsw i32 %23, %24
-  %26 = load i32, i32* %13, align 4
+  %26 = load i32, ptr %13, align 4
   %27 = add nsw i32 %25, %26
-  %28 = load i32, i32* %14, align 4
+  %28 = load i32, ptr %14, align 4
   %29 = add nsw i32 %27, %28
   ret i32 %29
 }

diff  --git a/llvm/test/CodeGen/SystemZ/trap-02.ll b/llvm/test/CodeGen/SystemZ/trap-02.ll
index fed419f373ec8..de00e14f62167 100644
--- a/llvm/test/CodeGen/SystemZ/trap-02.ll
+++ b/llvm/test/CodeGen/SystemZ/trap-02.ll
@@ -5,13 +5,13 @@
 declare void @llvm.trap()
 
 ; Check conditional compare logical and trap
-define i32 @f1(i32 zeroext %a, i32 *%ptr) {
+define i32 @f1(i32 zeroext %a, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: clth %r2, 0(%r3)
 ; CHECK: lhi %r2, 0
 ; CHECK: br %r14
 entry:
-  %b = load i32, i32 *%ptr
+  %b = load i32, ptr %ptr
   %cmp = icmp ugt i32 %a, %b
   br i1 %cmp, label %if.then, label %if.end
 
@@ -24,13 +24,13 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check conditional compare logical grande and trap
-define i64 @f2(i64 zeroext %a, i64 *%ptr) {
+define i64 @f2(i64 zeroext %a, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: clgtl %r2, 0(%r3)
 ; CHECK: lghi %r2, 0
 ; CHECK: br %r14
 entry:
-  %b = load i64, i64 *%ptr
+  %b = load i64, ptr %ptr
   %cmp = icmp ult i64 %a, %b
   br i1 %cmp, label %if.then, label %if.end
 
@@ -44,7 +44,7 @@ if.end:                                           ; preds = %entry
 
 ; Verify that we don't attempt to use the compare and trap
 ; instruction with an index operand.
-define i32 @f3(i32 zeroext %a, i32 *%base, i64 %offset) {
+define i32 @f3(i32 zeroext %a, ptr %base, i64 %offset) {
 ; CHECK-LABEL: f3:
 ; CHECK: cl %r2, 0(%r{{[0-5]}},%r3)
 ; CHECK: lhi %r2, 0
@@ -52,8 +52,8 @@ define i32 @f3(i32 zeroext %a, i32 *%base, i64 %offset) {
 ; CHECK: jh .Ltmp0+2
 ; CHECK: br %r14
 entry:
-  %ptr = getelementptr i32, i32 *%base, i64 %offset
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 %offset
+  %b = load i32, ptr %ptr
   %cmp = icmp ugt i32 %a, %b
   br i1 %cmp, label %if.then, label %if.end
 
@@ -67,7 +67,7 @@ if.end:                                           ; preds = %entry
 
 ; Verify that we don't attempt to use the compare and trap grande
 ; instruction with an index operand.
-define i64 @f4(i64 %a, i64 *%base, i64 %offset) {
+define i64 @f4(i64 %a, ptr %base, i64 %offset) {
 ; CHECK-LABEL: f4:
 ; CHECK: clg %r2, 0(%r{{[0-5]}},%r3)
 ; CHECK: lghi %r2, 0
@@ -75,8 +75,8 @@ define i64 @f4(i64 %a, i64 *%base, i64 %offset) {
 ; CHECK: jh .Ltmp1+2
 ; CHECK: br %r14
 entry:
-  %ptr = getelementptr i64, i64 *%base, i64 %offset
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i64 %offset
+  %b = load i64, ptr %ptr
   %cmp = icmp ugt i64 %a, %b
   br i1 %cmp, label %if.then, label %if.end
 

diff  --git a/llvm/test/CodeGen/SystemZ/trap-03.ll b/llvm/test/CodeGen/SystemZ/trap-03.ll
index d3cc882add752..33f73311741f7 100644
--- a/llvm/test/CodeGen/SystemZ/trap-03.ll
+++ b/llvm/test/CodeGen/SystemZ/trap-03.ll
@@ -5,12 +5,12 @@
 declare void @llvm.trap()
 
 ; Check LAT with no displacement.
-define i32 @f1(i32 *%ptr) {
+define i32 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: lat %r2, 0(%r2)
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -23,12 +23,12 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check the high end of the LAT range.
-define i32 @f2(i32 *%src) {
+define i32 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lat %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -42,13 +42,13 @@ if.end:                                           ; preds = %entry
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f3(i32 *%src) {
+define i32 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lat %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -67,8 +67,8 @@ define i32 @f4(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -81,12 +81,12 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check LGAT with no displacement.
-define i64 @f5(i64 *%ptr) {
+define i64 @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: lgat %r2, 0(%r2)
 ; CHECK: br %r14
 entry:
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %cmp = icmp eq i64 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -99,12 +99,12 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check the high end of the LGAT range.
-define i64 @f6(i64 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: lgat %r2, 524280(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %val = load i64, ptr %ptr
   %cmp = icmp eq i64 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -118,13 +118,13 @@ if.end:                                           ; preds = %entry
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lgat %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %val = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %val = load i64, ptr %ptr
   %cmp = icmp eq i64 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -143,8 +143,8 @@ define i64 @f8(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i64 *
-  %val = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i64, ptr %ptr
   %cmp = icmp eq i64 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 

diff  --git a/llvm/test/CodeGen/SystemZ/trap-04.ll b/llvm/test/CodeGen/SystemZ/trap-04.ll
index 9e7897e6321a9..a45473ca97792 100644
--- a/llvm/test/CodeGen/SystemZ/trap-04.ll
+++ b/llvm/test/CodeGen/SystemZ/trap-04.ll
@@ -5,12 +5,12 @@
 declare void @llvm.trap()
 
 ; Check LLGFAT with no displacement.
-define i64 @f1(i32 *%ptr) {
+define i64 @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: llgfat %r2, 0(%r2)
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %cmp = icmp eq i64 %ext, 0
   br i1 %cmp, label %if.then, label %if.end
@@ -24,12 +24,12 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check the high end of the LLGFAT range.
-define i64 @f2(i32 *%src) {
+define i64 @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: llgfat %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %cmp = icmp eq i64 %ext, 0
   br i1 %cmp, label %if.then, label %if.end
@@ -44,13 +44,13 @@ if.end:                                           ; preds = %entry
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f3(i32 *%src) {
+define i64 @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llgfat %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %cmp = icmp eq i64 %ext, 0
   br i1 %cmp, label %if.then, label %if.end
@@ -70,8 +70,8 @@ define i64 @f4(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %cmp = icmp eq i64 %ext, 0
   br i1 %cmp, label %if.then, label %if.end
@@ -85,12 +85,12 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check LLGTAT with no displacement.
-define i64 @f5(i32 *%ptr) {
+define i64 @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: llgtat %r2, 0(%r2)
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %and = and i64 %ext, 2147483647
   %cmp = icmp eq i64 %and, 0
@@ -105,12 +105,12 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check the high end of the LLGTAT range.
-define i64 @f6(i32 *%src) {
+define i64 @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: llgtat %r2, 524284(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %and = and i64 %ext, 2147483647
   %cmp = icmp eq i64 %and, 0
@@ -126,13 +126,13 @@ if.end:                                           ; preds = %entry
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i32 *%src) {
+define i64 @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r2, 524288
 ; CHECK: llgtat %r2, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %and = and i64 %ext, 2147483647
   %cmp = icmp eq i64 %and, 0
@@ -153,8 +153,8 @@ define i64 @f8(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %ext = zext i32 %val to i64
   %and = and i64 %ext, 2147483647
   %cmp = icmp eq i64 %and, 0

diff  --git a/llvm/test/CodeGen/SystemZ/trap-05.ll b/llvm/test/CodeGen/SystemZ/trap-05.ll
index 7aabedbfadd35..afc8cb5bc12f0 100644
--- a/llvm/test/CodeGen/SystemZ/trap-05.ll
+++ b/llvm/test/CodeGen/SystemZ/trap-05.ll
@@ -7,13 +7,13 @@
 declare void @llvm.trap()
 
 ; Check LAT with no displacement.
-define void @f1(i32 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: lfhat [[REG:%r[0-9]+]], 0(%r2)
 ; CHECK: stepa [[REG]]
 ; CHECK: br %r14
 entry:
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -27,13 +27,13 @@ if.end:                                           ; preds = %entry
 }
 
 ; Check the high end of the LAT range.
-define void @f2(i32 *%src) {
+define void @f2(ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: lfhat [[REG:%r[0-9]+]], 524284(%r2)
 ; CHECK: stepa [[REG]]
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -48,14 +48,14 @@ if.end:                                           ; preds = %entry
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f3(i32 *%src) {
+define void @f3(ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: agfi %r2, 524288
 ; CHECK: lfhat [[REG:%r[0-9]+]], 0(%r2)
 ; CHECK: stepa [[REG]]
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %val = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 
@@ -76,8 +76,8 @@ define void @f4(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524287
-  %ptr = inttoptr i64 %add2 to i32 *
-  %val = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i32, ptr %ptr
   %cmp = icmp eq i32 %val, 0
   br i1 %cmp, label %if.then, label %if.end
 

diff  --git a/llvm/test/CodeGen/SystemZ/unaligned-01.ll b/llvm/test/CodeGen/SystemZ/unaligned-01.ll
index f39ffb6b8b3cf..2d870dfa0f878 100644
--- a/llvm/test/CodeGen/SystemZ/unaligned-01.ll
+++ b/llvm/test/CodeGen/SystemZ/unaligned-01.ll
@@ -4,56 +4,56 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check that these four byte stores become a single word store.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK: f1
 ; CHECK: iilf [[REG:%r[0-5]]], 66051
 ; CHECK: st [[REG]], 0(%r2)
 ; CHECK: br %r14
-  %off1 = getelementptr i8, i8 *%ptr, i64 1
-  %off2 = getelementptr i8, i8 *%ptr, i64 2
-  %off3 = getelementptr i8, i8 *%ptr, i64 3
-  store i8 0, i8 *%ptr
-  store i8 1, i8 *%off1
-  store i8 2, i8 *%off2
-  store i8 3, i8 *%off3
+  %off1 = getelementptr i8, ptr %ptr, i64 1
+  %off2 = getelementptr i8, ptr %ptr, i64 2
+  %off3 = getelementptr i8, ptr %ptr, i64 3
+  store i8 0, ptr %ptr
+  store i8 1, ptr %off1
+  store i8 2, ptr %off2
+  store i8 3, ptr %off3
   ret void
 }
 
 ; Check that unaligned 2-byte accesses are allowed.
-define i16 @f2(i16 *%src, i16 *%dst) {
+define i16 @f2(ptr %src, ptr %dst) {
 ; CHECK-LABEL: f2:
 ; CHECK: lh %r2, 0(%r2)
 ; CHECK: sth %r2, 0(%r3)
 ; CHECK: br %r14
-  %val = load i16, i16 *%src, align 1
-  store i16 %val, i16 *%dst, align 1
+  %val = load i16, ptr %src, align 1
+  store i16 %val, ptr %dst, align 1
   ret i16 %val
 }
 
 ; Check that unaligned 4-byte accesses are allowed.
-define i32 @f3(i32 *%src1, i32 *%src2, i32 *%dst) {
+define i32 @f3(ptr %src1, ptr %src2, ptr %dst) {
 ; CHECK-LABEL: f3:
 ; CHECK: l %r2, 0(%r2)
 ; CHECK: s %r2, 0(%r3)
 ; CHECK: st %r2, 0(%r4)
 ; CHECK: br %r14
-  %val1 = load i32, i32 *%src1, align 1
-  %val2 = load i32, i32 *%src2, align 2
+  %val1 = load i32, ptr %src1, align 1
+  %val2 = load i32, ptr %src2, align 2
   %sub = sub i32 %val1, %val2
-  store i32 %sub, i32 *%dst, align 1
+  store i32 %sub, ptr %dst, align 1
   ret i32 %sub
 }
 
 ; Check that unaligned 8-byte accesses are allowed.
-define i64 @f4(i64 *%src1, i64 *%src2, i64 *%dst) {
+define i64 @f4(ptr %src1, ptr %src2, ptr %dst) {
 ; CHECK-LABEL: f4:
 ; CHECK: lg %r2, 0(%r2)
 ; CHECK: sg %r2, 0(%r3)
 ; CHECK: stg %r2, 0(%r4)
 ; CHECK: br %r14
-  %val1 = load i64, i64 *%src1, align 1
-  %val2 = load i64, i64 *%src2, align 2
+  %val1 = load i64, ptr %src1, align 1
+  %val2 = load i64, ptr %src2, align 2
   %sub = sub i64 %val1, %val2
-  store i64 %sub, i64 *%dst, align 4
+  store i64 %sub, ptr %dst, align 4
   ret i64 %sub
 }

diff  --git a/llvm/test/CodeGen/SystemZ/undef-flag.ll b/llvm/test/CodeGen/SystemZ/undef-flag.ll
index 0e6d87ec960f1..c385f2fd2f254 100644
--- a/llvm/test/CodeGen/SystemZ/undef-flag.ll
+++ b/llvm/test/CodeGen/SystemZ/undef-flag.ll
@@ -5,11 +5,11 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 -verify-machineinstrs | FileCheck %s
 
 ; LLCRMux
-define void @f1(i8*) {
+define void @f1(ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK-NOT: *** Bad machine code: Using an undefined physical register ***
 BB:
-  %L5 = load i8, i8* %0
+  %L5 = load i8, ptr %0
   %B9 = lshr i8 %L5, -1
   br label %CF
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-abi-align.ll b/llvm/test/CodeGen/SystemZ/vec-abi-align.ll
index 5a33197b62a55..0e67c1859ec99 100644
--- a/llvm/test/CodeGen/SystemZ/vec-abi-align.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-abi-align.ll
@@ -44,7 +44,7 @@
 %struct.S_vx = type { i8, <2 x i64> }
 %struct.S_novx = type { i8, [15 x i8], <2 x i64> }
 
-define void @fun_vx(%struct.S_vx* %s) nounwind {
+define void @fun_vx(ptr %s) nounwind {
 ; CHECK-LABEL: @fun_vx
 ;
 ; CHECK-VECTOR: vl %v0, 8(%r2)
@@ -52,14 +52,14 @@ define void @fun_vx(%struct.S_vx* %s) nounwind {
 ;
 ; CHECK-NOVECTOR-DAG: agsi 16(%r2), 1
 ; CHECK-NOVECTOR-DAG: agsi 8(%r2), 1
-  %ptr = getelementptr %struct.S_vx, %struct.S_vx* %s, i64 0, i32 1
-  %vec = load <2 x i64>, <2 x i64>* %ptr
+  %ptr = getelementptr %struct.S_vx, ptr %s, i64 0, i32 1
+  %vec = load <2 x i64>, ptr %ptr
   %add = add <2 x i64> %vec, <i64 1, i64 1>
-  store <2 x i64> %add, <2 x i64>* %ptr
+  store <2 x i64> %add, ptr %ptr
   ret void
 }
 
-define void @fun_novx(%struct.S_novx* %s) nounwind {
+define void @fun_novx(ptr %s) nounwind {
 ; CHECK-LABEL: @fun_novx
 ;
 ; CHECK-VECTOR: vl  %v0, 16(%r2), 3
@@ -67,10 +67,10 @@ define void @fun_novx(%struct.S_novx* %s) nounwind {
 ;
 ; CHECK-NOVECTOR-DAG: agsi 16(%r2), 1
 ; CHECK-NOVECTOR-DAG: agsi 24(%r2), 1
-  %ptr = getelementptr %struct.S_novx, %struct.S_novx* %s, i64 0, i32 2
-  %vec = load <2 x i64>, <2 x i64>* %ptr
+  %ptr = getelementptr %struct.S_novx, ptr %s, i64 0, i32 2
+  %vec = load <2 x i64>, ptr %ptr
   %add = add <2 x i64> %vec, <i64 1, i64 1>
-  store <2 x i64> %add, <2 x i64>* %ptr
+  store <2 x i64> %add, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-01.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-01.ll
index 4d5e574033f34..22c9c52316323 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-01.ll
@@ -7,90 +7,88 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test v8i16 loads.
-define <8 x i16> @f1(<8 x i16> *%ptr) {
+define <8 x i16> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlbrh %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <8 x i16>, <8 x i16> *%ptr
+  %load = load <8 x i16>, ptr %ptr
   %ret = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %load)
   ret <8 x i16> %ret
 }
 
 ; Test v4i32 loads.
-define <4 x i32> @f2(<4 x i32> *%ptr) {
+define <4 x i32> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlbrf %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %load = load <4 x i32>, ptr %ptr
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %load)
   ret <4 x i32> %ret
 }
 
 ; Test v2i64 loads.
-define <2 x i64> @f3(<2 x i64> *%ptr) {
+define <2 x i64> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlbrg %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <2 x i64>, <2 x i64> *%ptr
+  %load = load <2 x i64>, ptr %ptr
   %ret = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %load)
   ret <2 x i64> %ret
 }
 
 ; Test the highest aligned in-range offset.
-define <4 x i32> @f4(<4 x i32> *%base) {
+define <4 x i32> @f4(ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: vlbrf %v24, 4080(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 255
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 255
+  %load = load <4 x i32>, ptr %ptr
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %load)
   ret <4 x i32> %ret
 }
 
 ; Test the highest unaligned in-range offset.
-define <4 x i32> @f5(i8 *%base) {
+define <4 x i32> @f5(ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: vlbrf %v24, 4095(%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 4095
-  %ptr = bitcast i8 *%addr to <4 x i32> *
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %addr = getelementptr i8, ptr %base, i64 4095
+  %load = load <4 x i32>, ptr %addr
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %load)
   ret <4 x i32> %ret
 }
 
 ; Test the next offset up, which requires separate address logic,
-define <4 x i32> @f6(<4 x i32> *%base) {
+define <4 x i32> @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlbrf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 256
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 256
+  %load = load <4 x i32>, ptr %ptr
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %load)
   ret <4 x i32> %ret
 }
 
 ; Test negative offsets, which also require separate address logic,
-define <4 x i32> @f7(<4 x i32> *%base) {
+define <4 x i32> @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r2, -16
 ; CHECK: vlbrf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 -1
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 -1
+  %load = load <4 x i32>, ptr %ptr
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %load)
   ret <4 x i32> %ret
 }
 
 ; Check that indexes are allowed.
-define <4 x i32> @f8(i8 *%base, i64 %index) {
+define <4 x i32> @f8(ptr %base, i64 %index) {
 ; CHECK-LABEL: f8:
 ; CHECK: vlbrf %v24, 0(%r3,%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 %index
-  %ptr = bitcast i8 *%addr to <4 x i32> *
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %addr = getelementptr i8, ptr %base, i64 %index
+  %load = load <4 x i32>, ptr %addr
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %load)
   ret <4 x i32> %ret
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-02.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-02.ll
index b7e8a1c1711df..b210aa8304ba2 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-02.ll
@@ -7,91 +7,89 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test v8i16 stores.
-define void @f1(<8 x i16> %val, <8 x i16> *%ptr) {
+define void @f1(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vstbrh %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %val)
-  store <8 x i16> %swap, <8 x i16> *%ptr
+  store <8 x i16> %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 stores.
-define void @f2(<4 x i32> %val, <4 x i32> *%ptr) {
+define void @f2(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vstbrf %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 stores.
-define void @f3(<2 x i64> %val, <2 x i64> *%ptr) {
+define void @f3(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vstbrg %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %val)
-  store <2 x i64> %swap, <2 x i64> *%ptr
+  store <2 x i64> %swap, ptr %ptr
   ret void
 }
 
 ; Test the highest aligned in-range offset.
-define void @f4(<4 x i32> %val, <4 x i32> *%base) {
+define void @f4(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: vstbrf %v24, 4080(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 255
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 255
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Test the highest unaligned in-range offset.
-define void @f5(<4 x i32> %val, i8 *%base) {
+define void @f5(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: vstbrf %v24, 4095(%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 4095
-  %ptr = bitcast i8 *%addr to <4 x i32> *
+  %addr = getelementptr i8, ptr %base, i64 4095
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
-  store <4 x i32> %swap, <4 x i32> *%ptr, align 1
+  store <4 x i32> %swap, ptr %addr, align 1
   ret void
 }
 
 ; Test the next offset up, which requires separate address logic,
-define void @f6(<4 x i32> %val, <4 x i32> *%base) {
+define void @f6(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vstbrf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 256
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 256
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Test negative offsets, which also require separate address logic,
-define void @f7(<4 x i32> %val, <4 x i32> *%base) {
+define void @f7(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r2, -16
 ; CHECK: vstbrf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 -1
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 -1
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Check that indexes are allowed.
-define void @f8(<4 x i32> %val, i8 *%base, i64 %index) {
+define void @f8(<4 x i32> %val, ptr %base, i64 %index) {
 ; CHECK-LABEL: f8:
 ; CHECK: vstbrf %v24, 0(%r3,%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 %index
-  %ptr = bitcast i8 *%addr to <4 x i32> *
+  %addr = getelementptr i8, ptr %base, i64 %index
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
-  store <4 x i32> %swap, <4 x i32> *%ptr, align 1
+  store <4 x i32> %swap, ptr %addr, align 1
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-03.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-03.ll
index b812308fc6d16..eb7fbf6ac0c51 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-03.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-03.ll
@@ -10,69 +10,69 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test v8i16 insertion into the first element.
-define <8 x i16> @f1(<8 x i16> %val, i16 *%ptr) {
+define <8 x i16> @f1(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlebrh %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %element)
   %ret = insertelement <8 x i16> %val, i16 %swap, i32 0
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into the last element.
-define <8 x i16> @f2(<8 x i16> %val, i16 *%ptr) {
+define <8 x i16> @f2(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlebrh %v24, 0(%r2), 7
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %element)
   %ret = insertelement <8 x i16> %val, i16 %swap, i32 7
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion with the highest in-range offset.
-define <8 x i16> @f3(<8 x i16> %val, i16 *%base) {
+define <8 x i16> @f3(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlebrh %v24, 4094(%r2), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2047
-  %element = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i32 2047
+  %element = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %element)
   %ret = insertelement <8 x i16> %val, i16 %swap, i32 5
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion with the first ouf-of-range offset.
-define <8 x i16> @f4(<8 x i16> %val, i16 *%base) {
+define <8 x i16> @f4(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlebrh %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2048
-  %element = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i32 2048
+  %element = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %element)
   %ret = insertelement <8 x i16> %val, i16 %swap, i32 1
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into a variable element.
-define <8 x i16> @f5(<8 x i16> %val, i16 *%ptr, i32 %index) {
+define <8 x i16> @f5(<8 x i16> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: vlebrh
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %element)
   %ret = insertelement <8 x i16> %val, i16 %swap, i32 %index
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion using a pair of vector bswaps.
-define <8 x i16> @f6(<8 x i16> %val, i16 *%ptr) {
+define <8 x i16> @f6(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlebrh %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %swapval = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %val)
   %insert = insertelement <8 x i16> %swapval, i16 %element, i32 0
   %ret = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %insert)
@@ -80,69 +80,69 @@ define <8 x i16> @f6(<8 x i16> %val, i16 *%ptr) {
 }
 
 ; Test v4i32 insertion into the first element.
-define <4 x i32> @f7(<4 x i32> %val, i32 *%ptr) {
+define <4 x i32> @f7(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vlebrf %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %element)
   %ret = insertelement <4 x i32> %val, i32 %swap, i32 0
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into the last element.
-define <4 x i32> @f8(<4 x i32> %val, i32 *%ptr) {
+define <4 x i32> @f8(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vlebrf %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %element)
   %ret = insertelement <4 x i32> %val, i32 %swap, i32 3
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion with the highest in-range offset.
-define <4 x i32> @f9(<4 x i32> %val, i32 *%base) {
+define <4 x i32> @f9(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: vlebrf %v24, 4092(%r2), 2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1023
-  %element = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i32 1023
+  %element = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %element)
   %ret = insertelement <4 x i32> %val, i32 %swap, i32 2
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion with the first ouf-of-range offset.
-define <4 x i32> @f10(<4 x i32> %val, i32 *%base) {
+define <4 x i32> @f10(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlebrf %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1024
-  %element = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i32 1024
+  %element = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %element)
   %ret = insertelement <4 x i32> %val, i32 %swap, i32 1
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into a variable element.
-define <4 x i32> @f11(<4 x i32> %val, i32 *%ptr, i32 %index) {
+define <4 x i32> @f11(<4 x i32> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f11:
 ; CHECK-NOT: vlebrf
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %element)
   %ret = insertelement <4 x i32> %val, i32 %swap, i32 %index
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion using a pair of vector bswaps.
-define <4 x i32> @f12(<4 x i32> %val, i32 *%ptr) {
+define <4 x i32> @f12(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vlebrf %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %swapval = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
   %insert = insertelement <4 x i32> %swapval, i32 %element, i32 0
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %insert)
@@ -150,69 +150,69 @@ define <4 x i32> @f12(<4 x i32> %val, i32 *%ptr) {
 }
 
 ; Test v2i64 insertion into the first element.
-define <2 x i64> @f13(<2 x i64> %val, i64 *%ptr) {
+define <2 x i64> @f13(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: vlebrg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %element)
   %ret = insertelement <2 x i64> %val, i64 %swap, i32 0
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion into the last element.
-define <2 x i64> @f14(<2 x i64> %val, i64 *%ptr) {
+define <2 x i64> @f14(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: vlebrg %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %element)
   %ret = insertelement <2 x i64> %val, i64 %swap, i32 1
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion with the highest in-range offset.
-define <2 x i64> @f15(<2 x i64> %val, i64 *%base) {
+define <2 x i64> @f15(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f15:
 ; CHECK: vlebrg %v24, 4088(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 511
-  %element = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 511
+  %element = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %element)
   %ret = insertelement <2 x i64> %val, i64 %swap, i32 1
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion with the first ouf-of-range offset.
-define <2 x i64> @f16(<2 x i64> %val, i64 *%base) {
+define <2 x i64> @f16(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f16:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlebrg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 512
-  %element = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 512
+  %element = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %element)
   %ret = insertelement <2 x i64> %val, i64 %swap, i32 0
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion into a variable element.
-define <2 x i64> @f17(<2 x i64> %val, i64 *%ptr, i32 %index) {
+define <2 x i64> @f17(<2 x i64> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f17:
 ; CHECK-NOT: vlebrg
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %element)
   %ret = insertelement <2 x i64> %val, i64 %swap, i32 %index
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion using a pair of vector bswaps.
-define <2 x i64> @f18(<2 x i64> %val, i64 *%ptr) {
+define <2 x i64> @f18(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: vlebrg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %swapval = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %val)
   %insert = insertelement <2 x i64> %swapval, i64 %element, i32 0
   %ret = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %insert)

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-04.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-04.ll
index 0ab521dbb9cf5..90fe2991218d0 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-04.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-04.ll
@@ -10,245 +10,245 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test v8i16 extraction from the first element.
-define void @f1(<8 x i16> %val, i16 *%ptr) {
+define void @f1(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vstebrh %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 0
   %swap = call i16 @llvm.bswap.i16(i16 %element)
-  store i16 %swap, i16 *%ptr
+  store i16 %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction from the last element.
-define void @f2(<8 x i16> %val, i16 *%ptr) {
+define void @f2(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vstebrh %v24, 0(%r2), 7
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 7
   %swap = call i16 @llvm.bswap.i16(i16 %element)
-  store i16 %swap, i16 *%ptr
+  store i16 %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f3(<8 x i16> %val, i16 *%ptr) {
+define void @f3(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: vstebrh %v24, 0(%r2), 8
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 8
   %swap = call i16 @llvm.bswap.i16(i16 %element)
-  store i16 %swap, i16 *%ptr
+  store i16 %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction with the highest in-range offset.
-define void @f4(<8 x i16> %val, i16 *%base) {
+define void @f4(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: vstebrh %v24, 4094(%r2), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2047
+  %ptr = getelementptr i16, ptr %base, i32 2047
   %element = extractelement <8 x i16> %val, i32 5
   %swap = call i16 @llvm.bswap.i16(i16 %element)
-  store i16 %swap, i16 *%ptr
+  store i16 %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction with the first ouf-of-range offset.
-define void @f5(<8 x i16> %val, i16 *%base) {
+define void @f5(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vstebrh %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2048
+  %ptr = getelementptr i16, ptr %base, i32 2048
   %element = extractelement <8 x i16> %val, i32 1
   %swap = call i16 @llvm.bswap.i16(i16 %element)
-  store i16 %swap, i16 *%ptr
+  store i16 %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction from a variable element.
-define void @f6(<8 x i16> %val, i16 *%ptr, i32 %index) {
+define void @f6(<8 x i16> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: vstebrh
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 %index
   %swap = call i16 @llvm.bswap.i16(i16 %element)
-  store i16 %swap, i16 *%ptr
+  store i16 %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction using a vector bswap.
-define void @f7(<8 x i16> %val, i16 *%ptr) {
+define void @f7(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vstebrh %v24, 0(%r2), 0
 ; CHECK: br %r14
   %swap = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %val)
   %element = extractelement <8 x i16> %swap, i32 0
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction from the first element.
-define void @f8(<4 x i32> %val, i32 *%ptr) {
+define void @f8(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vstebrf %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 0
   %swap = call i32 @llvm.bswap.i32(i32 %element)
-  store i32 %swap, i32 *%ptr
+  store i32 %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction from the last element.
-define void @f9(<4 x i32> %val, i32 *%ptr) {
+define void @f9(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vstebrf %v24, 0(%r2), 3
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 3
   %swap = call i32 @llvm.bswap.i32(i32 %element)
-  store i32 %swap, i32 *%ptr
+  store i32 %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f10(<4 x i32> %val, i32 *%ptr) {
+define void @f10(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: vstebrf %v24, 0(%r2), 4
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 4
   %swap = call i32 @llvm.bswap.i32(i32 %element)
-  store i32 %swap, i32 *%ptr
+  store i32 %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction with the highest in-range offset.
-define void @f11(<4 x i32> %val, i32 *%base) {
+define void @f11(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f11:
 ; CHECK: vstebrf %v24, 4092(%r2), 2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1023
+  %ptr = getelementptr i32, ptr %base, i32 1023
   %element = extractelement <4 x i32> %val, i32 2
   %swap = call i32 @llvm.bswap.i32(i32 %element)
-  store i32 %swap, i32 *%ptr
+  store i32 %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction with the first ouf-of-range offset.
-define void @f12(<4 x i32> %val, i32 *%base) {
+define void @f12(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f12:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vstebrf %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1024
+  %ptr = getelementptr i32, ptr %base, i32 1024
   %element = extractelement <4 x i32> %val, i32 1
   %swap = call i32 @llvm.bswap.i32(i32 %element)
-  store i32 %swap, i32 *%ptr
+  store i32 %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction from a variable element.
-define void @f13(<4 x i32> %val, i32 *%ptr, i32 %index) {
+define void @f13(<4 x i32> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f13:
 ; CHECK-NOT: vstebrf
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 %index
   %swap = call i32 @llvm.bswap.i32(i32 %element)
-  store i32 %swap, i32 *%ptr
+  store i32 %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction using a vector bswap.
-define void @f14(<4 x i32> %val, i32 *%ptr) {
+define void @f14(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: vstebrf %v24, 0(%r2), 0
 ; CHECK: br %r14
   %swap = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %val)
   %element = extractelement <4 x i32> %swap, i32 0
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction from the first element.
-define void @f15(<2 x i64> %val, i64 *%ptr) {
+define void @f15(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: vstebrg %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 0
   %swap = call i64 @llvm.bswap.i64(i64 %element)
-  store i64 %swap, i64 *%ptr
+  store i64 %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction from the last element.
-define void @f16(<2 x i64> %val, i64 *%ptr) {
+define void @f16(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: vstebrg %v24, 0(%r2), 1
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 1
   %swap = call i64 @llvm.bswap.i64(i64 %element)
-  store i64 %swap, i64 *%ptr
+  store i64 %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f17(<2 x i64> %val, i64 *%ptr) {
+define void @f17(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f17:
 ; CHECK-NOT: vstebrg %v24, 0(%r2), 2
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 2
   %swap = call i64 @llvm.bswap.i64(i64 %element)
-  store i64 %swap, i64 *%ptr
+  store i64 %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction with the highest in-range offset.
-define void @f18(<2 x i64> %val, i64 *%base) {
+define void @f18(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f18:
 ; CHECK: vstebrg %v24, 4088(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 511
+  %ptr = getelementptr i64, ptr %base, i32 511
   %element = extractelement <2 x i64> %val, i32 1
   %swap = call i64 @llvm.bswap.i64(i64 %element)
-  store i64 %swap, i64 *%ptr
+  store i64 %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction with the first ouf-of-range offset.
-define void @f19(<2 x i64> %val, i64 *%base) {
+define void @f19(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f19:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vstebrg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 512
+  %ptr = getelementptr i64, ptr %base, i32 512
   %element = extractelement <2 x i64> %val, i32 0
   %swap = call i64 @llvm.bswap.i64(i64 %element)
-  store i64 %swap, i64 *%ptr
+  store i64 %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction from a variable element.
-define void @f20(<2 x i64> %val, i64 *%ptr, i32 %index) {
+define void @f20(<2 x i64> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f20:
 ; CHECK-NOT: vstebrg
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 %index
   %swap = call i64 @llvm.bswap.i64(i64 %element)
-  store i64 %swap, i64 *%ptr
+  store i64 %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction using a vector bswap.
-define void @f21(<2 x i64> %val, i64 *%ptr) {
+define void @f21(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f21:
 ; CHECK: vstebrg %v24, 0(%r2), 0
 ; CHECK: br %r14
   %swap = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %val)
   %element = extractelement <2 x i64> %swap, i32 0
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-05.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-05.ll
index 4718aadbdd5dc..398e8160b6c90 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-05.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-05.ll
@@ -10,125 +10,125 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test VLLEBRZH.
-define <8 x i16> @f1(i16 *%ptr) {
+define <8 x i16> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vllebrzh %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %val)
   %ret = insertelement <8 x i16> zeroinitializer, i16 %swap, i32 3
   ret <8 x i16> %ret
 }
 
 ; Test VLLEBRZH using a vector bswap.
-define <8 x i16> @f2(i16 *%ptr) {
+define <8 x i16> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vllebrzh %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %insert = insertelement <8 x i16> zeroinitializer, i16 %val, i32 3
   %ret = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %insert)
   ret <8 x i16> %ret
 }
 
 ; Test VLLEBRZF.
-define <4 x i32> @f3(i32 *%ptr) {
+define <4 x i32> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vllebrzf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %val)
   %ret = insertelement <4 x i32> zeroinitializer, i32 %swap, i32 1
   ret <4 x i32> %ret
 }
 
 ; Test VLLEBRZF using a vector bswap.
-define <4 x i32> @f4(i32 *%ptr) {
+define <4 x i32> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vllebrzf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %insert = insertelement <4 x i32> zeroinitializer, i32 %val, i32 1
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %insert)
   ret <4 x i32> %ret
 }
 
 ; Test VLLEBRZG.
-define <2 x i64> @f5(i64 *%ptr) {
+define <2 x i64> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vllebrzg %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %val)
   %ret = insertelement <2 x i64> zeroinitializer, i64 %swap, i32 0
   ret <2 x i64> %ret
 }
 
 ; Test VLLEBRZG using a vector bswap.
-define <2 x i64> @f6(i64 *%ptr) {
+define <2 x i64> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vllebrzg %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %insert = insertelement <2 x i64> zeroinitializer, i64 %val, i32 0
   %ret = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %insert)
   ret <2 x i64> %ret
 }
 
 ; Test VLLEBRZE.
-define <4 x i32> @f7(i32 *%ptr) {
+define <4 x i32> @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vllebrze %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %val)
   %ret = insertelement <4 x i32> zeroinitializer, i32 %swap, i32 0
   ret <4 x i32> %ret
 }
 
 ; Test VLLEBRZE using a vector bswap.
-define <4 x i32> @f8(i32 *%ptr) {
+define <4 x i32> @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vllebrze %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %insert = insertelement <4 x i32> zeroinitializer, i32 %val, i32 0
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %insert)
   ret <4 x i32> %ret
 }
 
 ; Test VLLEBRZH with the highest in-range offset.
-define <8 x i16> @f9(i16 *%base) {
+define <8 x i16> @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: vllebrzh %v24, 4094(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2047
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2047
+  %val = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %val)
   %ret = insertelement <8 x i16> zeroinitializer, i16 %swap, i32 3
   ret <8 x i16> %ret
 }
 
 ; Test VLLEBRZH with the next highest offset.
-define <8 x i16> @f10(i16 *%base) {
+define <8 x i16> @f10(ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: vllebrzh %v24, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2048
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2048
+  %val = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %val)
   %ret = insertelement <8 x i16> zeroinitializer, i16 %swap, i32 3
   ret <8 x i16> %ret
 }
 
 ; Test that VLLEBRZH allows an index.
-define <8 x i16> @f11(i16 *%base, i64 %index) {
+define <8 x i16> @f11(ptr %base, i64 %index) {
 ; CHECK-LABEL: f11:
 ; CHECK: sllg [[REG:%r[1-5]]], %r3, 1
 ; CHECK: vllebrzh %v24, 0([[REG]],%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 %index
-  %val = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 %index
+  %val = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %val)
   %ret = insertelement <8 x i16> zeroinitializer, i16 %swap, i32 3
   ret <8 x i16> %ret

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-06.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-06.ll
index a67b5756c4d52..b37a5da77c897 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-06.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-06.ll
@@ -10,66 +10,66 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test v8i16 insertion into an undef, with an arbitrary index.
-define <8 x i16> @f1(i16 *%ptr) {
+define <8 x i16> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlbrreph %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %val)
   %ret = insertelement <8 x i16> undef, i16 %swap, i32 5
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into an undef, using a vector bswap.
-define <8 x i16> @f2(i16 *%ptr) {
+define <8 x i16> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlbrreph %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %insert = insertelement <8 x i16> undef, i16 %val, i32 5
   %ret = call <8 x i16> @llvm.bswap.v8i16(<8 x i16> %insert)
   ret <8 x i16> %ret
 }
 
 ; Test v4i32 insertion into an undef, with an arbitrary index.
-define <4 x i32> @f3(i32 *%ptr) {
+define <4 x i32> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlbrrepf %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %val)
   %ret = insertelement <4 x i32> undef, i32 %swap, i32 2
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into an undef, using a vector bswap.
-define <4 x i32> @f4(i32 *%ptr) {
+define <4 x i32> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vlbrrepf %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %insert = insertelement <4 x i32> undef, i32 %val, i32 2
   %ret = call <4 x i32> @llvm.bswap.v4i32(<4 x i32> %insert)
   ret <4 x i32> %ret
 }
 
 ; Test v2i64 insertion into an undef, with an arbitrary index.
-define <2 x i64> @f5(i64 *%ptr) {
+define <2 x i64> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vlbrrepg %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %val)
   %ret = insertelement <2 x i64> undef, i64 %swap, i32 1
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion into an undef, using a vector bwap.
-define <2 x i64> @f6(i64 *%ptr) {
+define <2 x i64> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlbrrepg %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %insert = insertelement <2 x i64> undef, i64 %val, i32 1
   %ret = call <2 x i64> @llvm.bswap.v2i64(<2 x i64> %insert)
   ret <2 x i64> %ret

diff  --git a/llvm/test/CodeGen/SystemZ/vec-bswap-07.ll b/llvm/test/CodeGen/SystemZ/vec-bswap-07.ll
index d3f38a0a6851a..d9f1f361e658c 100644
--- a/llvm/test/CodeGen/SystemZ/vec-bswap-07.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-bswap-07.ll
@@ -10,11 +10,11 @@ declare <4 x i32> @llvm.bswap.v4i32(<4 x i32>)
 declare <2 x i64> @llvm.bswap.v2i64(<2 x i64>)
 
 ; Test a v8i16 replicating load with no offset.
-define <8 x i16> @f1(i16 *%ptr) {
+define <8 x i16> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlbrreph %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i16, i16 *%ptr
+  %scalar = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %scalar)
   %val = insertelement <8 x i16> undef, i16 %swap, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,
@@ -23,12 +23,12 @@ define <8 x i16> @f1(i16 *%ptr) {
 }
 
 ; Test a v8i16 replicating load with the maximum in-range offset.
-define <8 x i16> @f2(i16 *%base) {
+define <8 x i16> @f2(ptr %base) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlbrreph %v24, 4094(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2047
-  %scalar = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2047
+  %scalar = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %scalar)
   %val = insertelement <8 x i16> undef, i16 %swap, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,
@@ -37,13 +37,13 @@ define <8 x i16> @f2(i16 *%base) {
 }
 
 ; Test a v8i16 replicating load with the first out-of-range offset.
-define <8 x i16> @f3(i16 *%base) {
+define <8 x i16> @f3(ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlbrreph %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2048
-  %scalar = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2048
+  %scalar = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %scalar)
   %val = insertelement <8 x i16> undef, i16 %swap, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,
@@ -52,11 +52,11 @@ define <8 x i16> @f3(i16 *%base) {
 }
 
 ; Test a v8i16 replicating load using a vector bswap.
-define <8 x i16> @f4(i16 *%ptr) {
+define <8 x i16> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vlbrreph %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i16, i16 *%ptr
+  %scalar = load i16, ptr %ptr
   %val = insertelement <8 x i16> undef, i16 %scalar, i32 0
   %rep = shufflevector <8 x i16> %val, <8 x i16> undef,
                        <8 x i32> zeroinitializer
@@ -65,11 +65,11 @@ define <8 x i16> @f4(i16 *%ptr) {
 }
 
 ; Test a v4i32 replicating load with no offset.
-define <4 x i32> @f5(i32 *%ptr) {
+define <4 x i32> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vlbrrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i32, i32 *%ptr
+  %scalar = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %scalar)
   %val = insertelement <4 x i32> undef, i32 %swap, i32 0
   %ret = shufflevector <4 x i32> %val, <4 x i32> undef,
@@ -78,12 +78,12 @@ define <4 x i32> @f5(i32 *%ptr) {
 }
 
 ; Test a v4i32 replicating load with the maximum in-range offset.
-define <4 x i32> @f6(i32 *%base) {
+define <4 x i32> @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlbrrepf %v24, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
-  %scalar = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1023
+  %scalar = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %scalar)
   %val = insertelement <4 x i32> undef, i32 %swap, i32 0
   %ret = shufflevector <4 x i32> %val, <4 x i32> undef,
@@ -92,13 +92,13 @@ define <4 x i32> @f6(i32 *%base) {
 }
 
 ; Test a v4i32 replicating load with the first out-of-range offset.
-define <4 x i32> @f7(i32 *%base) {
+define <4 x i32> @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlbrrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
-  %scalar = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1024
+  %scalar = load i32, ptr %ptr
   %swap = call i32 @llvm.bswap.i32(i32 %scalar)
   %val = insertelement <4 x i32> undef, i32 %swap, i32 0
   %ret = shufflevector <4 x i32> %val, <4 x i32> undef,
@@ -107,11 +107,11 @@ define <4 x i32> @f7(i32 *%base) {
 }
 
 ; Test a v4i32 replicating load using a vector bswap.
-define <4 x i32> @f8(i32 *%ptr) {
+define <4 x i32> @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vlbrrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i32, i32 *%ptr
+  %scalar = load i32, ptr %ptr
   %val = insertelement <4 x i32> undef, i32 %scalar, i32 0
   %rep = shufflevector <4 x i32> %val, <4 x i32> undef,
                        <4 x i32> zeroinitializer
@@ -120,11 +120,11 @@ define <4 x i32> @f8(i32 *%ptr) {
 }
 
 ; Test a v2i64 replicating load with no offset.
-define <2 x i64> @f9(i64 *%ptr) {
+define <2 x i64> @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vlbrrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i64, i64 *%ptr
+  %scalar = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %scalar)
   %val = insertelement <2 x i64> undef, i64 %swap, i32 0
   %ret = shufflevector <2 x i64> %val, <2 x i64> undef,
@@ -133,12 +133,12 @@ define <2 x i64> @f9(i64 *%ptr) {
 }
 
 ; Test a v2i64 replicating load with the maximum in-range offset.
-define <2 x i64> @f10(i64 *%base) {
+define <2 x i64> @f10(ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: vlbrrepg %v24, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 511
-  %scalar = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 511
+  %scalar = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %scalar)
   %val = insertelement <2 x i64> undef, i64 %swap, i32 0
   %ret = shufflevector <2 x i64> %val, <2 x i64> undef,
@@ -147,13 +147,13 @@ define <2 x i64> @f10(i64 *%base) {
 }
 
 ; Test a v2i64 replicating load with the first out-of-range offset.
-define <2 x i64> @f11(i64 *%base) {
+define <2 x i64> @f11(ptr %base) {
 ; CHECK-LABEL: f11:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlbrrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 512
-  %scalar = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 512
+  %scalar = load i64, ptr %ptr
   %swap = call i64 @llvm.bswap.i64(i64 %scalar)
   %val = insertelement <2 x i64> undef, i64 %swap, i32 0
   %ret = shufflevector <2 x i64> %val, <2 x i64> undef,
@@ -162,11 +162,11 @@ define <2 x i64> @f11(i64 *%base) {
 }
 
 ; Test a v2i64 replicating load using a vector bswap.
-define <2 x i64> @f12(i64 *%ptr) {
+define <2 x i64> @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vlbrrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i64, i64 *%ptr
+  %scalar = load i64, ptr %ptr
   %val = insertelement <2 x i64> undef, i64 %scalar, i32 0
   %rep = shufflevector <2 x i64> %val, <2 x i64> undef,
                        <2 x i32> zeroinitializer
@@ -175,14 +175,14 @@ define <2 x i64> @f12(i64 *%ptr) {
 }
 
 ; Test a v8i16 replicating load with an index.
-define <8 x i16> @f13(i16 *%base, i64 %index) {
+define <8 x i16> @f13(ptr %base, i64 %index) {
 ; CHECK-LABEL: f13:
 ; CHECK: sllg [[REG:%r[1-5]]], %r3, 1
 ; CHECK: vlbrreph %v24, 2046([[REG]],%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i16, i16 *%base, i64 %index
-  %ptr = getelementptr i16, i16 *%ptr1, i64 1023
-  %scalar = load i16, i16 *%ptr
+  %ptr1 = getelementptr i16, ptr %base, i64 %index
+  %ptr = getelementptr i16, ptr %ptr1, i64 1023
+  %scalar = load i16, ptr %ptr
   %swap = call i16 @llvm.bswap.i16(i16 %scalar)
   %val = insertelement <8 x i16> undef, i16 %swap, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,

diff  --git a/llvm/test/CodeGen/SystemZ/vec-combine-01.ll b/llvm/test/CodeGen/SystemZ/vec-combine-01.ll
index a359344217269..6f0abd6ea5baf 100644
--- a/llvm/test/CodeGen/SystemZ/vec-combine-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-combine-01.ll
@@ -4,7 +4,7 @@
 
 ; Check that an extraction followed by a truncation is effectively treated
 ; as a bitcast.
-define void @f1(<4 x i32> %v1, <4 x i32> %v2, i8 *%ptr1, i8 *%ptr2) {
+define void @f1(<4 x i32> %v1, <4 x i32> %v2, ptr %ptr1, ptr %ptr2) {
 ; CHECK-LABEL: f1:
 ; CHECK: vaf [[REG:%v[0-9]+]], %v24, %v26
 ; CHECK-DAG: vsteb [[REG]], 0(%r2), 3
@@ -15,8 +15,8 @@ define void @f1(<4 x i32> %v1, <4 x i32> %v2, i8 *%ptr1, i8 *%ptr2) {
   %elem2 = extractelement <4 x i32> %add, i32 3
   %trunc1 = trunc i32 %elem1 to i8
   %trunc2 = trunc i32 %elem2 to i8
-  store i8 %trunc1, i8 *%ptr1
-  store i8 %trunc2, i8 *%ptr2
+  store i8 %trunc1, ptr %ptr1
+  store i8 %trunc2, ptr %ptr2
   ret void
 }
 
@@ -108,7 +108,7 @@ define i16 @f5(<4 x i32> %v1, <4 x i32> %v2, <2 x i64> %v3) {
 
 ; Test a case where an unpack high can be eliminated from the usual
 ; load-extend sequence.
-define void @f6(<8 x i8> *%ptr1, i8 *%ptr2, i8 *%ptr3, i8 *%ptr4) {
+define void @f6(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %ptr4) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlrepg [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK-NOT: vup
@@ -116,7 +116,7 @@ define void @f6(<8 x i8> *%ptr1, i8 *%ptr2, i8 *%ptr3, i8 *%ptr4) {
 ; CHECK-DAG: vsteb [[REG]], 0(%r4), 2
 ; CHECK-DAG: vsteb [[REG]], 0(%r5), 7
 ; CHECK: br %r14
-  %vec = load <8 x i8>, <8 x i8> *%ptr1
+  %vec = load <8 x i8>, ptr %ptr1
   %ext = sext <8 x i8> %vec to <8 x i16>
   %elem1 = extractelement <8 x i16> %ext, i32 1
   %elem2 = extractelement <8 x i16> %ext, i32 2
@@ -124,14 +124,14 @@ define void @f6(<8 x i8> *%ptr1, i8 *%ptr2, i8 *%ptr3, i8 *%ptr4) {
   %trunc1 = trunc i16 %elem1 to i8
   %trunc2 = trunc i16 %elem2 to i8
   %trunc3 = trunc i16 %elem3 to i8
-  store i8 %trunc1, i8 *%ptr2
-  store i8 %trunc2, i8 *%ptr3
-  store i8 %trunc3, i8 *%ptr4
+  store i8 %trunc1, ptr %ptr2
+  store i8 %trunc2, ptr %ptr3
+  store i8 %trunc3, ptr %ptr4
   ret void
 }
 
 ; ...and again with a bitcast inbetween.
-define void @f7(<4 x i8> *%ptr1, i8 *%ptr2, i8 *%ptr3, i8 *%ptr4) {
+define void @f7(ptr %ptr1, ptr %ptr2, ptr %ptr3, ptr %ptr4) {
 ; CHECK-LABEL: f7:
 ; CHECK: vlrepf [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK-NOT: vup
@@ -139,7 +139,7 @@ define void @f7(<4 x i8> *%ptr1, i8 *%ptr2, i8 *%ptr3, i8 *%ptr4) {
 ; CHECK-DAG: vsteb [[REG]], 0(%r4), 1
 ; CHECK-DAG: vsteb [[REG]], 0(%r5), 3
 ; CHECK: br %r14
-  %vec = load <4 x i8>, <4 x i8> *%ptr1
+  %vec = load <4 x i8>, ptr %ptr1
   %ext = sext <4 x i8> %vec to <4 x i32>
   %bitcast = bitcast <4 x i32> %ext to <8 x i16>
   %elem1 = extractelement <8 x i16> %bitcast, i32 1
@@ -148,8 +148,8 @@ define void @f7(<4 x i8> *%ptr1, i8 *%ptr2, i8 *%ptr3, i8 *%ptr4) {
   %trunc1 = trunc i16 %elem1 to i8
   %trunc2 = trunc i16 %elem2 to i8
   %trunc3 = trunc i16 %elem3 to i8
-  store i8 %trunc1, i8 *%ptr2
-  store i8 %trunc2, i8 *%ptr3
-  store i8 %trunc3, i8 *%ptr4
+  store i8 %trunc1, ptr %ptr2
+  store i8 %trunc2, ptr %ptr3
+  store i8 %trunc3, ptr %ptr4
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-combine-02.ll b/llvm/test/CodeGen/SystemZ/vec-combine-02.ll
index 2e0a83354c5d4..82c1187576079 100644
--- a/llvm/test/CodeGen/SystemZ/vec-combine-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-combine-02.ll
@@ -140,7 +140,7 @@ define <16 x i8> @f4(<4 x i32> %val0, <4 x i32> %val1,
 ; Check the same operation, but with elements being extracted from the result.
 define void @f5(<4 x i32> %val0, <4 x i32> %val1,
                 <4 x i32> %val2, <4 x i32> %val3,
-                i8 *%base) {
+                ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: vsteb %v24, 0(%r2), 11
 ; CHECK-DAG: vsteb %v26, 1(%r2), 15
@@ -165,20 +165,19 @@ define void @f5(<4 x i32> %val0, <4 x i32> %val1,
                                    i32 17, i32 19, i32 21, i32 23,
                                    i32 25, i32 27, i32 29, i32 31>
 
-  %ptr0 = getelementptr i8, i8 *%base, i64 0
-  %ptr1 = getelementptr i8, i8 *%base, i64 1
-  %ptr2 = getelementptr i8, i8 *%base, i64 2
-  %ptr3 = getelementptr i8, i8 *%base, i64 3
+  %ptr1 = getelementptr i8, ptr %base, i64 1
+  %ptr2 = getelementptr i8, ptr %base, i64 2
+  %ptr3 = getelementptr i8, ptr %base, i64 3
 
   %byte0 = extractelement <16 x i8> %vec, i32 2
   %byte1 = extractelement <16 x i8> %vec, i32 7
   %byte2 = extractelement <16 x i8> %vec, i32 8
   %byte3 = extractelement <16 x i8> %vec, i32 13
 
-  store i8 %byte0, i8 *%ptr0
-  store i8 %byte1, i8 *%ptr1
-  store i8 %byte2, i8 *%ptr2
-  store i8 %byte3, i8 *%ptr3
+  store i8 %byte0, ptr %base
+  store i8 %byte1, ptr %ptr1
+  store i8 %byte2, ptr %ptr2
+  store i8 %byte3, ptr %ptr3
 
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-const-19.ll b/llvm/test/CodeGen/SystemZ/vec-const-19.ll
index e48bfe9250d78..2415714266110 100644
--- a/llvm/test/CodeGen/SystemZ/vec-const-19.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-const-19.ll
@@ -10,9 +10,9 @@ define void @fun()  {
 
   %tmp = fadd <2 x double> zeroinitializer, <double 1.000000e+00, double 1.000000e+00>
   %tmp1 = fmul <2 x double> %tmp, <double 5.000000e-01, double 5.000000e-01>
-  store <2 x double> %tmp1, <2 x double>* undef
-  %tmp2 = load double, double* undef
+  store <2 x double> %tmp1, ptr undef
+  %tmp2 = load double, ptr undef
   %tmp3 = fmul double %tmp2, 5.000000e-01
-  store double %tmp3, double* undef
+  store double %tmp3, ptr undef
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-conv-01.ll b/llvm/test/CodeGen/SystemZ/vec-conv-01.ll
index cbf42c0f533ea..df0b81fb124ad 100644
--- a/llvm/test/CodeGen/SystemZ/vec-conv-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-conv-01.ll
@@ -39,57 +39,57 @@ define <2 x double> @f4(<2 x i64> %dwords) {
 }
 
 ; Test conversion of f64s to signed i32s, which must compile.
-define void @f5(<2 x double> %doubles, <2 x i32> *%ptr) {
+define void @f5(<2 x double> %doubles, ptr %ptr) {
   %words = fptosi <2 x double> %doubles to <2 x i32>
-  store <2 x i32> %words, <2 x i32> *%ptr
+  store <2 x i32> %words, ptr %ptr
   ret void
 }
 
 ; Test conversion of f64s to unsigned i32s, which must compile.
-define void @f6(<2 x double> %doubles, <2 x i32> *%ptr) {
+define void @f6(<2 x double> %doubles, ptr %ptr) {
   %words = fptoui <2 x double> %doubles to <2 x i32>
-  store <2 x i32> %words, <2 x i32> *%ptr
+  store <2 x i32> %words, ptr %ptr
   ret void
 }
 
 ; Test conversion of signed i32s to f64s, which must compile.
-define <2 x double> @f7(<2 x i32> *%ptr) {
-  %words = load <2 x i32>, <2 x i32> *%ptr
+define <2 x double> @f7(ptr %ptr) {
+  %words = load <2 x i32>, ptr %ptr
   %doubles = sitofp <2 x i32> %words to <2 x double>
   ret <2 x double> %doubles
 }
 
 ; Test conversion of unsigned i32s to f64s, which must compile.
-define <2 x double> @f8(<2 x i32> *%ptr) {
-  %words = load <2 x i32>, <2 x i32> *%ptr
+define <2 x double> @f8(ptr %ptr) {
+  %words = load <2 x i32>, ptr %ptr
   %doubles = uitofp <2 x i32> %words to <2 x double>
   ret <2 x double> %doubles
 }
 
 ; Test conversion of f32s to signed i64s, which must compile.
-define <2 x i64> @f9(<2 x float> *%ptr) {
-  %floats = load <2 x float>, <2 x float> *%ptr
+define <2 x i64> @f9(ptr %ptr) {
+  %floats = load <2 x float>, ptr %ptr
   %dwords = fptosi <2 x float> %floats to <2 x i64>
   ret <2 x i64> %dwords
 }
 
 ; Test conversion of f32s to unsigned i64s, which must compile.
-define <2 x i64> @f10(<2 x float> *%ptr) {
-  %floats = load <2 x float>, <2 x float> *%ptr
+define <2 x i64> @f10(ptr %ptr) {
+  %floats = load <2 x float>, ptr %ptr
   %dwords = fptoui <2 x float> %floats to <2 x i64>
   ret <2 x i64> %dwords
 }
 
 ; Test conversion of signed i64s to f32, which must compile.
-define void @f11(<2 x i64> %dwords, <2 x float> *%ptr) {
+define void @f11(<2 x i64> %dwords, ptr %ptr) {
   %floats = sitofp <2 x i64> %dwords to <2 x float>
-  store <2 x float> %floats, <2 x float> *%ptr
+  store <2 x float> %floats, ptr %ptr
   ret void
 }
 
 ; Test conversion of unsigned i64s to f32, which must compile.
-define void @f12(<2 x i64> %dwords, <2 x float> *%ptr) {
+define void @f12(<2 x i64> %dwords, ptr %ptr) {
   %floats = uitofp <2 x i64> %dwords to <2 x float>
-  store <2 x float> %floats, <2 x float> *%ptr
+  store <2 x float> %floats, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-conv-02.ll b/llvm/test/CodeGen/SystemZ/vec-conv-02.ll
index d4c0f72641827..51b19e8cd5609 100644
--- a/llvm/test/CodeGen/SystemZ/vec-conv-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-conv-02.ll
@@ -3,12 +3,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test cases where both elements of a v2f64 are converted to f32s.
-define void @f1(<2 x double> %val, <2 x float> *%ptr) {
+define void @f1(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vledb {{%v[0-9]+}}, %v24, 0, 0
 ; CHECK: br %r14
   %res = fptrunc <2 x double> %val to <2 x float>
-  store <2 x float> %res, <2 x float> *%ptr
+  store <2 x float> %res, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-eswap-01.ll b/llvm/test/CodeGen/SystemZ/vec-eswap-01.ll
index 0e93f609eac1c..a1eb6b3990ff6 100644
--- a/llvm/test/CodeGen/SystemZ/vec-eswap-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-eswap-01.ll
@@ -3,11 +3,11 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 | FileCheck %s
 
 ; Test v16i8 loads.
-define <16 x i8> @f1(<16 x i8> *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlbrq %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <16 x i8>, <16 x i8> *%ptr
+  %load = load <16 x i8>, ptr %ptr
   %ret = shufflevector <16 x i8> %load, <16 x i8> undef,
                        <16 x i32> <i32 15, i32 14, i32 13, i32 12,
                                    i32 11, i32 10, i32 9, i32 8,
@@ -17,11 +17,11 @@ define <16 x i8> @f1(<16 x i8> *%ptr) {
 }
 
 ; Test v8i16 loads.
-define <8 x i16> @f2(<8 x i16> *%ptr) {
+define <8 x i16> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlerh %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <8 x i16>, <8 x i16> *%ptr
+  %load = load <8 x i16>, ptr %ptr
   %ret = shufflevector <8 x i16> %load, <8 x i16> undef,
                        <8 x i32> <i32 7, i32 6, i32 5, i32 4,
                                   i32 3, i32 2, i32 1, i32 0>
@@ -29,108 +29,106 @@ define <8 x i16> @f2(<8 x i16> *%ptr) {
 }
 
 ; Test v4i32 loads.
-define <4 x i32> @f3(<4 x i32> *%ptr) {
+define <4 x i32> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlerf %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %load = load <4 x i32>, ptr %ptr
   %ret = shufflevector <4 x i32> %load, <4 x i32> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x i32> %ret
 }
 
 ; Test v2i64 loads.
-define <2 x i64> @f4(<2 x i64> *%ptr) {
+define <2 x i64> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vlerg %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <2 x i64>, <2 x i64> *%ptr
+  %load = load <2 x i64>, ptr %ptr
   %ret = shufflevector <2 x i64> %load, <2 x i64> undef,
                        <2 x i32> <i32 1, i32 0>
   ret <2 x i64> %ret
 }
 
 ; Test v4f32 loads.
-define <4 x float> @f5(<4 x float> *%ptr) {
+define <4 x float> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vlerf %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <4 x float>, <4 x float> *%ptr
+  %load = load <4 x float>, ptr %ptr
   %ret = shufflevector <4 x float> %load, <4 x float> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x float> %ret
 }
 
 ; Test v2f64 loads.
-define <2 x double> @f6(<2 x double> *%ptr) {
+define <2 x double> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlerg %v24, 0(%r2)
 ; CHECK: br %r14
-  %load = load <2 x double>, <2 x double> *%ptr
+  %load = load <2 x double>, ptr %ptr
   %ret = shufflevector <2 x double> %load, <2 x double> undef,
                        <2 x i32> <i32 1, i32 0>
   ret <2 x double> %ret
 }
 
 ; Test the highest aligned in-range offset.
-define <4 x i32> @f7(<4 x i32> *%base) {
+define <4 x i32> @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: vlerf %v24, 4080(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 255
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 255
+  %load = load <4 x i32>, ptr %ptr
   %ret = shufflevector <4 x i32> %load, <4 x i32> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x i32> %ret
 }
 
 ; Test the highest unaligned in-range offset.
-define <4 x i32> @f8(i8 *%base) {
+define <4 x i32> @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: vlerf %v24, 4095(%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 4095
-  %ptr = bitcast i8 *%addr to <4 x i32> *
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %addr = getelementptr i8, ptr %base, i64 4095
+  %load = load <4 x i32>, ptr %addr
   %ret = shufflevector <4 x i32> %load, <4 x i32> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x i32> %ret
 }
 
 ; Test the next offset up, which requires separate address logic,
-define <4 x i32> @f9(<4 x i32> *%base) {
+define <4 x i32> @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlerf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 256
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 256
+  %load = load <4 x i32>, ptr %ptr
   %ret = shufflevector <4 x i32> %load, <4 x i32> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x i32> %ret
 }
 
 ; Test negative offsets, which also require separate address logic,
-define <4 x i32> @f10(<4 x i32> *%base) {
+define <4 x i32> @f10(ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: aghi %r2, -16
 ; CHECK: vlerf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 -1
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 -1
+  %load = load <4 x i32>, ptr %ptr
   %ret = shufflevector <4 x i32> %load, <4 x i32> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x i32> %ret
 }
 
 ; Check that indexes are allowed.
-define <4 x i32> @f11(i8 *%base, i64 %index) {
+define <4 x i32> @f11(ptr %base, i64 %index) {
 ; CHECK-LABEL: f11:
 ; CHECK: vlerf %v24, 0(%r3,%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 %index
-  %ptr = bitcast i8 *%addr to <4 x i32> *
-  %load = load <4 x i32>, <4 x i32> *%ptr
+  %addr = getelementptr i8, ptr %base, i64 %index
+  %load = load <4 x i32>, ptr %addr
   %ret = shufflevector <4 x i32> %load, <4 x i32> undef,
                        <4 x i32> <i32 3, i32 2, i32 1, i32 0>
   ret <4 x i32> %ret

diff  --git a/llvm/test/CodeGen/SystemZ/vec-eswap-02.ll b/llvm/test/CodeGen/SystemZ/vec-eswap-02.ll
index 07e07258204e7..2ce3aa5a42e8a 100644
--- a/llvm/test/CodeGen/SystemZ/vec-eswap-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-eswap-02.ll
@@ -3,7 +3,7 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z15 | FileCheck %s
 
 ; Test v16i8 stores.
-define void @f1(<16 x i8> %val, <16 x i8> *%ptr) {
+define void @f1(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vstbrq %v24, 0(%r2)
 ; CHECK: br %r14
@@ -12,127 +12,125 @@ define void @f1(<16 x i8> %val, <16 x i8> *%ptr) {
                                     i32 11, i32 10, i32 9, i32 8,
                                     i32 7, i32 6, i32 5, i32 4,
                                     i32 3, i32 2, i32 1, i32 0>
-  store <16 x i8> %swap, <16 x i8> *%ptr
+  store <16 x i8> %swap, ptr %ptr
   ret void
 }
 
 ; Test v8i16 stores.
-define void @f2(<8 x i16> %val, <8 x i16> *%ptr) {
+define void @f2(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vsterh %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = shufflevector <8 x i16> %val, <8 x i16> undef,
                         <8 x i32> <i32 7, i32 6, i32 5, i32 4,
                                    i32 3, i32 2, i32 1, i32 0>
-  store <8 x i16> %swap, <8 x i16> *%ptr
+  store <8 x i16> %swap, ptr %ptr
   ret void
 }
 
 ; Test v4i32 stores.
-define void @f3(<4 x i32> %val, <4 x i32> *%ptr) {
+define void @f3(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vsterf %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = shufflevector <4 x i32> %val, <4 x i32> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Test v2i64 stores.
-define void @f4(<2 x i64> %val, <2 x i64> *%ptr) {
+define void @f4(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vsterg %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = shufflevector <2 x i64> %val, <2 x i64> undef,
                         <2 x i32> <i32 1, i32 0>
-  store <2 x i64> %swap, <2 x i64> *%ptr
+  store <2 x i64> %swap, ptr %ptr
   ret void
 }
 
 ; Test v4f32 stores.
-define void @f5(<4 x float> %val, <4 x float> *%ptr) {
+define void @f5(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vsterf %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = shufflevector <4 x float> %val, <4 x float> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x float> %swap, <4 x float> *%ptr
+  store <4 x float> %swap, ptr %ptr
   ret void
 }
 
 ; Test v2f64 stores.
-define void @f6(<2 x double> %val, <2 x double> *%ptr) {
+define void @f6(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vsterg %v24, 0(%r2)
 ; CHECK: br %r14
   %swap = shufflevector <2 x double> %val, <2 x double> undef,
                         <2 x i32> <i32 1, i32 0>
-  store <2 x double> %swap, <2 x double> *%ptr
+  store <2 x double> %swap, ptr %ptr
   ret void
 }
 
 ; Test the highest aligned in-range offset.
-define void @f7(<4 x i32> %val, <4 x i32> *%base) {
+define void @f7(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: vsterf %v24, 4080(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 255
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 255
   %swap = shufflevector <4 x i32> %val, <4 x i32> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Test the highest unaligned in-range offset.
-define void @f8(<4 x i32> %val, i8 *%base) {
+define void @f8(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: vsterf %v24, 4095(%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 4095
-  %ptr = bitcast i8 *%addr to <4 x i32> *
+  %addr = getelementptr i8, ptr %base, i64 4095
   %swap = shufflevector <4 x i32> %val, <4 x i32> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x i32> %swap, <4 x i32> *%ptr, align 1
+  store <4 x i32> %swap, ptr %addr, align 1
   ret void
 }
 
 ; Test the next offset up, which requires separate address logic,
-define void @f9(<4 x i32> %val, <4 x i32> *%base) {
+define void @f9(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vsterf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 256
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 256
   %swap = shufflevector <4 x i32> %val, <4 x i32> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Test negative offsets, which also require separate address logic,
-define void @f10(<4 x i32> %val, <4 x i32> *%base) {
+define void @f10(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: aghi %r2, -16
 ; CHECK: vsterf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr <4 x i32>, <4 x i32> *%base, i64 -1
+  %ptr = getelementptr <4 x i32>, ptr %base, i64 -1
   %swap = shufflevector <4 x i32> %val, <4 x i32> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x i32> %swap, <4 x i32> *%ptr
+  store <4 x i32> %swap, ptr %ptr
   ret void
 }
 
 ; Check that indexes are allowed.
-define void @f11(<4 x i32> %val, i8 *%base, i64 %index) {
+define void @f11(<4 x i32> %val, ptr %base, i64 %index) {
 ; CHECK-LABEL: f11:
 ; CHECK: vsterf %v24, 0(%r3,%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 %index
-  %ptr = bitcast i8 *%addr to <4 x i32> *
+  %addr = getelementptr i8, ptr %base, i64 %index
   %swap = shufflevector <4 x i32> %val, <4 x i32> undef,
                         <4 x i32> <i32 3, i32 2, i32 1, i32 0>
-  store <4 x i32> %swap, <4 x i32> *%ptr, align 1
+  store <4 x i32> %swap, ptr %addr, align 1
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-extract-01.ll b/llvm/test/CodeGen/SystemZ/vec-extract-01.ll
index 0f1bb8601b309..07935bb46c65f 100644
--- a/llvm/test/CodeGen/SystemZ/vec-extract-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-extract-01.ll
@@ -3,12 +3,12 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test a memory copy of a v2i32 (via the constant pool).
-define void @f1(<2 x i32> *%dest) {
+define void @f1(ptr %dest) {
 ; CHECK-LABEL: f1:
 ; CHECK: llihf [[REG:%r[0-5]]], 1000000
 ; CHECK: oilf [[REG]], 99999
 ; CHECK: stg [[REG]], 0(%r2)
 ; CHECK: br %r14
-  store <2 x i32> <i32 1000000, i32 99999>, <2 x i32> *%dest
+  store <2 x i32> <i32 1000000, i32 99999>, ptr %dest
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-extract-02.ll b/llvm/test/CodeGen/SystemZ/vec-extract-02.ll
index ccf84e26ba4bc..dd78e8d283567 100644
--- a/llvm/test/CodeGen/SystemZ/vec-extract-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-extract-02.ll
@@ -4,12 +4,12 @@
 
 ; Test a case where a vector extraction can be simplified to a scalar load.
 ; The index must be extended from i32 to i64.
-define i32 @f1(<4 x i32> *%ptr, i32 %index) {
+define i32 @f1(ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f1:
 ; CHECK: risbgn {{%r[0-5]}}, %r3, 60, 189, 2
 ; CHECK: l %r2,
 ; CHECK: br %r14
-  %vec = load <4 x i32>, <4 x i32> *%ptr
+  %vec = load <4 x i32>, ptr %ptr
   %res = extractelement <4 x i32> %vec, i32 %index
   ret i32 %res
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-intrinsics-01.ll b/llvm/test/CodeGen/SystemZ/vec-intrinsics-01.ll
index 87fb3fa4afee8..2de4f949cd37d 100644
--- a/llvm/test/CodeGen/SystemZ/vec-intrinsics-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-intrinsics-01.ll
@@ -2,9 +2,9 @@
 ;
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
-declare i32 @llvm.s390.lcbb(i8 *, i32)
-declare <16 x i8> @llvm.s390.vlbb(i8 *, i32)
-declare <16 x i8> @llvm.s390.vll(i32, i8 *)
+declare i32 @llvm.s390.lcbb(ptr, i32)
+declare <16 x i8> @llvm.s390.vlbb(ptr, i32)
+declare <16 x i8> @llvm.s390.vll(i32, ptr)
 declare <2 x i64> @llvm.s390.vpdi(<2 x i64>, <2 x i64>, i32)
 declare <16 x i8> @llvm.s390.vperm(<16 x i8>, <16 x i8>, <16 x i8>)
 declare <16 x i8> @llvm.s390.vpksh(<8 x i16>, <8 x i16>)
@@ -19,7 +19,7 @@ declare <4 x i32> @llvm.s390.vpklsg(<2 x i64>, <2 x i64>)
 declare {<16 x i8>, i32} @llvm.s390.vpklshs(<8 x i16>, <8 x i16>)
 declare {<8 x i16>, i32} @llvm.s390.vpklsfs(<4 x i32>, <4 x i32>)
 declare {<4 x i32>, i32} @llvm.s390.vpklsgs(<2 x i64>, <2 x i64>)
-declare void @llvm.s390.vstl(<16 x i8>, i32, i8 *)
+declare void @llvm.s390.vstl(<16 x i8>, i32, ptr)
 declare <8 x i16> @llvm.s390.vuphb(<16 x i8>)
 declare <4 x i32> @llvm.s390.vuphh(<8 x i16>)
 declare <2 x i64> @llvm.s390.vuphf(<4 x i32>)
@@ -206,128 +206,128 @@ declare {<2 x i64>, i32} @llvm.s390.vftcidb(<2 x double>, i32)
 declare <2 x double> @llvm.s390.vfidb(<2 x double>, i32, i32)
 
 ; LCBB with the lowest M3 operand.
-define i32 @test_lcbb1(i8 *%ptr) {
+define i32 @test_lcbb1(ptr %ptr) {
 ; CHECK-LABEL: test_lcbb1:
 ; CHECK: lcbb %r2, 0(%r2), 0
 ; CHECK: br %r14
-  %res = call i32 @llvm.s390.lcbb(i8 *%ptr, i32 0)
+  %res = call i32 @llvm.s390.lcbb(ptr %ptr, i32 0)
   ret i32 %res
 }
 
 ; LCBB with the highest M3 operand.
-define i32 @test_lcbb2(i8 *%ptr) {
+define i32 @test_lcbb2(ptr %ptr) {
 ; CHECK-LABEL: test_lcbb2:
 ; CHECK: lcbb %r2, 0(%r2), 15
 ; CHECK: br %r14
-  %res = call i32 @llvm.s390.lcbb(i8 *%ptr, i32 15)
+  %res = call i32 @llvm.s390.lcbb(ptr %ptr, i32 15)
   ret i32 %res
 }
 
 ; LCBB with a displacement and index.
-define i32 @test_lcbb3(i8 *%base, i64 %index) {
+define i32 @test_lcbb3(ptr %base, i64 %index) {
 ; CHECK-LABEL: test_lcbb3:
 ; CHECK: lcbb %r2, 4095({{%r2,%r3|%r3,%r2}}), 4
 ; CHECK: br %r14
   %add = add i64 %index, 4095
-  %ptr = getelementptr i8, i8 *%base, i64 %add
-  %res = call i32 @llvm.s390.lcbb(i8 *%ptr, i32 4)
+  %ptr = getelementptr i8, ptr %base, i64 %add
+  %res = call i32 @llvm.s390.lcbb(ptr %ptr, i32 4)
   ret i32 %res
 }
 
 ; LCBB with an out-of-range displacement.
-define i32 @test_lcbb4(i8 *%base) {
+define i32 @test_lcbb4(ptr %base) {
 ; CHECK-LABEL: test_lcbb4:
 ; CHECK: lcbb %r2, 0({{%r[1-5]}}), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %res = call i32 @llvm.s390.lcbb(i8 *%ptr, i32 5)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %res = call i32 @llvm.s390.lcbb(ptr %ptr, i32 5)
   ret i32 %res
 }
 
 ; VLBB with the lowest M3 operand.
-define <16 x i8> @test_vlbb1(i8 *%ptr) {
+define <16 x i8> @test_vlbb1(ptr %ptr) {
 ; CHECK-LABEL: test_vlbb1:
 ; CHECK: vlbb %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vlbb(i8 *%ptr, i32 0)
+  %res = call <16 x i8> @llvm.s390.vlbb(ptr %ptr, i32 0)
   ret <16 x i8> %res
 }
 
 ; VLBB with the highest M3 operand.
-define <16 x i8> @test_vlbb2(i8 *%ptr) {
+define <16 x i8> @test_vlbb2(ptr %ptr) {
 ; CHECK-LABEL: test_vlbb2:
 ; CHECK: vlbb %v24, 0(%r2), 15
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vlbb(i8 *%ptr, i32 15)
+  %res = call <16 x i8> @llvm.s390.vlbb(ptr %ptr, i32 15)
   ret <16 x i8> %res
 }
 
 ; VLBB with a displacement and index.
-define <16 x i8> @test_vlbb3(i8 *%base, i64 %index) {
+define <16 x i8> @test_vlbb3(ptr %base, i64 %index) {
 ; CHECK-LABEL: test_vlbb3:
 ; CHECK: vlbb %v24, 4095({{%r2,%r3|%r3,%r2}}), 4
 ; CHECK: br %r14
   %add = add i64 %index, 4095
-  %ptr = getelementptr i8, i8 *%base, i64 %add
-  %res = call <16 x i8> @llvm.s390.vlbb(i8 *%ptr, i32 4)
+  %ptr = getelementptr i8, ptr %base, i64 %add
+  %res = call <16 x i8> @llvm.s390.vlbb(ptr %ptr, i32 4)
   ret <16 x i8> %res
 }
 
 ; VLBB with an out-of-range displacement.
-define <16 x i8> @test_vlbb4(i8 *%base) {
+define <16 x i8> @test_vlbb4(ptr %base) {
 ; CHECK-LABEL: test_vlbb4:
 ; CHECK: vlbb %v24, 0({{%r[1-5]}}), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %res = call <16 x i8> @llvm.s390.vlbb(i8 *%ptr, i32 5)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %res = call <16 x i8> @llvm.s390.vlbb(ptr %ptr, i32 5)
   ret <16 x i8> %res
 }
 
 ; VLL with the lowest in-range displacement.
-define <16 x i8> @test_vll1(i8 *%ptr, i32 %length) {
+define <16 x i8> @test_vll1(ptr %ptr, i32 %length) {
 ; CHECK-LABEL: test_vll1:
 ; CHECK: vll %v24, %r3, 0(%r2)
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vll(i32 %length, i8 *%ptr)
+  %res = call <16 x i8> @llvm.s390.vll(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLL with the highest in-range displacement.
-define <16 x i8> @test_vll2(i8 *%base, i32 %length) {
+define <16 x i8> @test_vll2(ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vll2:
 ; CHECK: vll %v24, %r3, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  %res = call <16 x i8> @llvm.s390.vll(i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  %res = call <16 x i8> @llvm.s390.vll(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLL with an out-of-range displacementa.
-define <16 x i8> @test_vll3(i8 *%base, i32 %length) {
+define <16 x i8> @test_vll3(ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vll3:
 ; CHECK: vll %v24, %r3, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %res = call <16 x i8> @llvm.s390.vll(i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %res = call <16 x i8> @llvm.s390.vll(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; Check that VLL doesn't allow an index.
-define <16 x i8> @test_vll4(i8 *%base, i64 %index, i32 %length) {
+define <16 x i8> @test_vll4(ptr %base, i64 %index, i32 %length) {
 ; CHECK-LABEL: test_vll4:
 ; CHECK: vll %v24, %r4, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  %res = call <16 x i8> @llvm.s390.vll(i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  %res = call <16 x i8> @llvm.s390.vll(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLL with length >= 15 should become VL.
-define <16 x i8> @test_vll5(i8 *%ptr) {
+define <16 x i8> @test_vll5(ptr %ptr) {
 ; CHECK-LABEL: test_vll5:
 ; CHECK: vl %v24, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vll(i32 15, i8 *%ptr)
+  %res = call <16 x i8> @llvm.s390.vll(i32 15, ptr %ptr)
   ret <16 x i8> %res
 }
 
@@ -387,7 +387,7 @@ define <4 x i32> @test_vpksg(<2 x i64> %a, <2 x i64> %b) {
 }
 
 ; VPKSHS with no processing of the result.
-define <16 x i8> @test_vpkshs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <16 x i8> @test_vpkshs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vpkshs:
 ; CHECK: vpkshs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -397,12 +397,12 @@ define <16 x i8> @test_vpkshs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vpkshs(<8 x i16> %a, <8 x i16> %b)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VPKSHS, storing to %ptr if all values were saturated.
-define <16 x i8> @test_vpkshs_all_store(<8 x i16> %a, <8 x i16> %b, i32 *%ptr) {
+define <16 x i8> @test_vpkshs_all_store(<8 x i16> %a, <8 x i16> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vpkshs_all_store:
 ; CHECK: vpkshs %v24, %v24, %v26
 ; CHECK-NEXT: {{bnor|bler}} %r14
@@ -415,7 +415,7 @@ define <16 x i8> @test_vpkshs_all_store(<8 x i16> %a, <8 x i16> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -423,7 +423,7 @@ exit:
 }
 
 ; VPKSFS with no processing of the result.
-define <8 x i16> @test_vpksfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <8 x i16> @test_vpksfs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vpksfs:
 ; CHECK: vpksfs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -433,12 +433,12 @@ define <8 x i16> @test_vpksfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vpksfs(<4 x i32> %a, <4 x i32> %b)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VPKSFS, storing to %ptr if any values were saturated.
-define <8 x i16> @test_vpksfs_any_store(<4 x i32> %a, <4 x i32> %b, i32 *%ptr) {
+define <8 x i16> @test_vpksfs_any_store(<4 x i32> %a, <4 x i32> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vpksfs_any_store:
 ; CHECK: vpksfs %v24, %v24, %v26
 ; CHECK-NEXT: {{bher|ber}} %r14
@@ -451,7 +451,7 @@ define <8 x i16> @test_vpksfs_any_store(<4 x i32> %a, <4 x i32> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -459,7 +459,7 @@ exit:
 }
 
 ; VPKSGS with no processing of the result.
-define <4 x i32> @test_vpksgs(<2 x i64> %a, <2 x i64> %b, i32 *%ccptr) {
+define <4 x i32> @test_vpksgs(<2 x i64> %a, <2 x i64> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vpksgs:
 ; CHECK: vpksgs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -469,13 +469,13 @@ define <4 x i32> @test_vpksgs(<2 x i64> %a, <2 x i64> %b, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vpksgs(<2 x i64> %a, <2 x i64> %b)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
 ; VPKSGS, storing to %ptr if no elements were saturated
 define <4 x i32> @test_vpksgs_none_store(<2 x i64> %a, <2 x i64> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vpksgs_none_store:
 ; CHECK: vpksgs %v24, %v24, %v26
 ; CHECK-NEXT: {{bnher|bner}} %r14
@@ -488,7 +488,7 @@ define <4 x i32> @test_vpksgs_none_store(<2 x i64> %a, <2 x i64> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -523,7 +523,7 @@ define <4 x i32> @test_vpklsg(<2 x i64> %a, <2 x i64> %b) {
 }
 
 ; VPKLSHS with no processing of the result.
-define <16 x i8> @test_vpklshs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <16 x i8> @test_vpklshs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vpklshs:
 ; CHECK: vpklshs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -533,13 +533,13 @@ define <16 x i8> @test_vpklshs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vpklshs(<8 x i16> %a, <8 x i16> %b)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VPKLSHS, storing to %ptr if all values were saturated.
 define <16 x i8> @test_vpklshs_all_store(<8 x i16> %a, <8 x i16> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vpklshs_all_store:
 ; CHECK: vpklshs %v24, %v24, %v26
 ; CHECK-NEXT: {{bnor|bler}} %r14
@@ -552,7 +552,7 @@ define <16 x i8> @test_vpklshs_all_store(<8 x i16> %a, <8 x i16> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -560,7 +560,7 @@ exit:
 }
 
 ; VPKLSFS with no processing of the result.
-define <8 x i16> @test_vpklsfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <8 x i16> @test_vpklsfs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vpklsfs:
 ; CHECK: vpklsfs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -570,13 +570,13 @@ define <8 x i16> @test_vpklsfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vpklsfs(<4 x i32> %a, <4 x i32> %b)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VPKLSFS, storing to %ptr if any values were saturated.
 define <8 x i16> @test_vpklsfs_any_store(<4 x i32> %a, <4 x i32> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vpklsfs_any_store:
 ; CHECK: vpklsfs %v24, %v24, %v26
 ; CHECK-NEXT: {{bher|ber}} %r14
@@ -589,7 +589,7 @@ define <8 x i16> @test_vpklsfs_any_store(<4 x i32> %a, <4 x i32> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -597,7 +597,7 @@ exit:
 }
 
 ; VPKLSGS with no processing of the result.
-define <4 x i32> @test_vpklsgs(<2 x i64> %a, <2 x i64> %b, i32 *%ccptr) {
+define <4 x i32> @test_vpklsgs(<2 x i64> %a, <2 x i64> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vpklsgs:
 ; CHECK: vpklsgs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -607,13 +607,13 @@ define <4 x i32> @test_vpklsgs(<2 x i64> %a, <2 x i64> %b, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vpklsgs(<2 x i64> %a, <2 x i64> %b)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
 ; VPKLSGS, storing to %ptr if no elements were saturated
 define <4 x i32> @test_vpklsgs_none_store(<2 x i64> %a, <2 x i64> %b,
-                                          i32 *%ptr) {
+                                          ptr %ptr) {
 ; CHECK-LABEL: test_vpklsgs_none_store:
 ; CHECK: vpklsgs %v24, %v24, %v26
 ; CHECK-NEXT: {{bnher|bner}} %r14
@@ -626,7 +626,7 @@ define <4 x i32> @test_vpklsgs_none_store(<2 x i64> %a, <2 x i64> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -634,50 +634,50 @@ exit:
 }
 
 ; VSTL with the lowest in-range displacement.
-define void @test_vstl1(<16 x i8> %vec, i8 *%ptr, i32 %length) {
+define void @test_vstl1(<16 x i8> %vec, ptr %ptr, i32 %length) {
 ; CHECK-LABEL: test_vstl1:
 ; CHECK: vstl %v24, %r3, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; VSTL with the highest in-range displacement.
-define void @test_vstl2(<16 x i8> %vec, i8 *%base, i32 %length) {
+define void @test_vstl2(<16 x i8> %vec, ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vstl2:
 ; CHECK: vstl %v24, %r3, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; VSTL with an out-of-range displacement.
-define void @test_vstl3(<16 x i8> %vec, i8 *%base, i32 %length) {
+define void @test_vstl3(<16 x i8> %vec, ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vstl3:
 ; CHECK: vstl %v24, %r3, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; Check that VSTL doesn't allow an index.
-define void @test_vstl4(<16 x i8> %vec, i8 *%base, i64 %index, i32 %length) {
+define void @test_vstl4(<16 x i8> %vec, ptr %base, i64 %index, i32 %length) {
 ; CHECK-LABEL: test_vstl4:
 ; CHECK: vstl %v24, %r4, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  call void @llvm.s390.vstl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; VSTL with length >= 15 should become VST.
-define void @test_vstl5(<16 x i8> %vec, i8 *%ptr) {
+define void @test_vstl5(<16 x i8> %vec, ptr %ptr) {
 ; CHECK-LABEL: test_vstl5:
 ; CHECK: vst %v24, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  call void @llvm.s390.vstl(<16 x i8> %vec, i32 15, i8 *%ptr)
+  call void @llvm.s390.vstl(<16 x i8> %vec, i32 15, ptr %ptr)
   ret void
 }
 
@@ -1719,7 +1719,7 @@ define i32 @test_vtm(<16 x i8> %a, <16 x i8> %b) {
 }
 
 ; VTM, storing to %ptr if all bits are set.
-define void @test_vtm_all_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
+define void @test_vtm_all_store(<16 x i8> %a, <16 x i8> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vtm_all_store:
 ; CHECK-NOT: %r
 ; CHECK: vtm %v24, %v26
@@ -1731,7 +1731,7 @@ define void @test_vtm_all_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -1765,7 +1765,7 @@ define i32 @test_vceqbs_any_bool(<16 x i8> %a, <16 x i8> %b) {
 }
 
 ; VCEQBS, storing to %ptr if any elements are equal.
-define <16 x i8> @test_vceqbs_any_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
+define <16 x i8> @test_vceqbs_any_store(<16 x i8> %a, <16 x i8> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vceqbs_any_store:
 ; CHECK-NOT: %r
 ; CHECK: vceqbs %v24, %v24, %v26
@@ -1779,7 +1779,7 @@ define <16 x i8> @test_vceqbs_any_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -1814,7 +1814,7 @@ define i32 @test_vceqhs_notall_bool(<8 x i16> %a, <8 x i16> %b) {
 
 ; VCEQHS, storing to %ptr if not all elements are equal.
 define <8 x i16> @test_vceqhs_notall_store(<8 x i16> %a, <8 x i16> %b,
-                                           i32 *%ptr) {
+                                           ptr %ptr) {
 ; CHECK-LABEL: test_vceqhs_notall_store:
 ; CHECK-NOT: %r
 ; CHECK: vceqhs %v24, %v24, %v26
@@ -1828,7 +1828,7 @@ define <8 x i16> @test_vceqhs_notall_store(<8 x i16> %a, <8 x i16> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -1863,7 +1863,7 @@ define i32 @test_vceqfs_none_bool(<4 x i32> %a, <4 x i32> %b) {
 
 ; VCEQFS, storing to %ptr if no elements are equal.
 define <4 x i32> @test_vceqfs_none_store(<4 x i32> %a, <4 x i32> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vceqfs_none_store:
 ; CHECK-NOT: %r
 ; CHECK: vceqfs %v24, %v24, %v26
@@ -1877,7 +1877,7 @@ define <4 x i32> @test_vceqfs_none_store(<4 x i32> %a, <4 x i32> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -1911,7 +1911,7 @@ define i32 @test_vceqgs_all_bool(<2 x i64> %a, <2 x i64> %b) {
 }
 
 ; VCEQGS, storing to %ptr if all elements are equal.
-define <2 x i64> @test_vceqgs_all_store(<2 x i64> %a, <2 x i64> %b, i32 *%ptr) {
+define <2 x i64> @test_vceqgs_all_store(<2 x i64> %a, <2 x i64> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vceqgs_all_store:
 ; CHECK-NOT: %r
 ; CHECK: vceqgs %v24, %v24, %v26
@@ -1925,7 +1925,7 @@ define <2 x i64> @test_vceqgs_all_store(<2 x i64> %a, <2 x i64> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -1959,7 +1959,7 @@ define i32 @test_vchbs_any_bool(<16 x i8> %a, <16 x i8> %b) {
 }
 
 ; VCHBS, storing to %ptr if any elements are higher.
-define <16 x i8> @test_vchbs_any_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
+define <16 x i8> @test_vchbs_any_store(<16 x i8> %a, <16 x i8> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vchbs_any_store:
 ; CHECK-NOT: %r
 ; CHECK: vchbs %v24, %v24, %v26
@@ -1973,7 +1973,7 @@ define <16 x i8> @test_vchbs_any_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2008,7 +2008,7 @@ define i32 @test_vchhs_notall_bool(<8 x i16> %a, <8 x i16> %b) {
 
 ; VCHHS, storing to %ptr if not all elements are higher.
 define <8 x i16> @test_vchhs_notall_store(<8 x i16> %a, <8 x i16> %b,
-                                          i32 *%ptr) {
+                                          ptr %ptr) {
 ; CHECK-LABEL: test_vchhs_notall_store:
 ; CHECK-NOT: %r
 ; CHECK: vchhs %v24, %v24, %v26
@@ -2022,7 +2022,7 @@ define <8 x i16> @test_vchhs_notall_store(<8 x i16> %a, <8 x i16> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2056,7 +2056,7 @@ define i32 @test_vchfs_none_bool(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VCHFS, storing to %ptr if no elements are higher.
-define <4 x i32> @test_vchfs_none_store(<4 x i32> %a, <4 x i32> %b, i32 *%ptr) {
+define <4 x i32> @test_vchfs_none_store(<4 x i32> %a, <4 x i32> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vchfs_none_store:
 ; CHECK-NOT: %r
 ; CHECK: vchfs %v24, %v24, %v26
@@ -2070,7 +2070,7 @@ define <4 x i32> @test_vchfs_none_store(<4 x i32> %a, <4 x i32> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2104,7 +2104,7 @@ define i32 @test_vchgs_all_bool(<2 x i64> %a, <2 x i64> %b) {
 }
 
 ; VCHGS, storing to %ptr if all elements are higher.
-define <2 x i64> @test_vchgs_all_store(<2 x i64> %a, <2 x i64> %b, i32 *%ptr) {
+define <2 x i64> @test_vchgs_all_store(<2 x i64> %a, <2 x i64> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vchgs_all_store:
 ; CHECK-NOT: %r
 ; CHECK: vchgs %v24, %v24, %v26
@@ -2118,7 +2118,7 @@ define <2 x i64> @test_vchgs_all_store(<2 x i64> %a, <2 x i64> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2152,7 +2152,7 @@ define i32 @test_vchlbs_any_bool(<16 x i8> %a, <16 x i8> %b) {
 }
 
 ; VCHLBS, storing to %ptr if any elements are higher.
-define <16 x i8> @test_vchlbs_any_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
+define <16 x i8> @test_vchlbs_any_store(<16 x i8> %a, <16 x i8> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vchlbs_any_store:
 ; CHECK-NOT: %r
 ; CHECK: vchlbs %v24, %v24, %v26
@@ -2166,7 +2166,7 @@ define <16 x i8> @test_vchlbs_any_store(<16 x i8> %a, <16 x i8> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2201,7 +2201,7 @@ define i32 @test_vchlhs_notall_bool(<8 x i16> %a, <8 x i16> %b) {
 
 ; VCHLHS, storing to %ptr if not all elements are higher.
 define <8 x i16> @test_vchlhs_notall_store(<8 x i16> %a, <8 x i16> %b,
-                                           i32 *%ptr) {
+                                           ptr %ptr) {
 ; CHECK-LABEL: test_vchlhs_notall_store:
 ; CHECK-NOT: %r
 ; CHECK: vchlhs %v24, %v24, %v26
@@ -2215,7 +2215,7 @@ define <8 x i16> @test_vchlhs_notall_store(<8 x i16> %a, <8 x i16> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2250,7 +2250,7 @@ define i32 @test_vchlfs_none_bool(<4 x i32> %a, <4 x i32> %b) {
 
 ; VCHLFS, storing to %ptr if no elements are higher.
 define <4 x i32> @test_vchlfs_none_store(<4 x i32> %a, <4 x i32> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vchlfs_none_store:
 ; CHECK-NOT: %r
 ; CHECK: vchlfs %v24, %v24, %v26
@@ -2264,7 +2264,7 @@ define <4 x i32> @test_vchlfs_none_store(<4 x i32> %a, <4 x i32> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2298,7 +2298,7 @@ define i32 @test_vchlgs_all_bool(<2 x i64> %a, <2 x i64> %b) {
 }
 
 ; VCHLGS, storing to %ptr if all elements are higher.
-define <2 x i64> @test_vchlgs_all_store(<2 x i64> %a, <2 x i64> %b, i32 *%ptr) {
+define <2 x i64> @test_vchlgs_all_store(<2 x i64> %a, <2 x i64> %b, ptr %ptr) {
 ; CHECK-LABEL: test_vchlgs_all_store:
 ; CHECK-NOT: %r
 ; CHECK: vchlgs %v24, %v24, %v26
@@ -2312,7 +2312,7 @@ define <2 x i64> @test_vchlgs_all_store(<2 x i64> %a, <2 x i64> %b, i32 *%ptr) {
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -2383,7 +2383,7 @@ define <4 x i32> @test_vfaef(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VFAEBS.
-define <16 x i8> @test_vfaebs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
+define <16 x i8> @test_vfaebs(<16 x i8> %a, <16 x i8> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfaebs:
 ; CHECK: vfaebs %v24, %v24, %v26, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2394,12 +2394,12 @@ define <16 x i8> @test_vfaebs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
                                                   i32 0)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VFAEHS.
-define <8 x i16> @test_vfaehs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <8 x i16> @test_vfaehs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfaehs:
 ; CHECK: vfaehs %v24, %v24, %v26, 4
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2410,12 +2410,12 @@ define <8 x i16> @test_vfaehs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
                                                   i32 4)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VFAEFS.
-define <4 x i32> @test_vfaefs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <4 x i32> @test_vfaefs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfaefs:
 ; CHECK: vfaefs %v24, %v24, %v26, 8
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2426,7 +2426,7 @@ define <4 x i32> @test_vfaefs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
                                                   i32 8)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2494,7 +2494,7 @@ define <4 x i32> @test_vfaezf(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VFAEZBS.
-define <16 x i8> @test_vfaezbs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
+define <16 x i8> @test_vfaezbs(<16 x i8> %a, <16 x i8> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfaezbs:
 ; CHECK: vfaezbs %v24, %v24, %v26, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2505,12 +2505,12 @@ define <16 x i8> @test_vfaezbs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
                                                    i32 0)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VFAEZHS.
-define <8 x i16> @test_vfaezhs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <8 x i16> @test_vfaezhs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfaezhs:
 ; CHECK: vfaezhs %v24, %v24, %v26, 4
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2521,12 +2521,12 @@ define <8 x i16> @test_vfaezhs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
                                                    i32 4)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VFAEZFS.
-define <4 x i32> @test_vfaezfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <4 x i32> @test_vfaezfs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfaezfs:
 ; CHECK: vfaezfs %v24, %v24, %v26, 8
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2537,7 +2537,7 @@ define <4 x i32> @test_vfaezfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
                                                    i32 8)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2569,7 +2569,7 @@ define <4 x i32> @test_vfeef(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VFEEBS.
-define <16 x i8> @test_vfeebs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
+define <16 x i8> @test_vfeebs(<16 x i8> %a, <16 x i8> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfeebs:
 ; CHECK: vfeebs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2579,12 +2579,12 @@ define <16 x i8> @test_vfeebs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vfeebs(<16 x i8> %a, <16 x i8> %b)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VFEEHS.
-define <8 x i16> @test_vfeehs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <8 x i16> @test_vfeehs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfeehs:
 ; CHECK: vfeehs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2594,12 +2594,12 @@ define <8 x i16> @test_vfeehs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vfeehs(<8 x i16> %a, <8 x i16> %b)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VFEEFS.
-define <4 x i32> @test_vfeefs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <4 x i32> @test_vfeefs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfeefs:
 ; CHECK: vfeefs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2609,7 +2609,7 @@ define <4 x i32> @test_vfeefs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vfeefs(<4 x i32> %a, <4 x i32> %b)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2641,7 +2641,7 @@ define <4 x i32> @test_vfeezf(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VFEEZBS.
-define <16 x i8> @test_vfeezbs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
+define <16 x i8> @test_vfeezbs(<16 x i8> %a, <16 x i8> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfeezbs:
 ; CHECK: vfeezbs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2651,12 +2651,12 @@ define <16 x i8> @test_vfeezbs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vfeezbs(<16 x i8> %a, <16 x i8> %b)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VFEEZHS.
-define <8 x i16> @test_vfeezhs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <8 x i16> @test_vfeezhs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfeezhs:
 ; CHECK: vfeezhs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2666,12 +2666,12 @@ define <8 x i16> @test_vfeezhs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vfeezhs(<8 x i16> %a, <8 x i16> %b)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VFEEZFS.
-define <4 x i32> @test_vfeezfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <4 x i32> @test_vfeezfs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfeezfs:
 ; CHECK: vfeezfs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2681,7 +2681,7 @@ define <4 x i32> @test_vfeezfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vfeezfs(<4 x i32> %a, <4 x i32> %b)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2713,7 +2713,7 @@ define <4 x i32> @test_vfenef(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VFENEBS.
-define <16 x i8> @test_vfenebs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
+define <16 x i8> @test_vfenebs(<16 x i8> %a, <16 x i8> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfenebs:
 ; CHECK: vfenebs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2723,12 +2723,12 @@ define <16 x i8> @test_vfenebs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vfenebs(<16 x i8> %a, <16 x i8> %b)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VFENEHS.
-define <8 x i16> @test_vfenehs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <8 x i16> @test_vfenehs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfenehs:
 ; CHECK: vfenehs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2738,12 +2738,12 @@ define <8 x i16> @test_vfenehs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vfenehs(<8 x i16> %a, <8 x i16> %b)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VFENEFS.
-define <4 x i32> @test_vfenefs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <4 x i32> @test_vfenefs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfenefs:
 ; CHECK: vfenefs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2753,7 +2753,7 @@ define <4 x i32> @test_vfenefs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vfenefs(<4 x i32> %a, <4 x i32> %b)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2785,7 +2785,7 @@ define <4 x i32> @test_vfenezf(<4 x i32> %a, <4 x i32> %b) {
 }
 
 ; VFENEZBS.
-define <16 x i8> @test_vfenezbs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
+define <16 x i8> @test_vfenezbs(<16 x i8> %a, <16 x i8> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfenezbs:
 ; CHECK: vfenezbs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2795,12 +2795,12 @@ define <16 x i8> @test_vfenezbs(<16 x i8> %a, <16 x i8> %b, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vfenezbs(<16 x i8> %a, <16 x i8> %b)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VFENEZHS.
-define <8 x i16> @test_vfenezhs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
+define <8 x i16> @test_vfenezhs(<8 x i16> %a, <8 x i16> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfenezhs:
 ; CHECK: vfenezhs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2810,12 +2810,12 @@ define <8 x i16> @test_vfenezhs(<8 x i16> %a, <8 x i16> %b, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vfenezhs(<8 x i16> %a, <8 x i16> %b)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VFENEZFS.
-define <4 x i32> @test_vfenezfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
+define <4 x i32> @test_vfenezfs(<4 x i32> %a, <4 x i32> %b, ptr %ccptr) {
 ; CHECK-LABEL: test_vfenezfs:
 ; CHECK: vfenezfs %v24, %v24, %v26
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2825,7 +2825,7 @@ define <4 x i32> @test_vfenezfs(<4 x i32> %a, <4 x i32> %b, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vfenezfs(<4 x i32> %a, <4 x i32> %b)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2857,7 +2857,7 @@ define <4 x i32> @test_vistrf(<4 x i32> %a) {
 }
 
 ; VISTRBS.
-define <16 x i8> @test_vistrbs(<16 x i8> %a, i32 *%ccptr) {
+define <16 x i8> @test_vistrbs(<16 x i8> %a, ptr %ccptr) {
 ; CHECK-LABEL: test_vistrbs:
 ; CHECK: vistrbs %v24, %v24
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2867,12 +2867,12 @@ define <16 x i8> @test_vistrbs(<16 x i8> %a, i32 *%ccptr) {
   %call = call {<16 x i8>, i32} @llvm.s390.vistrbs(<16 x i8> %a)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VISTRHS.
-define <8 x i16> @test_vistrhs(<8 x i16> %a, i32 *%ccptr) {
+define <8 x i16> @test_vistrhs(<8 x i16> %a, ptr %ccptr) {
 ; CHECK-LABEL: test_vistrhs:
 ; CHECK: vistrhs %v24, %v24
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2882,12 +2882,12 @@ define <8 x i16> @test_vistrhs(<8 x i16> %a, i32 *%ccptr) {
   %call = call {<8 x i16>, i32} @llvm.s390.vistrhs(<8 x i16> %a)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VISTRFS.
-define <4 x i32> @test_vistrfs(<4 x i32> %a, i32 *%ccptr) {
+define <4 x i32> @test_vistrfs(<4 x i32> %a, ptr %ccptr) {
 ; CHECK-LABEL: test_vistrfs:
 ; CHECK: vistrfs %v24, %v24
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2897,7 +2897,7 @@ define <4 x i32> @test_vistrfs(<4 x i32> %a, i32 *%ccptr) {
   %call = call {<4 x i32>, i32} @llvm.s390.vistrfs(<4 x i32> %a)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -2973,7 +2973,7 @@ define <4 x i32> @test_vstrcf(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) {
 
 ; VSTRCBS.
 define <16 x i8> @test_vstrcbs(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
-                               i32 *%ccptr) {
+                               ptr %ccptr) {
 ; CHECK-LABEL: test_vstrcbs:
 ; CHECK: vstrcbs %v24, %v24, %v26, %v28, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -2984,13 +2984,13 @@ define <16 x i8> @test_vstrcbs(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
                                                    <16 x i8> %c, i32 0)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRCHS.
 define <8 x i16> @test_vstrchs(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c,
-                               i32 *%ccptr) {
+                               ptr %ccptr) {
 ; CHECK-LABEL: test_vstrchs:
 ; CHECK: vstrchs %v24, %v24, %v26, %v28, 4
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -3001,13 +3001,13 @@ define <8 x i16> @test_vstrchs(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c,
                                                    <8 x i16> %c, i32 4)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VSTRCFS.
 define <4 x i32> @test_vstrcfs(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c,
-                               i32 *%ccptr) {
+                               ptr %ccptr) {
 ; CHECK-LABEL: test_vstrcfs:
 ; CHECK: vstrcfs %v24, %v24, %v26, %v28, 8
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -3018,7 +3018,7 @@ define <4 x i32> @test_vstrcfs(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c,
                                                    <4 x i32> %c, i32 8)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -3094,7 +3094,7 @@ define <4 x i32> @test_vstrczf(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c) {
 
 ; VSTRCZBS.
 define <16 x i8> @test_vstrczbs(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
-                                i32 *%ccptr) {
+                                ptr %ccptr) {
 ; CHECK-LABEL: test_vstrczbs:
 ; CHECK: vstrczbs %v24, %v24, %v26, %v28, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -3105,13 +3105,13 @@ define <16 x i8> @test_vstrczbs(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
                                                     <16 x i8> %c, i32 0)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRCZHS.
 define <8 x i16> @test_vstrczhs(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c,
-                                i32 *%ccptr) {
+                                ptr %ccptr) {
 ; CHECK-LABEL: test_vstrczhs:
 ; CHECK: vstrczhs %v24, %v24, %v26, %v28, 4
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -3122,13 +3122,13 @@ define <8 x i16> @test_vstrczhs(<8 x i16> %a, <8 x i16> %b, <8 x i16> %c,
                                                     <8 x i16> %c, i32 4)
   %res = extractvalue {<8 x i16>, i32} %call, 0
   %cc = extractvalue {<8 x i16>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <8 x i16> %res
 }
 
 ; VSTRCZFS.
 define <4 x i32> @test_vstrczfs(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c,
-                                i32 *%ccptr) {
+                                ptr %ccptr) {
 ; CHECK-LABEL: test_vstrczfs:
 ; CHECK: vstrczfs %v24, %v24, %v26, %v28, 8
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -3139,7 +3139,7 @@ define <4 x i32> @test_vstrczfs(<4 x i32> %a, <4 x i32> %b, <4 x i32> %c,
                                                     <4 x i32> %c, i32 8)
   %res = extractvalue {<4 x i32>, i32} %call, 0
   %cc = extractvalue {<4 x i32>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <4 x i32> %res
 }
 
@@ -3173,7 +3173,7 @@ define i32 @test_vfcedbs_any_bool(<2 x double> %a, <2 x double> %b) {
 
 ; VFCEDBS, storing to %ptr if any elements are equal.
 define <2 x i64> @test_vfcedbs_any_store(<2 x double> %a, <2 x double> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vfcedbs_any_store:
 ; CHECK-NOT: %r
 ; CHECK: vfcedbs %v24, %v24, %v26
@@ -3188,7 +3188,7 @@ define <2 x i64> @test_vfcedbs_any_store(<2 x double> %a, <2 x double> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -3225,7 +3225,7 @@ define i32 @test_vfchdbs_notall_bool(<2 x double> %a, <2 x double> %b) {
 
 ; VFCHDBS, storing to %ptr if not all elements are higher.
 define <2 x i64> @test_vfchdbs_notall_store(<2 x double> %a, <2 x double> %b,
-                                            i32 *%ptr) {
+                                            ptr %ptr) {
 ; CHECK-LABEL: test_vfchdbs_notall_store:
 ; CHECK-NOT: %r
 ; CHECK: vfchdbs %v24, %v24, %v26
@@ -3240,7 +3240,7 @@ define <2 x i64> @test_vfchdbs_notall_store(<2 x double> %a, <2 x double> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -3277,7 +3277,7 @@ define i32 @test_vfchedbs_none_bool(<2 x double> %a, <2 x double> %b) {
 
 ; VFCHEDBS, storing to %ptr if neither element is higher or equal.
 define <2 x i64> @test_vfchedbs_none_store(<2 x double> %a, <2 x double> %b,
-                                           i32 *%ptr) {
+                                           ptr %ptr) {
 ; CHECK-LABEL: test_vfchedbs_none_store:
 ; CHECK-NOT: %r
 ; CHECK: vfchedbs %v24, %v24, %v26
@@ -3292,7 +3292,7 @@ define <2 x i64> @test_vfchedbs_none_store(<2 x double> %a, <2 x double> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/vec-intrinsics-02.ll b/llvm/test/CodeGen/SystemZ/vec-intrinsics-02.ll
index 7e095807d1b20..b93a610aa0b1a 100644
--- a/llvm/test/CodeGen/SystemZ/vec-intrinsics-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-intrinsics-02.ll
@@ -4,8 +4,8 @@
 
 declare <2 x i64> @llvm.s390.vbperm(<16 x i8>, <16 x i8>)
 declare <16 x i8> @llvm.s390.vmslg(<2 x i64>, <2 x i64>, <16 x i8>, i32)
-declare <16 x i8> @llvm.s390.vlrl(i32, i8 *)
-declare void @llvm.s390.vstrl(<16 x i8>, i32, i8 *)
+declare <16 x i8> @llvm.s390.vlrl(i32, ptr)
+declare void @llvm.s390.vstrl(<16 x i8>, i32, ptr)
 
 declare {<4 x i32>, i32} @llvm.s390.vfcesbs(<4 x float>, <4 x float>)
 declare {<4 x i32>, i32} @llvm.s390.vfchsbs(<4 x float>, <4 x float>)
@@ -46,176 +46,176 @@ define <16 x i8> @test_vmslg2(<2 x i64> %a, <2 x i64> %b, <16 x i8> %c) {
 }
 
 ; VLRLR with the lowest in-range displacement.
-define <16 x i8> @test_vlrlr1(i8 *%ptr, i32 %length) {
+define <16 x i8> @test_vlrlr1(ptr %ptr, i32 %length) {
 ; CHECK-LABEL: test_vlrlr1:
 ; CHECK: vlrlr %v24, %r3, 0(%r2)
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, i8 *%ptr)
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLRLR with the highest in-range displacement.
-define <16 x i8> @test_vlrlr2(i8 *%base, i32 %length) {
+define <16 x i8> @test_vlrlr2(ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vlrlr2:
 ; CHECK: vlrlr %v24, %r3, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLRLR with an out-of-range displacement.
-define <16 x i8> @test_vlrlr3(i8 *%base, i32 %length) {
+define <16 x i8> @test_vlrlr3(ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vlrlr3:
 ; CHECK: vlrlr %v24, %r3, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; Check that VLRLR doesn't allow an index.
-define <16 x i8> @test_vlrlr4(i8 *%base, i64 %index, i32 %length) {
+define <16 x i8> @test_vlrlr4(ptr %base, i64 %index, i32 %length) {
 ; CHECK-LABEL: test_vlrlr4:
 ; CHECK: vlrlr %v24, %r4, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 %length, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLRL with the lowest in-range displacement.
-define <16 x i8> @test_vlrl1(i8 *%ptr) {
+define <16 x i8> @test_vlrl1(ptr %ptr) {
 ; CHECK-LABEL: test_vlrl1:
 ; CHECK: vlrl %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, i8 *%ptr)
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLRL with the highest in-range displacement.
-define <16 x i8> @test_vlrl2(i8 *%base) {
+define <16 x i8> @test_vlrl2(ptr %base) {
 ; CHECK-LABEL: test_vlrl2:
 ; CHECK: vlrl %v24, 4095(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLRL with an out-of-range displacement.
-define <16 x i8> @test_vlrl3(i8 *%base) {
+define <16 x i8> @test_vlrl3(ptr %base) {
 ; CHECK-LABEL: test_vlrl3:
 ; CHECK: vlrl %v24, 0({{%r[1-5]}}), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; Check that VLRL doesn't allow an index.
-define <16 x i8> @test_vlrl4(i8 *%base, i64 %index) {
+define <16 x i8> @test_vlrl4(ptr %base, i64 %index) {
 ; CHECK-LABEL: test_vlrl4:
 ; CHECK: vlrl %v24, 0({{%r[1-5]}}), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 0, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VLRL with length >= 15 should become VL.
-define <16 x i8> @test_vlrl5(i8 *%ptr) {
+define <16 x i8> @test_vlrl5(ptr %ptr) {
 ; CHECK-LABEL: test_vlrl5:
 ; CHECK: vl %v24, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %res = call <16 x i8> @llvm.s390.vlrl(i32 15, i8 *%ptr)
+  %res = call <16 x i8> @llvm.s390.vlrl(i32 15, ptr %ptr)
   ret <16 x i8> %res
 }
 
 ; VSTRLR with the lowest in-range displacement.
-define void @test_vstrlr1(<16 x i8> %vec, i8 *%ptr, i32 %length) {
+define void @test_vstrlr1(<16 x i8> %vec, ptr %ptr, i32 %length) {
 ; CHECK-LABEL: test_vstrlr1:
 ; CHECK: vstrlr %v24, %r3, 0(%r2)
 ; CHECK: br %r14
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; VSTRLR with the highest in-range displacement.
-define void @test_vstrlr2(<16 x i8> %vec, i8 *%base, i32 %length) {
+define void @test_vstrlr2(<16 x i8> %vec, ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vstrlr2:
 ; CHECK: vstrlr %v24, %r3, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; VSTRLR with an out-of-range displacement.
-define void @test_vstrlr3(<16 x i8> %vec, i8 *%base, i32 %length) {
+define void @test_vstrlr3(<16 x i8> %vec, ptr %base, i32 %length) {
 ; CHECK-LABEL: test_vstrlr3:
 ; CHECK: vstrlr %v24, %r3, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; Check that VSTRLR doesn't allow an index.
-define void @test_vstrlr4(<16 x i8> %vec, i8 *%base, i64 %index, i32 %length) {
+define void @test_vstrlr4(<16 x i8> %vec, ptr %base, i64 %index, i32 %length) {
 ; CHECK-LABEL: test_vstrlr4:
 ; CHECK: vstrlr %v24, %r4, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 %length, ptr %ptr)
   ret void
 }
 
 ; VSTRL with the lowest in-range displacement.
-define void @test_vstrl1(<16 x i8> %vec, i8 *%ptr) {
+define void @test_vstrl1(<16 x i8> %vec, ptr %ptr) {
 ; CHECK-LABEL: test_vstrl1:
 ; CHECK: vstrl %v24, 0(%r2), 8
 ; CHECK: br %r14
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, i8 *%ptr)
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, ptr %ptr)
   ret void
 }
 
 ; VSTRL with the highest in-range displacement.
-define void @test_vstrl2(<16 x i8> %vec, i8 *%base) {
+define void @test_vstrl2(<16 x i8> %vec, ptr %base) {
 ; CHECK-LABEL: test_vstrl2:
 ; CHECK: vstrl %v24, 4095(%r2), 8
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, ptr %ptr)
   ret void
 }
 
 ; VSTRL with an out-of-range displacement.
-define void @test_vstrl3(<16 x i8> %vec, i8 *%base) {
+define void @test_vstrl3(<16 x i8> %vec, ptr %base) {
 ; CHECK-LABEL: test_vstrl3:
 ; CHECK: vstrl %v24, 0({{%r[1-5]}}), 8
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, ptr %ptr)
   ret void
 }
 
 ; Check that VSTRL doesn't allow an index.
-define void @test_vstrl4(<16 x i8> %vec, i8 *%base, i64 %index) {
+define void @test_vstrl4(<16 x i8> %vec, ptr %base, i64 %index) {
 ; CHECK-LABEL: test_vstrl4:
 ; CHECK: vstrl %v24, 0({{%r[1-5]}}), 8
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, i8 *%ptr)
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 8, ptr %ptr)
   ret void
 }
 
 ; VSTRL with length >= 15 should become VST.
-define void @test_vstrl5(<16 x i8> %vec, i8 *%ptr) {
+define void @test_vstrl5(<16 x i8> %vec, ptr %ptr) {
 ; CHECK-LABEL: test_vstrl5:
 ; CHECK: vst %v24, 0({{%r[1-5]}})
 ; CHECK: br %r14
-  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 15, i8 *%ptr)
+  call void @llvm.s390.vstrl(<16 x i8> %vec, i32 15, ptr %ptr)
   ret void
 }
 
@@ -249,7 +249,7 @@ define i32 @test_vfcesbs_any_bool(<4 x float> %a, <4 x float> %b) {
 
 ; VFCESBS, storing to %ptr if any elements are equal.
 define <4 x i32> @test_vfcesbs_any_store(<4 x float> %a, <4 x float> %b,
-                                         i32 *%ptr) {
+                                         ptr %ptr) {
 ; CHECK-LABEL: test_vfcesbs_any_store:
 ; CHECK-NOT: %r
 ; CHECK: vfcesbs %v24, %v24, %v26
@@ -264,7 +264,7 @@ define <4 x i32> @test_vfcesbs_any_store(<4 x float> %a, <4 x float> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -301,7 +301,7 @@ define i32 @test_vfchsbs_notall_bool(<4 x float> %a, <4 x float> %b) {
 
 ; VFCHSBS, storing to %ptr if not all elements are higher.
 define <4 x i32> @test_vfchsbs_notall_store(<4 x float> %a, <4 x float> %b,
-                                            i32 *%ptr) {
+                                            ptr %ptr) {
 ; CHECK-LABEL: test_vfchsbs_notall_store:
 ; CHECK-NOT: %r
 ; CHECK: vfchsbs %v24, %v24, %v26
@@ -316,7 +316,7 @@ define <4 x i32> @test_vfchsbs_notall_store(<4 x float> %a, <4 x float> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:
@@ -353,7 +353,7 @@ define i32 @test_vfchesbs_none_bool(<4 x float> %a, <4 x float> %b) {
 
 ; VFCHESBS, storing to %ptr if neither element is higher or equal.
 define <4 x i32> @test_vfchesbs_none_store(<4 x float> %a, <4 x float> %b,
-                                           i32 *%ptr) {
+                                           ptr %ptr) {
 ; CHECK-LABEL: test_vfchesbs_none_store:
 ; CHECK-NOT: %r
 ; CHECK: vfchesbs %v24, %v24, %v26
@@ -368,7 +368,7 @@ define <4 x i32> @test_vfchesbs_none_store(<4 x float> %a, <4 x float> %b,
   br i1 %cmp, label %store, label %exit
 
 store:
-  store i32 0, i32 *%ptr
+  store i32 0, ptr %ptr
   br label %exit
 
 exit:

diff  --git a/llvm/test/CodeGen/SystemZ/vec-intrinsics-03.ll b/llvm/test/CodeGen/SystemZ/vec-intrinsics-03.ll
index fa144cc93d350..1ae53e8e1cf73 100644
--- a/llvm/test/CodeGen/SystemZ/vec-intrinsics-03.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-intrinsics-03.ll
@@ -52,7 +52,7 @@ define <16 x i8> @test_vsrd_7(<16 x i8> %a, <16 x i8> %b) {
 
 ; VSTRSB.
 define <16 x i8> @test_vstrsb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
-                              i32 *%ccptr) {
+                              ptr %ccptr) {
 ; CHECK-LABEL: test_vstrsb:
 ; CHECK: vstrsb %v24, %v24, %v26, %v28, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -63,13 +63,13 @@ define <16 x i8> @test_vstrsb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
                                                   <16 x i8> %c)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRSH.
 define <16 x i8> @test_vstrsh(<8 x i16> %a, <8 x i16> %b, <16 x i8> %c,
-                              i32 *%ccptr) {
+                              ptr %ccptr) {
 ; CHECK-LABEL: test_vstrsh:
 ; CHECK: vstrsh %v24, %v24, %v26, %v28, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -80,13 +80,13 @@ define <16 x i8> @test_vstrsh(<8 x i16> %a, <8 x i16> %b, <16 x i8> %c,
                                                   <16 x i8> %c)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRSFS.
 define <16 x i8> @test_vstrsf(<4 x i32> %a, <4 x i32> %b, <16 x i8> %c,
-                              i32 *%ccptr) {
+                              ptr %ccptr) {
 ; CHECK-LABEL: test_vstrsf:
 ; CHECK: vstrsf %v24, %v24, %v26, %v28, 0
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -97,13 +97,13 @@ define <16 x i8> @test_vstrsf(<4 x i32> %a, <4 x i32> %b, <16 x i8> %c,
                                                   <16 x i8> %c)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRSZB.
 define <16 x i8> @test_vstrszb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
-                              i32 *%ccptr) {
+                              ptr %ccptr) {
 ; CHECK-LABEL: test_vstrszb:
 ; CHECK: vstrszb %v24, %v24, %v26, %v28
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -114,13 +114,13 @@ define <16 x i8> @test_vstrszb(<16 x i8> %a, <16 x i8> %b, <16 x i8> %c,
                                                    <16 x i8> %c)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRSZH.
 define <16 x i8> @test_vstrszh(<8 x i16> %a, <8 x i16> %b, <16 x i8> %c,
-                              i32 *%ccptr) {
+                              ptr %ccptr) {
 ; CHECK-LABEL: test_vstrszh:
 ; CHECK: vstrszh %v24, %v24, %v26, %v28
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -131,13 +131,13 @@ define <16 x i8> @test_vstrszh(<8 x i16> %a, <8 x i16> %b, <16 x i8> %c,
                                                    <16 x i8> %c)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 
 ; VSTRSZF.
 define <16 x i8> @test_vstrszf(<4 x i32> %a, <4 x i32> %b, <16 x i8> %c,
-                              i32 *%ccptr) {
+                              ptr %ccptr) {
 ; CHECK-LABEL: test_vstrszf:
 ; CHECK: vstrszf %v24, %v24, %v26, %v28
 ; CHECK: ipm [[REG:%r[0-5]]]
@@ -148,7 +148,7 @@ define <16 x i8> @test_vstrszf(<4 x i32> %a, <4 x i32> %b, <16 x i8> %c,
                                                    <16 x i8> %c)
   %res = extractvalue {<16 x i8>, i32} %call, 0
   %cc = extractvalue {<16 x i8>, i32} %call, 1
-  store i32 %cc, i32 *%ccptr
+  store i32 %cc, ptr %ccptr
   ret <16 x i8> %res
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-load-element.ll b/llvm/test/CodeGen/SystemZ/vec-load-element.ll
index 28c7f62cd773f..25d29127ebf07 100644
--- a/llvm/test/CodeGen/SystemZ/vec-load-element.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-load-element.ll
@@ -20,25 +20,25 @@ vector.body:                                      ; preds = %vector.body, %entry
   %vec.phi = phi <4 x i32> [ zeroinitializer, %entry ], [ %57, %vector.body ]
   %0 = or i64 %index, 2
   %1 = or i64 %index, 3
-  %2 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 0, i32 3
-  %3 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %0, i32 3
-  %4 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %1, i32 3
-  %5 = load i32, i32* null, align 4
-  %6 = load i32, i32* %3, align 4
-  %7 = load i32, i32* %4, align 4
+  %2 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 0, i32 3
+  %3 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %0, i32 3
+  %4 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %1, i32 3
+  %5 = load i32, ptr null, align 4
+  %6 = load i32, ptr %3, align 4
+  %7 = load i32, ptr %4, align 4
   %8 = insertelement <4 x i32> undef, i32 %5, i32 0
   %9 = insertelement <4 x i32> %8, i32 0, i32 1
   %10 = insertelement <4 x i32> %9, i32 %6, i32 2
   %11 = insertelement <4 x i32> %10, i32 %7, i32 3
   %12 = add nsw <4 x i32> %11, %vec.phi
   %13 = or i64 %index, 7
-  %14 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 undef, i32 3
-  %15 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 0, i32 3
-  %16 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %13, i32 3
-  %17 = load i32, i32* %14, align 4
-  %18 = load i32, i32* undef, align 4
-  %19 = load i32, i32* %15, align 4
-  %20 = load i32, i32* %16, align 4
+  %14 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 undef, i32 3
+  %15 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 0, i32 3
+  %16 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %13, i32 3
+  %17 = load i32, ptr %14, align 4
+  %18 = load i32, ptr undef, align 4
+  %19 = load i32, ptr %15, align 4
+  %20 = load i32, ptr %16, align 4
   %21 = insertelement <4 x i32> undef, i32 %17, i32 0
   %22 = insertelement <4 x i32> %21, i32 %18, i32 1
   %23 = insertelement <4 x i32> %22, i32 %19, i32 2
@@ -47,14 +47,14 @@ vector.body:                                      ; preds = %vector.body, %entry
   %26 = or i64 %index, 9
   %27 = or i64 %index, 10
   %28 = or i64 %index, 11
-  %29 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 undef, i32 3
-  %30 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %26, i32 3
-  %31 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %27, i32 3
-  %32 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %28, i32 3
-  %33 = load i32, i32* %29, align 4
-  %34 = load i32, i32* %30, align 4
-  %35 = load i32, i32* %31, align 4
-  %36 = load i32, i32* %32, align 4
+  %29 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 undef, i32 3
+  %30 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %26, i32 3
+  %31 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %27, i32 3
+  %32 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %28, i32 3
+  %33 = load i32, ptr %29, align 4
+  %34 = load i32, ptr %30, align 4
+  %35 = load i32, ptr %31, align 4
+  %36 = load i32, ptr %32, align 4
   %37 = insertelement <4 x i32> undef, i32 %33, i32 0
   %38 = insertelement <4 x i32> %37, i32 %34, i32 1
   %39 = insertelement <4 x i32> %38, i32 %35, i32 2
@@ -63,14 +63,14 @@ vector.body:                                      ; preds = %vector.body, %entry
   %42 = or i64 %index, 13
   %43 = or i64 %index, 14
   %44 = or i64 %index, 15
-  %45 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 undef, i32 3
-  %46 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %42, i32 3
-  %47 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %43, i32 3
-  %48 = getelementptr inbounds [150 x %type0], [150 x %type0]* @Mem, i64 0, i64 %44, i32 3
-  %49 = load i32, i32* %45, align 4
-  %50 = load i32, i32* %46, align 4
-  %51 = load i32, i32* %47, align 4
-  %52 = load i32, i32* %48, align 4
+  %45 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 undef, i32 3
+  %46 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %42, i32 3
+  %47 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %43, i32 3
+  %48 = getelementptr inbounds [150 x %type0], ptr @Mem, i64 0, i64 %44, i32 3
+  %49 = load i32, ptr %45, align 4
+  %50 = load i32, ptr %46, align 4
+  %51 = load i32, ptr %47, align 4
+  %52 = load i32, ptr %48, align 4
   %53 = insertelement <4 x i32> undef, i32 %49, i32 0
   %54 = insertelement <4 x i32> %53, i32 %50, i32 1
   %55 = insertelement <4 x i32> %54, i32 %51, i32 2

diff  --git a/llvm/test/CodeGen/SystemZ/vec-max-05.ll b/llvm/test/CodeGen/SystemZ/vec-max-05.ll
index 8ad5e0e9b83a4..08a70670ed161 100644
--- a/llvm/test/CodeGen/SystemZ/vec-max-05.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-max-05.ll
@@ -157,77 +157,77 @@ define <4 x float> @f17(<4 x float> %dummy, <4 x float> %val1,
 }
 
 ; Test the fmaxl library function.
-define void @f21(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) {
+define void @f21(ptr %ptr1, ptr %ptr2, ptr %dst) {
 ; CHECK-LABEL: f21:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @fmaxl(fp128 %val1, fp128 %val2) readnone
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test the f128 maxnum intrinsic.
-define void @f22(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) {
+define void @f22(ptr %ptr1, ptr %ptr2, ptr %dst) {
 ; CHECK-LABEL: f22:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.maxnum.f128(fp128 %val1, fp128 %val2)
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test the f128 maximum intrinsic.
-define void @f23(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) {
+define void @f23(ptr %ptr1, ptr %ptr2, ptr %dst) {
 ; CHECK-LABEL: f23:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 1
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.maximum.f128(fp128 %val1, fp128 %val2)
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test a f128 constant compare/select resulting in maxnum.
-define void @f24(fp128 *%ptr, fp128 *%dst) {
+define void @f24(ptr %ptr, ptr %dst) {
 ; CHECK-LABEL: f24:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r3)
 ; CHECK: br %r14
-  %val = load fp128, fp128* %ptr
+  %val = load fp128, ptr %ptr
   %cmp = fcmp ogt fp128 %val, 0xL00000000000000000000000000000000
   %res = select i1 %cmp, fp128 %val, fp128 0xL00000000000000000000000000000000
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test a f128 constant compare/select resulting in maximum.
-define void @f25(fp128 *%ptr, fp128 *%dst) {
+define void @f25(ptr %ptr, ptr %dst) {
 ; CHECK-LABEL: f25:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 1
 ; CHECK: vst [[RES]], 0(%r3)
 ; CHECK: br %r14
-  %val = load fp128, fp128* %ptr
+  %val = load fp128, ptr %ptr
   %cmp = fcmp ugt fp128 %val, 0xL00000000000000000000000000000000
   %res = select i1 %cmp, fp128 %val, fp128 0xL00000000000000000000000000000000
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-min-05.ll b/llvm/test/CodeGen/SystemZ/vec-min-05.ll
index 9e1e816029e11..8cad5e3ba58f7 100644
--- a/llvm/test/CodeGen/SystemZ/vec-min-05.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-min-05.ll
@@ -157,77 +157,77 @@ define <4 x float> @f17(<4 x float> %dummy, <4 x float> %val1,
 }
 
 ; Test the fminl library function.
-define void @f21(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) {
+define void @f21(ptr %ptr1, ptr %ptr2, ptr %dst) {
 ; CHECK-LABEL: f21:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @fminl(fp128 %val1, fp128 %val2) readnone
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test the f128 minnum intrinsic.
-define void @f22(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) {
+define void @f22(ptr %ptr1, ptr %ptr2, ptr %dst) {
 ; CHECK-LABEL: f22:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.minnum.f128(fp128 %val1, fp128 %val2)
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test the f128 minimum intrinsic.
-define void @f23(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) {
+define void @f23(ptr %ptr1, ptr %ptr2, ptr %dst) {
 ; CHECK-LABEL: f23:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 1
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.minimum.f128(fp128 %val1, fp128 %val2)
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test a f128 constant compare/select resulting in minnum.
-define void @f24(fp128 *%ptr, fp128 *%dst) {
+define void @f24(ptr %ptr, ptr %dst) {
 ; CHECK-LABEL: f24:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r3)
 ; CHECK: br %r14
-  %val = load fp128, fp128* %ptr
+  %val = load fp128, ptr %ptr
   %cmp = fcmp olt fp128 %val, 0xL00000000000000000000000000000000
   %res = select i1 %cmp, fp128 %val, fp128 0xL00000000000000000000000000000000
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
 ; Test a f128 constant compare/select resulting in minimum.
-define void @f25(fp128 *%ptr, fp128 *%dst) {
+define void @f25(ptr %ptr, ptr %dst) {
 ; CHECK-LABEL: f25:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vzero [[REG2:%v[0-9]+]]
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 1
 ; CHECK: vst [[RES]], 0(%r3)
 ; CHECK: br %r14
-  %val = load fp128, fp128* %ptr
+  %val = load fp128, ptr %ptr
   %cmp = fcmp ult fp128 %val, 0xL00000000000000000000000000000000
   %res = select i1 %cmp, fp128 %val, fp128 0xL00000000000000000000000000000000
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-02.ll b/llvm/test/CodeGen/SystemZ/vec-move-02.ll
index 9c97c2701d5a4..48346ce63d19b 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-02.ll
@@ -3,182 +3,180 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test v16i8 loads.
-define <16 x i8> @f1(<16 x i8> *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ret = load <16 x i8>, <16 x i8> *%ptr
+  %ret = load <16 x i8>, ptr %ptr
   ret <16 x i8> %ret
 }
 
 ; Test v8i16 loads.
-define <8 x i16> @f2(<8 x i16> *%ptr) {
+define <8 x i16> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ret = load <8 x i16>, <8 x i16> *%ptr
+  %ret = load <8 x i16>, ptr %ptr
   ret <8 x i16> %ret
 }
 
 ; Test v4i32 loads.
-define <4 x i32> @f3(<4 x i32> *%ptr) {
+define <4 x i32> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ret = load <4 x i32>, <4 x i32> *%ptr
+  %ret = load <4 x i32>, ptr %ptr
   ret <4 x i32> %ret
 }
 
 ; Test v2i64 loads.
-define <2 x i64> @f4(<2 x i64> *%ptr) {
+define <2 x i64> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ret = load <2 x i64>, <2 x i64> *%ptr
+  %ret = load <2 x i64>, ptr %ptr
   ret <2 x i64> %ret
 }
 
 ; Test v4f32 loads.
-define <4 x float> @f5(<4 x float> *%ptr) {
+define <4 x float> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ret = load <4 x float>, <4 x float> *%ptr
+  %ret = load <4 x float>, ptr %ptr
   ret <4 x float> %ret
 }
 
 ; Test v2f64 loads.
-define <2 x double> @f6(<2 x double> *%ptr) {
+define <2 x double> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ret = load <2 x double>, <2 x double> *%ptr
+  %ret = load <2 x double>, ptr %ptr
   ret <2 x double> %ret
 }
 
 ; Test the highest aligned in-range offset.
-define <16 x i8> @f7(<16 x i8> *%base) {
+define <16 x i8> @f7(ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: vl %v24, 4080(%r2), 3
 ; CHECK: br %r14
-  %ptr = getelementptr <16 x i8>, <16 x i8> *%base, i64 255
-  %ret = load <16 x i8>, <16 x i8> *%ptr
+  %ptr = getelementptr <16 x i8>, ptr %base, i64 255
+  %ret = load <16 x i8>, ptr %ptr
   ret <16 x i8> %ret
 }
 
 ; Test the highest unaligned in-range offset.
-define <16 x i8> @f8(i8 *%base) {
+define <16 x i8> @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: vl %v24, 4095(%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 4095
-  %ptr = bitcast i8 *%addr to <16 x i8> *
-  %ret = load <16 x i8>, <16 x i8> *%ptr, align 1
+  %addr = getelementptr i8, ptr %base, i64 4095
+  %ret = load <16 x i8>, ptr %addr, align 1
   ret <16 x i8> %ret
 }
 
 ; Test the next offset up, which requires separate address logic,
-define <16 x i8> @f9(<16 x i8> *%base) {
+define <16 x i8> @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ptr = getelementptr <16 x i8>, <16 x i8> *%base, i64 256
-  %ret = load <16 x i8>, <16 x i8> *%ptr
+  %ptr = getelementptr <16 x i8>, ptr %base, i64 256
+  %ret = load <16 x i8>, ptr %ptr
   ret <16 x i8> %ret
 }
 
 ; Test negative offsets, which also require separate address logic,
-define <16 x i8> @f10(<16 x i8> *%base) {
+define <16 x i8> @f10(ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: aghi %r2, -16
 ; CHECK: vl %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ptr = getelementptr <16 x i8>, <16 x i8> *%base, i64 -1
-  %ret = load <16 x i8>, <16 x i8> *%ptr
+  %ptr = getelementptr <16 x i8>, ptr %base, i64 -1
+  %ret = load <16 x i8>, ptr %ptr
   ret <16 x i8> %ret
 }
 
 ; Check that indexes are allowed.
-define <16 x i8> @f11(i8 *%base, i64 %index) {
+define <16 x i8> @f11(ptr %base, i64 %index) {
 ; CHECK-LABEL: f11:
 ; CHECK: vl %v24, 0(%r3,%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 %index
-  %ptr = bitcast i8 *%addr to <16 x i8> *
-  %ret = load <16 x i8>, <16 x i8> *%ptr, align 1
+  %addr = getelementptr i8, ptr %base, i64 %index
+  %ret = load <16 x i8>, ptr %addr, align 1
   ret <16 x i8> %ret
 }
 
 ; Test v2i8 loads.
-define <2 x i8> @f12(<2 x i8> *%ptr) {
+define <2 x i8> @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vlreph %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <2 x i8>, <2 x i8> *%ptr
+  %ret = load <2 x i8>, ptr %ptr
   ret <2 x i8> %ret
 }
 
 ; Test v4i8 loads.
-define <4 x i8> @f13(<4 x i8> *%ptr) {
+define <4 x i8> @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <4 x i8>, <4 x i8> *%ptr
+  %ret = load <4 x i8>, ptr %ptr
   ret <4 x i8> %ret
 }
 
 ; Test v8i8 loads.
-define <8 x i8> @f14(<8 x i8> *%ptr) {
+define <8 x i8> @f14(ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <8 x i8>, <8 x i8> *%ptr
+  %ret = load <8 x i8>, ptr %ptr
   ret <8 x i8> %ret
 }
 
 ; Test v2i16 loads.
-define <2 x i16> @f15(<2 x i16> *%ptr) {
+define <2 x i16> @f15(ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <2 x i16>, <2 x i16> *%ptr
+  %ret = load <2 x i16>, ptr %ptr
   ret <2 x i16> %ret
 }
 
 ; Test v4i16 loads.
-define <4 x i16> @f16(<4 x i16> *%ptr) {
+define <4 x i16> @f16(ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <4 x i16>, <4 x i16> *%ptr
+  %ret = load <4 x i16>, ptr %ptr
   ret <4 x i16> %ret
 }
 
 ; Test v2i32 loads.
-define <2 x i32> @f17(<2 x i32> *%ptr) {
+define <2 x i32> @f17(ptr %ptr) {
 ; CHECK-LABEL: f17:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <2 x i32>, <2 x i32> *%ptr
+  %ret = load <2 x i32>, ptr %ptr
   ret <2 x i32> %ret
 }
 
 ; Test v2f32 loads.
-define <2 x float> @f18(<2 x float> *%ptr) {
+define <2 x float> @f18(ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ret = load <2 x float>, <2 x float> *%ptr
+  %ret = load <2 x float>, ptr %ptr
   ret <2 x float> %ret
 }
 
 ; Test quadword-aligned loads.
-define <16 x i8> @f19(<16 x i8> *%ptr) {
+define <16 x i8> @f19(ptr %ptr) {
 ; CHECK-LABEL: f19:
 ; CHECK: vl %v24, 0(%r2), 4
 ; CHECK: br %r14
-  %ret = load <16 x i8>, <16 x i8> *%ptr, align 16
+  %ret = load <16 x i8>, ptr %ptr, align 16
   ret <16 x i8> %ret
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-03.ll b/llvm/test/CodeGen/SystemZ/vec-move-03.ll
index 6e5b314d75618..966dcc9041f7a 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-03.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-03.ll
@@ -3,182 +3,180 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test v16i8 stores.
-define void @f1(<16 x i8> %val, <16 x i8> *%ptr) {
+define void @f1(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  store <16 x i8> %val, <16 x i8> *%ptr
+  store <16 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Test v8i16 stores.
-define void @f2(<8 x i16> %val, <8 x i16> *%ptr) {
+define void @f2(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  store <8 x i16> %val, <8 x i16> *%ptr
+  store <8 x i16> %val, ptr %ptr
   ret void
 }
 
 ; Test v4i32 stores.
-define void @f3(<4 x i32> %val, <4 x i32> *%ptr) {
+define void @f3(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  store <4 x i32> %val, <4 x i32> *%ptr
+  store <4 x i32> %val, ptr %ptr
   ret void
 }
 
 ; Test v2i64 stores.
-define void @f4(<2 x i64> %val, <2 x i64> *%ptr) {
+define void @f4(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  store <2 x i64> %val, <2 x i64> *%ptr
+  store <2 x i64> %val, ptr %ptr
   ret void
 }
 
 ; Test v4f32 stores.
-define void @f5(<4 x float> %val, <4 x float> *%ptr) {
+define void @f5(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  store <4 x float> %val, <4 x float> *%ptr
+  store <4 x float> %val, ptr %ptr
   ret void
 }
 
 ; Test v2f64 stores.
-define void @f6(<2 x double> %val, <2 x double> *%ptr) {
+define void @f6(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  store <2 x double> %val, <2 x double> *%ptr
+  store <2 x double> %val, ptr %ptr
   ret void
 }
 
 ; Test the highest aligned in-range offset.
-define void @f7(<16 x i8> %val, <16 x i8> *%base) {
+define void @f7(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f7:
 ; CHECK: vst %v24, 4080(%r2), 3
 ; CHECK: br %r14
-  %ptr = getelementptr <16 x i8>, <16 x i8> *%base, i64 255
-  store <16 x i8> %val, <16 x i8> *%ptr
+  %ptr = getelementptr <16 x i8>, ptr %base, i64 255
+  store <16 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Test the highest unaligned in-range offset.
-define void @f8(<16 x i8> %val, i8 *%base) {
+define void @f8(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: vst %v24, 4095(%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 4095
-  %ptr = bitcast i8 *%addr to <16 x i8> *
-  store <16 x i8> %val, <16 x i8> *%ptr, align 1
+  %addr = getelementptr i8, ptr %base, i64 4095
+  store <16 x i8> %val, ptr %addr, align 1
   ret void
 }
 
 ; Test the next offset up, which requires separate address logic,
-define void @f9(<16 x i8> %val, <16 x i8> *%base) {
+define void @f9(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ptr = getelementptr <16 x i8>, <16 x i8> *%base, i64 256
-  store <16 x i8> %val, <16 x i8> *%ptr
+  %ptr = getelementptr <16 x i8>, ptr %base, i64 256
+  store <16 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Test negative offsets, which also require separate address logic,
-define void @f10(<16 x i8> %val, <16 x i8> *%base) {
+define void @f10(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: aghi %r2, -16
 ; CHECK: vst %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %ptr = getelementptr <16 x i8>, <16 x i8> *%base, i64 -1
-  store <16 x i8> %val, <16 x i8> *%ptr
+  %ptr = getelementptr <16 x i8>, ptr %base, i64 -1
+  store <16 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Check that indexes are allowed.
-define void @f11(<16 x i8> %val, i8 *%base, i64 %index) {
+define void @f11(<16 x i8> %val, ptr %base, i64 %index) {
 ; CHECK-LABEL: f11:
 ; CHECK: vst %v24, 0(%r3,%r2)
 ; CHECK: br %r14
-  %addr = getelementptr i8, i8 *%base, i64 %index
-  %ptr = bitcast i8 *%addr to <16 x i8> *
-  store <16 x i8> %val, <16 x i8> *%ptr, align 1
+  %addr = getelementptr i8, ptr %base, i64 %index
+  store <16 x i8> %val, ptr %addr, align 1
   ret void
 }
 
 ; Test v2i8 stores.
-define void @f12(<2 x i8> %val, <2 x i8> *%ptr) {
+define void @f12(<2 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vsteh %v24, 0(%r2), 0
 ; CHECK: br %r14
-  store <2 x i8> %val, <2 x i8> *%ptr
+  store <2 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Test v4i8 stores.
-define void @f13(<4 x i8> %val, <4 x i8> *%ptr) {
+define void @f13(<4 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: vstef %v24, 0(%r2)
 ; CHECK: br %r14
-  store <4 x i8> %val, <4 x i8> *%ptr
+  store <4 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Test v8i8 stores.
-define void @f14(<8 x i8> %val, <8 x i8> *%ptr) {
+define void @f14(<8 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: vsteg %v24, 0(%r2)
 ; CHECK: br %r14
-  store <8 x i8> %val, <8 x i8> *%ptr
+  store <8 x i8> %val, ptr %ptr
   ret void
 }
 
 ; Test v2i16 stores.
-define void @f15(<2 x i16> %val, <2 x i16> *%ptr) {
+define void @f15(<2 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK: vstef %v24, 0(%r2), 0
 ; CHECK: br %r14
-  store <2 x i16> %val, <2 x i16> *%ptr
+  store <2 x i16> %val, ptr %ptr
   ret void
 }
 
 ; Test v4i16 stores.
-define void @f16(<4 x i16> %val, <4 x i16> *%ptr) {
+define void @f16(<4 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: vsteg %v24, 0(%r2)
 ; CHECK: br %r14
-  store <4 x i16> %val, <4 x i16> *%ptr
+  store <4 x i16> %val, ptr %ptr
   ret void
 }
 
 ; Test v2i32 stores.
-define void @f17(<2 x i32> %val, <2 x i32> *%ptr) {
+define void @f17(<2 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f17:
 ; CHECK: vsteg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  store <2 x i32> %val, <2 x i32> *%ptr
+  store <2 x i32> %val, ptr %ptr
   ret void
 }
 
 ; Test v2f32 stores.
-define void @f18(<2 x float> %val, <2 x float> *%ptr) {
+define void @f18(<2 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f18:
 ; CHECK: vsteg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  store <2 x float> %val, <2 x float> *%ptr
+  store <2 x float> %val, ptr %ptr
   ret void
 }
 
 ; Test quadword-aligned stores.
-define void @f19(<16 x i8> %val, <16 x i8> *%ptr) {
+define void @f19(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f19:
 ; CHECK: vst %v24, 0(%r2), 4
 ; CHECK: br %r14
-  store <16 x i8> %val, <16 x i8> *%ptr, align 16
+  store <16 x i8> %val, ptr %ptr, align 16
   ret void
 }
 
@@ -195,22 +193,21 @@ entry:
   ]
 
 bb1:
-  %C1 = call i64* @foo()
-  %I1 = insertelement <2 x i64*> poison, i64* %C1, i64 0
-  %S1 = shufflevector <2 x i64*> %I1, <2 x i64*> poison, <2 x i32> zeroinitializer
-  store <2 x i64*> %S1, <2 x i64*>* undef, align 8
+  %C1 = call ptr @foo()
+  %I1 = insertelement <2 x ptr> poison, ptr %C1, i64 0
+  %S1 = shufflevector <2 x ptr> %I1, <2 x ptr> poison, <2 x i32> zeroinitializer
+  store <2 x ptr> %S1, ptr undef, align 8
   br label %exit
 
 bb2:
-  %C2 = call i64* @foo()
-  %I2 = insertelement <2 x i64*> poison, i64* %C2, i64 0
-  %S2 = shufflevector <2 x i64*> %I2, <2 x i64*> poison, <2 x i32> zeroinitializer
-  %U = bitcast i64** undef to <2 x i64*>*
-  store <2 x i64*> %S2, <2 x i64*>* %U, align 8
+  %C2 = call ptr @foo()
+  %I2 = insertelement <2 x ptr> poison, ptr %C2, i64 0
+  %S2 = shufflevector <2 x ptr> %I2, <2 x ptr> poison, <2 x i32> zeroinitializer
+  store <2 x ptr> %S2, ptr undef, align 8
   br label %exit
 
 exit:
   ret void
 }
 
-declare i64* @foo()
+declare ptr @foo()

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-08.ll b/llvm/test/CodeGen/SystemZ/vec-move-08.ll
index 7c4a16c95403d..8d003ef1c9158 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-08.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-08.ll
@@ -3,319 +3,319 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test v16i8 insertion into the first element.
-define <16 x i8> @f1(<16 x i8> %val, i8 *%ptr) {
+define <16 x i8> @f1(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vleb %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i8, i8 *%ptr
+  %element = load i8, ptr %ptr
   %ret = insertelement <16 x i8> %val, i8 %element, i32 0
   ret <16 x i8> %ret
 }
 
 ; Test v16i8 insertion into the last element.
-define <16 x i8> @f2(<16 x i8> %val, i8 *%ptr) {
+define <16 x i8> @f2(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vleb %v24, 0(%r2), 15
 ; CHECK: br %r14
-  %element = load i8, i8 *%ptr
+  %element = load i8, ptr %ptr
   %ret = insertelement <16 x i8> %val, i8 %element, i32 15
   ret <16 x i8> %ret
 }
 
 ; Test v16i8 insertion with the highest in-range offset.
-define <16 x i8> @f3(<16 x i8> %val, i8 *%base) {
+define <16 x i8> @f3(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: vleb %v24, 4095(%r2), 10
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i32 4095
-  %element = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i32 4095
+  %element = load i8, ptr %ptr
   %ret = insertelement <16 x i8> %val, i8 %element, i32 10
   ret <16 x i8> %ret
 }
 
 ; Test v16i8 insertion with the first ouf-of-range offset.
-define <16 x i8> @f4(<16 x i8> %val, i8 *%base) {
+define <16 x i8> @f4(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vleb %v24, 0(%r2), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i32 4096
-  %element = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i32 4096
+  %element = load i8, ptr %ptr
   %ret = insertelement <16 x i8> %val, i8 %element, i32 5
   ret <16 x i8> %ret
 }
 
 ; Test v16i8 insertion into a variable element.
-define <16 x i8> @f5(<16 x i8> %val, i8 *%ptr, i32 %index) {
+define <16 x i8> @f5(<16 x i8> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f5:
 ; CHECK-NOT: vleb
 ; CHECK: br %r14
-  %element = load i8, i8 *%ptr
+  %element = load i8, ptr %ptr
   %ret = insertelement <16 x i8> %val, i8 %element, i32 %index
   ret <16 x i8> %ret
 }
 
 ; Test v8i16 insertion into the first element.
-define <8 x i16> @f6(<8 x i16> %val, i16 *%ptr) {
+define <8 x i16> @f6(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vleh %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %ret = insertelement <8 x i16> %val, i16 %element, i32 0
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into the last element.
-define <8 x i16> @f7(<8 x i16> %val, i16 *%ptr) {
+define <8 x i16> @f7(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vleh %v24, 0(%r2), 7
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %ret = insertelement <8 x i16> %val, i16 %element, i32 7
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion with the highest in-range offset.
-define <8 x i16> @f8(<8 x i16> %val, i16 *%base) {
+define <8 x i16> @f8(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: vleh %v24, 4094(%r2), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2047
-  %element = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i32 2047
+  %element = load i16, ptr %ptr
   %ret = insertelement <8 x i16> %val, i16 %element, i32 5
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion with the first ouf-of-range offset.
-define <8 x i16> @f9(<8 x i16> %val, i16 *%base) {
+define <8 x i16> @f9(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vleh %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2048
-  %element = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i32 2048
+  %element = load i16, ptr %ptr
   %ret = insertelement <8 x i16> %val, i16 %element, i32 1
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into a variable element.
-define <8 x i16> @f10(<8 x i16> %val, i16 *%ptr, i32 %index) {
+define <8 x i16> @f10(<8 x i16> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f10:
 ; CHECK-NOT: vleh
 ; CHECK: br %r14
-  %element = load i16, i16 *%ptr
+  %element = load i16, ptr %ptr
   %ret = insertelement <8 x i16> %val, i16 %element, i32 %index
   ret <8 x i16> %ret
 }
 
 ; Test v4i32 insertion into the first element.
-define <4 x i32> @f11(<4 x i32> %val, i32 *%ptr) {
+define <4 x i32> @f11(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: vlef %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 0
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into the last element.
-define <4 x i32> @f12(<4 x i32> %val, i32 *%ptr) {
+define <4 x i32> @f12(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vlef %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 3
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion with the highest in-range offset.
-define <4 x i32> @f13(<4 x i32> %val, i32 *%base) {
+define <4 x i32> @f13(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f13:
 ; CHECK: vlef %v24, 4092(%r2), 2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1023
-  %element = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i32 1023
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 2
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion with the first ouf-of-range offset.
-define <4 x i32> @f14(<4 x i32> %val, i32 *%base) {
+define <4 x i32> @f14(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f14:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlef %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1024
-  %element = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i32 1024
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 1
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into a variable element.
-define <4 x i32> @f15(<4 x i32> %val, i32 *%ptr, i32 %index) {
+define <4 x i32> @f15(<4 x i32> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: vlef
 ; CHECK: br %r14
-  %element = load i32, i32 *%ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 %index
   ret <4 x i32> %ret
 }
 
 ; Test v2i64 insertion into the first element.
-define <2 x i64> @f16(<2 x i64> %val, i64 *%ptr) {
+define <2 x i64> @f16(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: vleg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 0
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion into the last element.
-define <2 x i64> @f17(<2 x i64> %val, i64 *%ptr) {
+define <2 x i64> @f17(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f17:
 ; CHECK: vleg %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 1
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion with the highest in-range offset.
-define <2 x i64> @f18(<2 x i64> %val, i64 *%base) {
+define <2 x i64> @f18(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f18:
 ; CHECK: vleg %v24, 4088(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 511
-  %element = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 511
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 1
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion with the first ouf-of-range offset.
-define <2 x i64> @f19(<2 x i64> %val, i64 *%base) {
+define <2 x i64> @f19(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f19:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vleg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 512
-  %element = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 512
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 0
   ret <2 x i64> %ret
 }
 
 ; Test v2i64 insertion into a variable element.
-define <2 x i64> @f20(<2 x i64> %val, i64 *%ptr, i32 %index) {
+define <2 x i64> @f20(<2 x i64> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f20:
 ; CHECK-NOT: vleg
 ; CHECK: br %r14
-  %element = load i64, i64 *%ptr
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 %index
   ret <2 x i64> %ret
 }
 
 ; Test v4f32 insertion into the first element.
-define <4 x float> @f21(<4 x float> %val, float *%ptr) {
+define <4 x float> @f21(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f21:
 ; CHECK: vlef %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load float, float *%ptr
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 0
   ret <4 x float> %ret
 }
 
 ; Test v4f32 insertion into the last element.
-define <4 x float> @f22(<4 x float> %val, float *%ptr) {
+define <4 x float> @f22(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f22:
 ; CHECK: vlef %v24, 0(%r2), 3
 ; CHECK: br %r14
-  %element = load float, float *%ptr
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 3
   ret <4 x float> %ret
 }
 
 ; Test v4f32 insertion with the highest in-range offset.
-define <4 x float> @f23(<4 x float> %val, float *%base) {
+define <4 x float> @f23(<4 x float> %val, ptr %base) {
 ; CHECK-LABEL: f23:
 ; CHECK: vlef %v24, 4092(%r2), 2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i32 1023
-  %element = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i32 1023
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 2
   ret <4 x float> %ret
 }
 
 ; Test v4f32 insertion with the first ouf-of-range offset.
-define <4 x float> @f24(<4 x float> %val, float *%base) {
+define <4 x float> @f24(<4 x float> %val, ptr %base) {
 ; CHECK-LABEL: f24:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlef %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i32 1024
-  %element = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i32 1024
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 1
   ret <4 x float> %ret
 }
 
 ; Test v4f32 insertion into a variable element.
-define <4 x float> @f25(<4 x float> %val, float *%ptr, i32 %index) {
+define <4 x float> @f25(<4 x float> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f25:
 ; CHECK-NOT: vlef
 ; CHECK: br %r14
-  %element = load float, float *%ptr
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 %index
   ret <4 x float> %ret
 }
 
 ; Test v2f64 insertion into the first element.
-define <2 x double> @f26(<2 x double> %val, double *%ptr) {
+define <2 x double> @f26(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f26:
 ; CHECK: vleg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %element = load double, double *%ptr
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 0
   ret <2 x double> %ret
 }
 
 ; Test v2f64 insertion into the last element.
-define <2 x double> @f27(<2 x double> %val, double *%ptr) {
+define <2 x double> @f27(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f27:
 ; CHECK: vleg %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %element = load double, double *%ptr
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 1
   ret <2 x double> %ret
 }
 
 ; Test v2f64 insertion with the highest in-range offset.
-define <2 x double> @f28(<2 x double> %val, double *%base) {
+define <2 x double> @f28(<2 x double> %val, ptr %base) {
 ; CHECK-LABEL: f28:
 ; CHECK: vleg %v24, 4088(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i32 511
-  %element = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i32 511
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 1
   ret <2 x double> %ret
 }
 
 ; Test v2f64 insertion with the first ouf-of-range offset.
-define <2 x double> @f29(<2 x double> %val, double *%base) {
+define <2 x double> @f29(<2 x double> %val, ptr %base) {
 ; CHECK-LABEL: f29:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vleg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i32 512
-  %element = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i32 512
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 0
   ret <2 x double> %ret
 }
 
 ; Test v2f64 insertion into a variable element.
-define <2 x double> @f30(<2 x double> %val, double *%ptr, i32 %index) {
+define <2 x double> @f30(<2 x double> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f30:
 ; CHECK-NOT: vleg
 ; CHECK: br %r14
-  %element = load double, double *%ptr
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 %index
   ret <2 x double> %ret
 }
@@ -328,8 +328,8 @@ define <4 x i32> @f31(<4 x i32> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 0
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to i32 *
-  %element = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 0
   ret <4 x i32> %ret
 }
@@ -342,8 +342,8 @@ define <4 x i32> @f32(<4 x i32> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 3
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to i32 *
-  %element = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 3
   ret <4 x i32> %ret
 }
@@ -357,8 +357,8 @@ define <4 x i32> @f33(<4 x i32> %val, <4 x i32> %index, i64 %base) {
   %ext = zext i32 %elem to i64
   %add1 = add i64 %base, %ext
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i32 *
-  %element = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 1
   ret <4 x i32> %ret
 }
@@ -370,8 +370,8 @@ define <2 x i64> @f34(<2 x i64> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 0
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to i64 *
-  %element = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 0
   ret <2 x i64> %ret
 }
@@ -383,8 +383,8 @@ define <2 x i64> @f35(<2 x i64> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 1
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to i64 *
-  %element = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 1
   ret <2 x i64> %ret
 }
@@ -397,8 +397,8 @@ define <4 x float> @f36(<4 x float> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 0
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to float *
-  %element = load float, float *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 0
   ret <4 x float> %ret
 }
@@ -411,8 +411,8 @@ define <4 x float> @f37(<4 x float> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 3
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to float *
-  %element = load float, float *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load float, ptr %ptr
   %ret = insertelement <4 x float> %val, float %element, i32 3
   ret <4 x float> %ret
 }
@@ -424,8 +424,8 @@ define <2 x double> @f38(<2 x double> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 0
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to double *
-  %element = load double, double *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 0
   ret <2 x double> %ret
 }
@@ -437,14 +437,14 @@ define <2 x double> @f39(<2 x double> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 1
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to double *
-  %element = load double, double *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load double, ptr %ptr
   %ret = insertelement <2 x double> %val, double %element, i32 1
   ret <2 x double> %ret
 }
 
 ; Test a v4i32 gather where the load is chained.
-define void @f40(<4 x i32> %val, <4 x i32> %index, i64 %base, <4 x i32> *%res) {
+define void @f40(<4 x i32> %val, <4 x i32> %index, i64 %base, ptr %res) {
 ; CHECK-LABEL: f40:
 ; CHECK: vgef %v24, 0(%v26,%r2), 1
 ; CHECK: vst %v24, 0(%r3)
@@ -452,25 +452,25 @@ define void @f40(<4 x i32> %val, <4 x i32> %index, i64 %base, <4 x i32> *%res) {
   %elem = extractelement <4 x i32> %index, i32 1
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to i32 *
-  %element = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load i32, ptr %ptr
   %ret = insertelement <4 x i32> %val, i32 %element, i32 1
-  store <4 x i32> %ret, <4 x i32> *%res
+  store <4 x i32> %ret, ptr %res
   ret void
 }
 
 ; Test a v2i64 gather where the load is chained.
-define void @f41(<2 x i64> %val, <2 x i64> %index, i64 %base, <2 x i64> *%res) {
+define void @f41(<2 x i64> %val, <2 x i64> %index, i64 %base, ptr %res) {
 ; CHECK-LABEL: f41:
 ; CHECK: vgeg %v24, 0(%v26,%r2), 1
 ; CHECK: vst %v24, 0(%r3)
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 1
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to i64 *
-  %element = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add to ptr
+  %element = load i64, ptr %ptr
   %ret = insertelement <2 x i64> %val, i64 %element, i32 1
-  store <2 x i64> %ret, <2 x i64> *%res
+  store <2 x i64> %ret, ptr %res
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-10.ll b/llvm/test/CodeGen/SystemZ/vec-move-10.ll
index 894d0c2b41fa0..3c3862bf9e192 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-10.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-10.ll
@@ -3,375 +3,375 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test v16i8 extraction from the first element.
-define void @f1(<16 x i8> %val, i8 *%ptr) {
+define void @f1(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vsteb %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <16 x i8> %val, i32 0
-  store i8 %element, i8 *%ptr
+  store i8 %element, ptr %ptr
   ret void
 }
 
 ; Test v16i8 extraction from the last element.
-define void @f2(<16 x i8> %val, i8 *%ptr) {
+define void @f2(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vsteb %v24, 0(%r2), 15
 ; CHECK: br %r14
   %element = extractelement <16 x i8> %val, i32 15
-  store i8 %element, i8 *%ptr
+  store i8 %element, ptr %ptr
   ret void
 }
 
 ; Test v16i8 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f3(<16 x i8> %val, i8 *%ptr) {
+define void @f3(<16 x i8> %val, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: vsteb %v24, 0(%r2), 16
 ; CHECK: br %r14
   %element = extractelement <16 x i8> %val, i32 16
-  store i8 %element, i8 *%ptr
+  store i8 %element, ptr %ptr
   ret void
 }
 
 ; Test v16i8 extraction with the highest in-range offset.
-define void @f4(<16 x i8> %val, i8 *%base) {
+define void @f4(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f4:
 ; CHECK: vsteb %v24, 4095(%r2), 10
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i32 4095
+  %ptr = getelementptr i8, ptr %base, i32 4095
   %element = extractelement <16 x i8> %val, i32 10
-  store i8 %element, i8 *%ptr
+  store i8 %element, ptr %ptr
   ret void
 }
 
 ; Test v16i8 extraction with the first ouf-of-range offset.
-define void @f5(<16 x i8> %val, i8 *%base) {
+define void @f5(<16 x i8> %val, ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vsteb %v24, 0(%r2), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i32 4096
+  %ptr = getelementptr i8, ptr %base, i32 4096
   %element = extractelement <16 x i8> %val, i32 5
-  store i8 %element, i8 *%ptr
+  store i8 %element, ptr %ptr
   ret void
 }
 
 ; Test v16i8 extraction from a variable element.
-define void @f6(<16 x i8> %val, i8 *%ptr, i32 %index) {
+define void @f6(<16 x i8> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f6:
 ; CHECK-NOT: vsteb
 ; CHECK: br %r14
   %element = extractelement <16 x i8> %val, i32 %index
-  store i8 %element, i8 *%ptr
+  store i8 %element, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction from the first element.
-define void @f7(<8 x i16> %val, i16 *%ptr) {
+define void @f7(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vsteh %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 0
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction from the last element.
-define void @f8(<8 x i16> %val, i16 *%ptr) {
+define void @f8(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vsteh %v24, 0(%r2), 7
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 7
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f9(<8 x i16> %val, i16 *%ptr) {
+define void @f9(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK-NOT: vsteh %v24, 0(%r2), 8
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 8
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction with the highest in-range offset.
-define void @f10(<8 x i16> %val, i16 *%base) {
+define void @f10(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f10:
 ; CHECK: vsteh %v24, 4094(%r2), 5
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2047
+  %ptr = getelementptr i16, ptr %base, i32 2047
   %element = extractelement <8 x i16> %val, i32 5
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction with the first ouf-of-range offset.
-define void @f11(<8 x i16> %val, i16 *%base) {
+define void @f11(<8 x i16> %val, ptr %base) {
 ; CHECK-LABEL: f11:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vsteh %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i32 2048
+  %ptr = getelementptr i16, ptr %base, i32 2048
   %element = extractelement <8 x i16> %val, i32 1
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v8i16 extraction from a variable element.
-define void @f12(<8 x i16> %val, i16 *%ptr, i32 %index) {
+define void @f12(<8 x i16> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f12:
 ; CHECK-NOT: vsteh
 ; CHECK: br %r14
   %element = extractelement <8 x i16> %val, i32 %index
-  store i16 %element, i16 *%ptr
+  store i16 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction from the first element.
-define void @f13(<4 x i32> %val, i32 *%ptr) {
+define void @f13(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: vstef %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 0
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction from the last element.
-define void @f14(<4 x i32> %val, i32 *%ptr) {
+define void @f14(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f14:
 ; CHECK: vstef %v24, 0(%r2), 3
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 3
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f15(<4 x i32> %val, i32 *%ptr) {
+define void @f15(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f15:
 ; CHECK-NOT: vstef %v24, 0(%r2), 4
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 4
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction with the highest in-range offset.
-define void @f16(<4 x i32> %val, i32 *%base) {
+define void @f16(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f16:
 ; CHECK: vstef %v24, 4092(%r2), 2
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1023
+  %ptr = getelementptr i32, ptr %base, i32 1023
   %element = extractelement <4 x i32> %val, i32 2
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction with the first ouf-of-range offset.
-define void @f17(<4 x i32> %val, i32 *%base) {
+define void @f17(<4 x i32> %val, ptr %base) {
 ; CHECK-LABEL: f17:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vstef %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i32 1024
+  %ptr = getelementptr i32, ptr %base, i32 1024
   %element = extractelement <4 x i32> %val, i32 1
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v4i32 extraction from a variable element.
-define void @f18(<4 x i32> %val, i32 *%ptr, i32 %index) {
+define void @f18(<4 x i32> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f18:
 ; CHECK-NOT: vstef
 ; CHECK: br %r14
   %element = extractelement <4 x i32> %val, i32 %index
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction from the first element.
-define void @f19(<2 x i64> %val, i64 *%ptr) {
+define void @f19(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f19:
 ; CHECK: vsteg %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 0
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction from the last element.
-define void @f20(<2 x i64> %val, i64 *%ptr) {
+define void @f20(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f20:
 ; CHECK: vsteg %v24, 0(%r2), 1
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 1
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f21(<2 x i64> %val, i64 *%ptr) {
+define void @f21(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f21:
 ; CHECK-NOT: vsteg %v24, 0(%r2), 2
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 2
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction with the highest in-range offset.
-define void @f22(<2 x i64> %val, i64 *%base) {
+define void @f22(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f22:
 ; CHECK: vsteg %v24, 4088(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 511
+  %ptr = getelementptr i64, ptr %base, i32 511
   %element = extractelement <2 x i64> %val, i32 1
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction with the first ouf-of-range offset.
-define void @f23(<2 x i64> %val, i64 *%base) {
+define void @f23(<2 x i64> %val, ptr %base) {
 ; CHECK-LABEL: f23:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vsteg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 512
+  %ptr = getelementptr i64, ptr %base, i32 512
   %element = extractelement <2 x i64> %val, i32 0
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
 ; Test v2i64 extraction from a variable element.
-define void @f24(<2 x i64> %val, i64 *%ptr, i32 %index) {
+define void @f24(<2 x i64> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f24:
 ; CHECK-NOT: vsteg
 ; CHECK: br %r14
   %element = extractelement <2 x i64> %val, i32 %index
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
 ; Test v4f32 extraction from the first element.
-define void @f25(<4 x float> %val, float *%ptr) {
+define void @f25(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f25:
 ; CHECK: vstef %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <4 x float> %val, i32 0
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
 ; Test v4f32 extraction from the last element.
-define void @f26(<4 x float> %val, float *%ptr) {
+define void @f26(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f26:
 ; CHECK: vstef %v24, 0(%r2), 3
 ; CHECK: br %r14
   %element = extractelement <4 x float> %val, i32 3
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
 ; Test v4f32 extraction of an invalid element.  This must compile,
 ; but we don't care what it does.
-define void @f27(<4 x float> %val, float *%ptr) {
+define void @f27(<4 x float> %val, ptr %ptr) {
 ; CHECK-LABEL: f27:
 ; CHECK-NOT: vstef %v24, 0(%r2), 4
 ; CHECK: br %r14
   %element = extractelement <4 x float> %val, i32 4
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
 ; Test v4f32 extraction with the highest in-range offset.
-define void @f28(<4 x float> %val, float *%base) {
+define void @f28(<4 x float> %val, ptr %base) {
 ; CHECK-LABEL: f28:
 ; CHECK: vstef %v24, 4092(%r2), 2
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i32 1023
+  %ptr = getelementptr float, ptr %base, i32 1023
   %element = extractelement <4 x float> %val, i32 2
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
 ; Test v4f32 extraction with the first ouf-of-range offset.
-define void @f29(<4 x float> %val, float *%base) {
+define void @f29(<4 x float> %val, ptr %base) {
 ; CHECK-LABEL: f29:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vstef %v24, 0(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i32 1024
+  %ptr = getelementptr float, ptr %base, i32 1024
   %element = extractelement <4 x float> %val, i32 1
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
 ; Test v4f32 extraction from a variable element.
-define void @f30(<4 x float> %val, float *%ptr, i32 %index) {
+define void @f30(<4 x float> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f30:
 ; CHECK-NOT: vstef
 ; CHECK: br %r14
   %element = extractelement <4 x float> %val, i32 %index
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
 ; Test v2f64 extraction from the first element.
-define void @f32(<2 x double> %val, double *%ptr) {
+define void @f32(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f32:
 ; CHECK: vsteg %v24, 0(%r2), 0
 ; CHECK: br %r14
   %element = extractelement <2 x double> %val, i32 0
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }
 
 ; Test v2f64 extraction from the last element.
-define void @f33(<2 x double> %val, double *%ptr) {
+define void @f33(<2 x double> %val, ptr %ptr) {
 ; CHECK-LABEL: f33:
 ; CHECK: vsteg %v24, 0(%r2), 1
 ; CHECK: br %r14
   %element = extractelement <2 x double> %val, i32 1
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }
 
 ; Test v2f64 extraction with the highest in-range offset.
-define void @f34(<2 x double> %val, double *%base) {
+define void @f34(<2 x double> %val, ptr %base) {
 ; CHECK-LABEL: f34:
 ; CHECK: vsteg %v24, 4088(%r2), 1
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i32 511
+  %ptr = getelementptr double, ptr %base, i32 511
   %element = extractelement <2 x double> %val, i32 1
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }
 
 ; Test v2f64 extraction with the first ouf-of-range offset.
-define void @f35(<2 x double> %val, double *%base) {
+define void @f35(<2 x double> %val, ptr %base) {
 ; CHECK-LABEL: f35:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vsteg %v24, 0(%r2), 0
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i32 512
+  %ptr = getelementptr double, ptr %base, i32 512
   %element = extractelement <2 x double> %val, i32 0
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }
 
 ; Test v2f64 extraction from a variable element.
-define void @f36(<2 x double> %val, double *%ptr, i32 %index) {
+define void @f36(<2 x double> %val, ptr %ptr, i32 %index) {
 ; CHECK-LABEL: f36:
 ; CHECK-NOT: vsteg
 ; CHECK: br %r14
   %element = extractelement <2 x double> %val, i32 %index
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }
 
@@ -383,9 +383,9 @@ define void @f37(<4 x i32> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 0
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to i32 *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <4 x i32> %val, i32 0
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
@@ -397,9 +397,9 @@ define void @f38(<4 x i32> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 3
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to i32 *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <4 x i32> %val, i32 3
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
@@ -412,9 +412,9 @@ define void @f39(<4 x i32> %val, <4 x i32> %index, i64 %base) {
   %ext = zext i32 %elem to i64
   %add1 = add i64 %base, %ext
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i32 *
+  %ptr = inttoptr i64 %add2 to ptr
   %element = extractelement <4 x i32> %val, i32 1
-  store i32 %element, i32 *%ptr
+  store i32 %element, ptr %ptr
   ret void
 }
 
@@ -425,9 +425,9 @@ define void @f40(<2 x i64> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 0
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to i64 *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <2 x i64> %val, i32 0
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
@@ -438,9 +438,9 @@ define void @f41(<2 x i64> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 1
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to i64 *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <2 x i64> %val, i32 1
-  store i64 %element, i64 *%ptr
+  store i64 %element, ptr %ptr
   ret void
 }
 
@@ -452,9 +452,9 @@ define void @f42(<4 x float> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 0
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to float *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <4 x float> %val, i32 0
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
@@ -466,9 +466,9 @@ define void @f43(<4 x float> %val, <4 x i32> %index, i64 %base) {
   %elem = extractelement <4 x i32> %index, i32 3
   %ext = zext i32 %elem to i64
   %add = add i64 %base, %ext
-  %ptr = inttoptr i64 %add to float *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <4 x float> %val, i32 3
-  store float %element, float *%ptr
+  store float %element, ptr %ptr
   ret void
 }
 
@@ -479,9 +479,9 @@ define void @f44(<2 x double> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 0
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to double *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <2 x double> %val, i32 0
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }
 
@@ -492,8 +492,8 @@ define void @f45(<2 x double> %val, <2 x i64> %index, i64 %base) {
 ; CHECK: br %r14
   %elem = extractelement <2 x i64> %index, i32 1
   %add = add i64 %base, %elem
-  %ptr = inttoptr i64 %add to double *
+  %ptr = inttoptr i64 %add to ptr
   %element = extractelement <2 x double> %val, i32 1
-  store double %element, double *%ptr
+  store double %element, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-12.ll b/llvm/test/CodeGen/SystemZ/vec-move-12.ll
index bc8ff97f8057f..c862d86de64e8 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-12.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-12.ll
@@ -3,121 +3,121 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test v16i8 insertion into an undef, with an arbitrary index.
-define <16 x i8> @f1(i8 *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlrepb %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> undef, i8 %val, i32 12
   ret <16 x i8> %ret
 }
 
 ; Test v16i8 insertion into an undef, with the first good index for VLVGP.
-define <16 x i8> @f2(i8 *%ptr) {
+define <16 x i8> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: {{vlrepb|vllezb}} %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> undef, i8 %val, i32 7
   ret <16 x i8> %ret
 }
 
 ; Test v16i8 insertion into an undef, with the second good index for VLVGP.
-define <16 x i8> @f3(i8 *%ptr) {
+define <16 x i8> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlrepb %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> undef, i8 %val, i32 15
   ret <16 x i8> %ret
 }
 
 ; Test v8i16 insertion into an undef, with an arbitrary index.
-define <8 x i16> @f4(i16 *%ptr) {
+define <8 x i16> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vlreph %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ret = insertelement <8 x i16> undef, i16 %val, i32 5
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into an undef, with the first good index for VLVGP.
-define <8 x i16> @f5(i16 *%ptr) {
+define <8 x i16> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: {{vlreph|vllezh}} %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ret = insertelement <8 x i16> undef, i16 %val, i32 3
   ret <8 x i16> %ret
 }
 
 ; Test v8i16 insertion into an undef, with the second good index for VLVGP.
-define <8 x i16> @f6(i16 *%ptr) {
+define <8 x i16> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlreph %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ret = insertelement <8 x i16> undef, i16 %val, i32 7
   ret <8 x i16> %ret
 }
 
 ; Test v4i32 insertion into an undef, with an arbitrary index.
-define <4 x i32> @f7(i32 *%ptr) {
+define <4 x i32> @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ret = insertelement <4 x i32> undef, i32 %val, i32 2
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into an undef, with the first good index for VLVGP.
-define <4 x i32> @f8(i32 *%ptr) {
+define <4 x i32> @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: {{vlrepf|vllezf}} %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ret = insertelement <4 x i32> undef, i32 %val, i32 1
   ret <4 x i32> %ret
 }
 
 ; Test v4i32 insertion into an undef, with the second good index for VLVGP.
-define <4 x i32> @f9(i32 *%ptr) {
+define <4 x i32> @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ret = insertelement <4 x i32> undef, i32 %val, i32 3
   ret <4 x i32> %ret
 }
 
 ; Test v2i64 insertion into an undef.
-define <2 x i64> @f10(i64 *%ptr) {
+define <2 x i64> @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK-NEXT: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %ret = insertelement <2 x i64> undef, i64 %val, i32 1
   ret <2 x i64> %ret
 }
 
 ; Test v4f32 insertion into an undef.
-define <4 x float> @f11(float *%ptr) {
+define <4 x float> @f11(ptr %ptr) {
 ; CHECK-LABEL: f11:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %ret = insertelement <4 x float> undef, float %val, i32 2
   ret <4 x float> %ret
 }
 
 ; Test v2f64 insertion into an undef.
-define <2 x double> @f12(double *%ptr) {
+define <2 x double> @f12(ptr %ptr) {
 ; CHECK-LABEL: f12:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %ret = insertelement <2 x double> undef, double %val, i32 1
   ret <2 x double> %ret
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-14.ll b/llvm/test/CodeGen/SystemZ/vec-move-14.ll
index e6415e84c9c40..4f3395d7a3509 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-14.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-14.ll
@@ -3,136 +3,136 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test VLLEZB.
-define <16 x i8> @f1(i8 *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vllezb %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> zeroinitializer, i8 %val, i32 7
   ret <16 x i8> %ret
 }
 
 ; Test VLLEZB with the highest in-range offset.
-define <16 x i8> @f2(i8 *%base) {
+define <16 x i8> @f2(ptr %base) {
 ; CHECK-LABEL: f2:
 ; CHECK: vllezb %v24, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> zeroinitializer, i8 %val, i32 7
   ret <16 x i8> %ret
 }
 
 ; Test VLLEZB with the next highest offset.
-define <16 x i8> @f3(i8 *%base) {
+define <16 x i8> @f3(ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK-NOT: vllezb %v24, 4096(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> zeroinitializer, i8 %val, i32 7
   ret <16 x i8> %ret
 }
 
 ; Test that VLLEZB allows an index.
-define <16 x i8> @f4(i8 *%base, i64 %index) {
+define <16 x i8> @f4(ptr %base, i64 %index) {
 ; CHECK-LABEL: f4:
 ; CHECK: vllezb %v24, 0({{%r2,%r3|%r3,%r2}})
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 %index
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i64 %index
+  %val = load i8, ptr %ptr
   %ret = insertelement <16 x i8> zeroinitializer, i8 %val, i32 7
   ret <16 x i8> %ret
 }
 
 ; Test VLLEZH.
-define <8 x i16> @f5(i16 *%ptr) {
+define <8 x i16> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vllezh %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i16, i16 *%ptr
+  %val = load i16, ptr %ptr
   %ret = insertelement <8 x i16> zeroinitializer, i16 %val, i32 3
   ret <8 x i16> %ret
 }
 
 ; Test VLLEZF.
-define <4 x i32> @f6(i32 *%ptr) {
+define <4 x i32> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vllezf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ret = insertelement <4 x i32> zeroinitializer, i32 %val, i32 1
   ret <4 x i32> %ret
 }
 
 ; Test VLLEZG.
-define <2 x i64> @f7(i64 *%ptr) {
+define <2 x i64> @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vllezg %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i64, i64 *%ptr
+  %val = load i64, ptr %ptr
   %ret = insertelement <2 x i64> zeroinitializer, i64 %val, i32 0
   ret <2 x i64> %ret
 }
 
 ; Test VLLEZF with a float.
-define <4 x float> @f8(float *%ptr) {
+define <4 x float> @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vllezf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %ret = insertelement <4 x float> zeroinitializer, float %val, i32 1
   ret <4 x float> %ret
 }
 
 ; Test VLLEZG with a double.
-define <2 x double> @f9(double *%ptr) {
+define <2 x double> @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vllezg %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %ret = insertelement <2 x double> zeroinitializer, double %val, i32 0
   ret <2 x double> %ret
 }
 
 ; Test VLLEZF with a float when the result is stored to memory.
-define void @f10(float *%ptr, <4 x float> *%res) {
+define void @f10(ptr %ptr, ptr %res) {
 ; CHECK-LABEL: f10:
 ; CHECK: vllezf [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: vst [[REG]], 0(%r3)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %ret = insertelement <4 x float> zeroinitializer, float %val, i32 1
-  store <4 x float> %ret, <4 x float> *%res
+  store <4 x float> %ret, ptr %res
   ret void
 }
 
 ; Test VLLEZG with a double when the result is stored to memory.
-define void @f11(double *%ptr, <2 x double> *%res) {
+define void @f11(ptr %ptr, ptr %res) {
 ; CHECK-LABEL: f11:
 ; CHECK: vllezg [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: vst [[REG]], 0(%r3)
 ; CHECK: br %r14
-  %val = load double, double *%ptr
+  %val = load double, ptr %ptr
   %ret = insertelement <2 x double> zeroinitializer, double %val, i32 0
-  store <2 x double> %ret, <2 x double> *%res
+  store <2 x double> %ret, ptr %res
   ret void
 }
 
 ; Test VLLEZG when the zeroinitializer is shared.
-define void @f12(i64 *%ptr, <2 x i64> *%res) {
+define void @f12(ptr %ptr, ptr %res) {
 ; CHECK-LABEL: f12:
 ; CHECK: vllezg [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: vst [[REG]], 0(%r3)
 ; CHECK: vllezg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vst [[REG1]], 0(%r3)
 ; CHECK: br %r14
-  %val = load volatile i64, i64 *%ptr
+  %val = load volatile i64, ptr %ptr
   %ret = insertelement <2 x i64> zeroinitializer, i64 %val, i32 0
-  store volatile <2 x i64> %ret, <2 x i64> *%res
-  %val1 = load volatile i64, i64 *%ptr
+  store volatile <2 x i64> %ret, ptr %res
+  %val1 = load volatile i64, ptr %ptr
   %ret1 = insertelement <2 x i64> zeroinitializer, i64 %val1, i32 0
-  store volatile <2 x i64> %ret1, <2 x i64> *%res
+  store volatile <2 x i64> %ret1, ptr %res
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-15.ll b/llvm/test/CodeGen/SystemZ/vec-move-15.ll
index 503627c163c64..c68e96520ea01 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-15.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-15.ll
@@ -3,103 +3,103 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test a v16i1->v16i8 extension.
-define <16 x i8> @f1(<16 x i1> *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <16 x i1>, <16 x i1> *%ptr
+  %val = load <16 x i1>, ptr %ptr
   %ret = sext <16 x i1> %val to <16 x i8>
   ret <16 x i8> %ret
 }
 
 ; Test a v8i1->v8i16 extension.
-define <8 x i16> @f2(<8 x i1> *%ptr) {
+define <8 x i16> @f2(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <8 x i1>, <8 x i1> *%ptr
+  %val = load <8 x i1>, ptr %ptr
   %ret = sext <8 x i1> %val to <8 x i16>
   ret <8 x i16> %ret
 }
 
 ; Test a v8i8->v8i16 extension.
-define <8 x i16> @f3(<8 x i8> *%ptr) {
+define <8 x i16> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlrepg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuphb %v24, [[REG1]]
 ; CHECK: br %r14
-  %val = load <8 x i8>, <8 x i8> *%ptr
+  %val = load <8 x i8>, ptr %ptr
   %ret = sext <8 x i8> %val to <8 x i16>
   ret <8 x i16> %ret
 }
 
 ; Test a v4i1->v4i32 extension.
-define <4 x i32> @f4(<4 x i1> *%ptr) {
+define <4 x i32> @f4(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <4 x i1>, <4 x i1> *%ptr
+  %val = load <4 x i1>, ptr %ptr
   %ret = sext <4 x i1> %val to <4 x i32>
   ret <4 x i32> %ret
 }
 
 ; Test a v4i8->v4i32 extension.
-define <4 x i32> @f5(<4 x i8> *%ptr) {
+define <4 x i32> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vlrepf [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuphb [[REG2:%v[0-9]+]], [[REG1]]
 ; CHECK: vuphh %v24, [[REG2]]
 ; CHECK: br %r14
-  %val = load <4 x i8>, <4 x i8> *%ptr
+  %val = load <4 x i8>, ptr %ptr
   %ret = sext <4 x i8> %val to <4 x i32>
   ret <4 x i32> %ret
 }
 
 ; Test a v4i16->v4i32 extension.
-define <4 x i32> @f6(<4 x i16> *%ptr) {
+define <4 x i32> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlrepg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuphh %v24, [[REG1]]
 ; CHECK: br %r14
-  %val = load <4 x i16>, <4 x i16> *%ptr
+  %val = load <4 x i16>, ptr %ptr
   %ret = sext <4 x i16> %val to <4 x i32>
   ret <4 x i32> %ret
 }
 
 ; Test a v2i1->v2i64 extension.
-define <2 x i64> @f7(<2 x i1> *%ptr) {
+define <2 x i64> @f7(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <2 x i1>, <2 x i1> *%ptr
+  %val = load <2 x i1>, ptr %ptr
   %ret = sext <2 x i1> %val to <2 x i64>
   ret <2 x i64> %ret
 }
 
 ; Test a v2i8->v2i64 extension.
-define <2 x i64> @f8(<2 x i8> *%ptr) {
+define <2 x i64> @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vlreph [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuphb [[REG2:%v[0-9]+]], [[REG1]]
 ; CHECK: vuphh [[REG3:%v[0-9]+]], [[REG2]]
 ; CHECK: vuphf %v24, [[REG3]]
 ; CHECK: br %r14
-  %val = load <2 x i8>, <2 x i8> *%ptr
+  %val = load <2 x i8>, ptr %ptr
   %ret = sext <2 x i8> %val to <2 x i64>
   ret <2 x i64> %ret
 }
 
 ; Test a v2i16->v2i64 extension.
-define <2 x i64> @f9(<2 x i16> *%ptr) {
+define <2 x i64> @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vlrepf [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuphh [[REG2:%v[0-9]+]], [[REG1]]
 ; CHECK: vuphf %v24, [[REG2]]
 ; CHECK: br %r14
-  %val = load <2 x i16>, <2 x i16> *%ptr
+  %val = load <2 x i16>, ptr %ptr
   %ret = sext <2 x i16> %val to <2 x i64>
   ret <2 x i64> %ret
 }
 
 ; Test a v2i32->v2i64 extension.
-define <2 x i64> @f10(<2 x i32> *%ptr) {
+define <2 x i64> @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: vlrepg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuphf %v24, [[REG1]]
 ; CHECK: br %r14
-  %val = load <2 x i32>, <2 x i32> *%ptr
+  %val = load <2 x i32>, ptr %ptr
   %ret = sext <2 x i32> %val to <2 x i64>
   ret <2 x i64> %ret
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-16.ll b/llvm/test/CodeGen/SystemZ/vec-move-16.ll
index cc8237bcfa298..9d7d48c1d097c 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-16.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-16.ll
@@ -3,105 +3,105 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test a v16i1->v16i8 extension.
-define <16 x i8> @f1(<16 x i1> *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <16 x i1>, <16 x i1> *%ptr
+  %val = load <16 x i1>, ptr %ptr
   %ret = zext <16 x i1> %val to <16 x i8>
   ret <16 x i8> %ret
 }
 
 ; Test a v8i1->v8i16 extension.
-define <8 x i16> @f2(<8 x i1> *%ptr) {
+define <8 x i16> @f2(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <8 x i1>, <8 x i1> *%ptr
+  %val = load <8 x i1>, ptr %ptr
   %ret = zext <8 x i1> %val to <8 x i16>
   ret <8 x i16> %ret
 }
 
 ; Test a v8i8->v8i16 extension.
-define <8 x i16> @f3(<8 x i8> *%ptr) {
+define <8 x i16> @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vlrepg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuplhb %v24, [[REG1]]
 ; CHECK: br %r14
-  %val = load <8 x i8>, <8 x i8> *%ptr
+  %val = load <8 x i8>, ptr %ptr
   %ret = zext <8 x i8> %val to <8 x i16>
   ret <8 x i16> %ret
 }
 
 ; Test a v4i1->v4i32 extension.
-define <4 x i32> @f4(<4 x i1> *%ptr) {
+define <4 x i32> @f4(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <4 x i1>, <4 x i1> *%ptr
+  %val = load <4 x i1>, ptr %ptr
   %ret = zext <4 x i1> %val to <4 x i32>
   ret <4 x i32> %ret
 }
 
 ; Test a v4i8->v4i32 extension.
-define <4 x i32> @f5(<4 x i8> *%ptr) {
+define <4 x i32> @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: larl	%r1, .LCPI4_0
 ; CHECK: vlrepf [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vl	%v1, 0(%r1), 3
 ; CHECK: vperm	%v24, %v1, [[REG1]], %v1
 ; CHECK: br %r14
-  %val = load <4 x i8>, <4 x i8> *%ptr
+  %val = load <4 x i8>, ptr %ptr
   %ret = zext <4 x i8> %val to <4 x i32>
   ret <4 x i32> %ret
 }
 
 ; Test a v4i16->v4i32 extension.
-define <4 x i32> @f6(<4 x i16> *%ptr) {
+define <4 x i32> @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vlrepg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuplhh %v24, [[REG1]]
 ; CHECK: br %r14
-  %val = load <4 x i16>, <4 x i16> *%ptr
+  %val = load <4 x i16>, ptr %ptr
   %ret = zext <4 x i16> %val to <4 x i32>
   ret <4 x i32> %ret
 }
 
 ; Test a v2i1->v2i64 extension.
-define <2 x i64> @f7(<2 x i1> *%ptr) {
+define <2 x i64> @f7(ptr %ptr) {
 ; No expected output, but must compile.
-  %val = load <2 x i1>, <2 x i1> *%ptr
+  %val = load <2 x i1>, ptr %ptr
   %ret = zext <2 x i1> %val to <2 x i64>
   ret <2 x i64> %ret
 }
 
 ; Test a v2i8->v2i64 extension.
-define <2 x i64> @f8(<2 x i8> *%ptr) {
+define <2 x i64> @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: larl	%r1, .LCPI7_0
 ; CHECK: vlreph	[[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vl	%v1, 0(%r1), 3
 ; CHECK: vperm	%v24, %v1, [[REG1]], %v1
 ; CHECK: br %r14
-  %val = load <2 x i8>, <2 x i8> *%ptr
+  %val = load <2 x i8>, ptr %ptr
   %ret = zext <2 x i8> %val to <2 x i64>
   ret <2 x i64> %ret
 }
 
 ; Test a v2i16->v2i64 extension.
-define <2 x i64> @f9(<2 x i16> *%ptr) {
+define <2 x i64> @f9(ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: larl	%r1, .LCPI8_0
 ; CHECK: vlrepf	[[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vl	%v1, 0(%r1), 3
 ; CHECK: vperm	%v24, %v1, [[REG1]], %v1
 ; CHECK: br %r14
-  %val = load <2 x i16>, <2 x i16> *%ptr
+  %val = load <2 x i16>, ptr %ptr
   %ret = zext <2 x i16> %val to <2 x i64>
   ret <2 x i64> %ret
 }
 
 ; Test a v2i32->v2i64 extension.
-define <2 x i64> @f10(<2 x i32> *%ptr) {
+define <2 x i64> @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: vlrepg [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK: vuplhf %v24, [[REG1]]
 ; CHECK: br %r14
-  %val = load <2 x i32>, <2 x i32> *%ptr
+  %val = load <2 x i32>, ptr %ptr
   %ret = zext <2 x i32> %val to <2 x i64>
   ret <2 x i64> %ret
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-17.ll b/llvm/test/CodeGen/SystemZ/vec-move-17.ll
index 5a01c90778114..56d88da4f6249 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-17.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-17.ll
@@ -3,65 +3,65 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test a v16i8->v16i1 truncation.
-define void @f1(<16 x i8> %val, <16 x i1> *%ptr) {
+define void @f1(<16 x i8> %val, ptr %ptr) {
 ; No expected output, but must compile.
   %trunc = trunc <16 x i8> %val to <16 x i1>
-  store <16 x i1> %trunc, <16 x i1> *%ptr
+  store <16 x i1> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v8i16->v8i1 truncation.
-define void @f2(<8 x i16> %val, <8 x i1> *%ptr) {
+define void @f2(<8 x i16> %val, ptr %ptr) {
 ; No expected output, but must compile.
   %trunc = trunc <8 x i16> %val to <8 x i1>
-  store <8 x i1> %trunc, <8 x i1> *%ptr
+  store <8 x i1> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v8i16->v8i8 truncation.
-define void @f3(<8 x i16> %val, <8 x i8> *%ptr) {
+define void @f3(<8 x i16> %val, ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: vpkh [[REG1:%v[0-9]+]], %v24, %v24
 ; CHECK: vsteg [[REG1]], 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc <8 x i16> %val to <8 x i8>
-  store <8 x i8> %trunc, <8 x i8> *%ptr
+  store <8 x i8> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v4i32->v4i1 truncation.
-define void @f4(<4 x i32> %val, <4 x i1> *%ptr) {
+define void @f4(<4 x i32> %val, ptr %ptr) {
 ; No expected output, but must compile.
   %trunc = trunc <4 x i32> %val to <4 x i1>
-  store <4 x i1> %trunc, <4 x i1> *%ptr
+  store <4 x i1> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v4i32->v4i8 truncation.  At the moment we use a VPERM rather than
 ; a chain of packs.
-define void @f5(<4 x i32> %val, <4 x i8> *%ptr) {
+define void @f5(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: vperm [[REG:%v[0-9]+]],
 ; CHECK: vstef [[REG]], 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc <4 x i32> %val to <4 x i8>
-  store <4 x i8> %trunc, <4 x i8> *%ptr
+  store <4 x i8> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v4i32->v4i16 truncation.
-define void @f6(<4 x i32> %val, <4 x i16> *%ptr) {
+define void @f6(<4 x i32> %val, ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: vpkf [[REG1:%v[0-9]+]], %v24, %v24
 ; CHECK: vsteg [[REG1]], 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc <4 x i32> %val to <4 x i16>
-  store <4 x i16> %trunc, <4 x i16> *%ptr
+  store <4 x i16> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v2i64->v2i1 truncation.
-define void @f7(<2 x i64> %val, <2 x i1> *%ptr) {
+define void @f7(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK:       # %bb.0:
 ; CHECK-NEXT:    vlgvg %r0, %v24, 0
@@ -72,41 +72,41 @@ define void @f7(<2 x i64> %val, <2 x i1> *%ptr) {
 ; CHECK-NEXT:    stc %r0, 0(%r2)
 ; CHECK-NEXT:    br %r14
   %trunc = trunc <2 x i64> %val to <2 x i1>
-  store <2 x i1> %trunc, <2 x i1> *%ptr
+  store <2 x i1> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v2i64->v2i8 truncation.  At the moment we use a VPERM rather than
 ; a chain of packs.
-define void @f8(<2 x i64> %val, <2 x i8> *%ptr) {
+define void @f8(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: vperm [[REG:%v[0-9]+]],
 ; CHECK: vsteh [[REG]], 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc <2 x i64> %val to <2 x i8>
-  store <2 x i8> %trunc, <2 x i8> *%ptr
+  store <2 x i8> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v2i64->v2i16 truncation.  At the moment we use a VPERM rather than
 ; a chain of packs.
-define void @f9(<2 x i64> %val, <2 x i16> *%ptr) {
+define void @f9(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f9:
 ; CHECK: vperm [[REG:%v[0-9]+]],
 ; CHECK: vstef [[REG]], 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc <2 x i64> %val to <2 x i16>
-  store <2 x i16> %trunc, <2 x i16> *%ptr
+  store <2 x i16> %trunc, ptr %ptr
   ret void
 }
 
 ; Test a v2i64->v2i32 truncation.
-define void @f10(<2 x i64> %val, <2 x i32> *%ptr) {
+define void @f10(<2 x i64> %val, ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: vpkg [[REG1:%v[0-9]+]], %v24, %v24
 ; CHECK: vsteg [[REG1]], 0(%r2)
 ; CHECK: br %r14
   %trunc = trunc <2 x i64> %val to <2 x i32>
-  store <2 x i32> %trunc, <2 x i32> *%ptr
+  store <2 x i32> %trunc, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-18.ll b/llvm/test/CodeGen/SystemZ/vec-move-18.ll
index 9bb61934ff265..c0a3d43f829e1 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-18.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-18.ll
@@ -3,34 +3,34 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z14 | FileCheck %s
 
 ; Test VLLEZLF.
-define <4 x i32> @f1(i32 *%ptr) {
+define <4 x i32> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vllezlf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load i32, i32 *%ptr
+  %val = load i32, ptr %ptr
   %ret = insertelement <4 x i32> zeroinitializer, i32 %val, i32 0
   ret <4 x i32> %ret
 }
 
 ; Test VLLEZLF with a float.
-define <4 x float> @f2(float *%ptr) {
+define <4 x float> @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: vllezlf %v24, 0(%r2)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %ret = insertelement <4 x float> zeroinitializer, float %val, i32 0
   ret <4 x float> %ret
 }
 
 ; Test VLLEZLF with a float when the result is stored to memory.
-define void @f3(float *%ptr, <4 x float> *%res) {
+define void @f3(ptr %ptr, ptr %res) {
 ; CHECK-LABEL: f3:
 ; CHECK: vllezlf [[REG:%v[0-9]+]], 0(%r2)
 ; CHECK: vst [[REG]], 0(%r3)
 ; CHECK: br %r14
-  %val = load float, float *%ptr
+  %val = load float, ptr %ptr
   %ret = insertelement <4 x float> zeroinitializer, float %val, i32 0
-  store <4 x float> %ret, <4 x float> *%res
+  store <4 x float> %ret, ptr %res
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-19.ll b/llvm/test/CodeGen/SystemZ/vec-move-19.ll
index 1bf1d0e67cf65..ec0386879a155 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-19.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-19.ll
@@ -8,13 +8,13 @@
 ; CHECK-NOT:  vlvgf   %v24, %r0, 1
 ; CHECK-NOT:  vlvgf   %v24, %r0, 2
 
-define <4 x i32> @fun(i32 %arg, i32* %dst) {
-  %tmp = load i32, i32* undef
+define <4 x i32> @fun(i32 %arg, ptr %dst) {
+  %tmp = load i32, ptr undef
   %tmp8 = insertelement <4 x i32> undef, i32 %tmp, i32 0
   %tmp9 = insertelement <4 x i32> %tmp8, i32 %tmp, i32 1
   %tmp10 = insertelement <4 x i32> %tmp9, i32 %tmp, i32 2
   %tmp11 = insertelement <4 x i32> %tmp10, i32 %arg, i32 3
-  store i32 %tmp, i32* %dst
+  store i32 %tmp, ptr %dst
   ret <4 x i32> %tmp11
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-20.ll b/llvm/test/CodeGen/SystemZ/vec-move-20.ll
index ebf1b7db52058..47d8453a42fbe 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-20.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-20.ll
@@ -6,14 +6,14 @@
 ; CHECK:      vlef
 ; CHECK-NOT:  vlvgf
 
-define void @update(i32* %src1, i32* %src2, <4 x i32>* %dst) {
+define void @update(ptr %src1, ptr %src2, ptr %dst) {
 bb:
-  %tmp = load i32, i32* %src1
-  %tmp1 = load i32, i32* %src2
+  %tmp = load i32, ptr %src1
+  %tmp1 = load i32, ptr %src2
   %tmp2 = insertelement <4 x i32> undef, i32 %tmp, i32 0
   %tmp3 = insertelement <4 x i32> %tmp2, i32 %tmp1, i32 1
   %tmp4 = insertelement <4 x i32> %tmp3, i32 %tmp1, i32 2
   %tmp5 = insertelement <4 x i32> %tmp4, i32 %tmp1, i32 3
-  store <4 x i32> %tmp5, <4 x i32>* %dst
+  store <4 x i32> %tmp5, ptr %dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-21.ll b/llvm/test/CodeGen/SystemZ/vec-move-21.ll
index 47ad03717433d..d5ddf4d340c02 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-21.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-21.ll
@@ -6,20 +6,19 @@
 ; CHECK-NOT: vrep
 
 
-define double @fun(double* %Vsrc, <2 x double> %T) {
+define double @fun(ptr %Vsrc, <2 x double> %T) {
 entry:
-  %Vgep1 = getelementptr double, double* %Vsrc, i64 0
-  %Vld1 = load double, double* %Vgep1
-  %Vgep2 = getelementptr double, double* %Vsrc, i64 1
-  %Vld2 = load double, double* %Vgep2
-  %Vgep3 = getelementptr double, double* %Vsrc, i64 2
-  %Vld3 = load double, double* %Vgep3
-  %Vgep4 = getelementptr double, double* %Vsrc, i64 3
-  %Vld4 = load double, double* %Vgep4
-  %Vgep5 = getelementptr double, double* %Vsrc, i64 4
-  %Vld5 = load double, double* %Vgep5
-  %Vgep6 = getelementptr double, double* %Vsrc, i64 5
-  %Vld6 = load double, double* %Vgep6
+  %Vld1 = load double, ptr %Vsrc
+  %Vgep2 = getelementptr double, ptr %Vsrc, i64 1
+  %Vld2 = load double, ptr %Vgep2
+  %Vgep3 = getelementptr double, ptr %Vsrc, i64 2
+  %Vld3 = load double, ptr %Vgep3
+  %Vgep4 = getelementptr double, ptr %Vsrc, i64 3
+  %Vld4 = load double, ptr %Vgep4
+  %Vgep5 = getelementptr double, ptr %Vsrc, i64 4
+  %Vld5 = load double, ptr %Vgep5
+  %Vgep6 = getelementptr double, ptr %Vsrc, i64 5
+  %Vld6 = load double, ptr %Vgep6
 
   %V19 = insertelement <2 x double> undef, double %Vld1, i32 0
   %V20 = shufflevector <2 x double> %V19, <2 x double> undef, <2 x i32> zeroinitializer

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-22.ll b/llvm/test/CodeGen/SystemZ/vec-move-22.ll
index 2508a9e6da225..da9d068d2be9b 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-22.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-22.ll
@@ -5,11 +5,11 @@
 
 ; CHECK-NOT: vlrep
 
-define void @fun(i64 %arg, i64** %Addr, <2 x i64*>* %Dst) {
-  %tmp10 = load i64*, i64** %Addr
-  store i64 %arg, i64* %tmp10
-  %tmp12 = insertelement <2 x i64*> undef, i64* %tmp10, i32 0
-  %tmp13 = insertelement <2 x i64*> %tmp12, i64* %tmp10, i32 1
-  store <2 x i64*> %tmp13, <2 x i64*>* %Dst
+define void @fun(i64 %arg, ptr %Addr, ptr %Dst) {
+  %tmp10 = load ptr, ptr %Addr
+  store i64 %arg, ptr %tmp10
+  %tmp12 = insertelement <2 x ptr> undef, ptr %tmp10, i32 0
+  %tmp13 = insertelement <2 x ptr> %tmp12, ptr %tmp10, i32 1
+  store <2 x ptr> %tmp13, ptr %Dst
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-23.ll b/llvm/test/CodeGen/SystemZ/vec-move-23.ll
index 05f50cc2a066b..11ad6f3605804 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-23.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-23.ll
@@ -3,7 +3,7 @@
 ;
 ; Check that int-to-fp conversions from a narrower type get a vector extension.
 
-define void @fun0(<2 x i8> %Src, <2 x double>* %Dst) {
+define void @fun0(<2 x i8> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun0:
 ; CHECK:      vuphb	%v0, %v24
 ; CHECK-NEXT: vuphh	%v0, %v0
@@ -12,11 +12,11 @@ define void @fun0(<2 x i8> %Src, <2 x double>* %Dst) {
 ; CHECK-NEXT: vst	%v0, 0(%r2), 3
 ; CHECK-NEXT: br	%r14
   %c = sitofp <2 x i8> %Src to <2 x double>
-  store <2 x double> %c, <2 x double>* %Dst
+  store <2 x double> %c, ptr %Dst
   ret void
 }
 
-define void @fun1(<2 x i16> %Src, <2 x double>* %Dst) {
+define void @fun1(<2 x i16> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun1:
 ; CHECK:      vuphh	%v0, %v24
 ; CHECK-NEXT: vuphf	%v0, %v0
@@ -24,22 +24,22 @@ define void @fun1(<2 x i16> %Src, <2 x double>* %Dst) {
 ; CHECK-NEXT: vst	%v0, 0(%r2), 3
 ; CHECK-NEXT: br	%r14
   %c = sitofp <2 x i16> %Src to <2 x double>
-  store <2 x double> %c, <2 x double>* %Dst
+  store <2 x double> %c, ptr %Dst
   ret void
 }
 
-define void @fun2(<2 x i32> %Src, <2 x double>* %Dst) {
+define void @fun2(<2 x i32> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun2:
 ; CHECK:      vuphf	%v0, %v24
 ; CHECK-NEXT: vcdgb	%v0, %v0, 0, 0
 ; CHECK-NEXT: vst	%v0, 0(%r2), 3
 ; CHECK-NEXT: br	%r14
   %c = sitofp <2 x i32> %Src to <2 x double>
-  store <2 x double> %c, <2 x double>* %Dst
+  store <2 x double> %c, ptr %Dst
   ret void
 }
 
-define void @fun3(<4 x i16> %Src, <4 x float>* %Dst) {
+define void @fun3(<4 x i16> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun3:
 
 ; Z14:      vuphh	%v0, %v24
@@ -62,11 +62,11 @@ define void @fun3(<4 x i16> %Src, <4 x float>* %Dst) {
 ; Z15-NEXT: vst	        %v0, 0(%r2), 3
 ; Z15-NEXT: br	        %r14
   %c = sitofp <4 x i16> %Src to <4 x float>
-  store <4 x float> %c, <4 x float>* %Dst
+  store <4 x float> %c, ptr %Dst
   ret void
 }
 
-define void @fun4(<2 x i8> %Src, <2 x double>* %Dst) {
+define void @fun4(<2 x i8> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun4:
 ; CHECK:      larl	%r1, .LCPI4_0
 ; CHECK-NEXT: vl	%v0, 0(%r1), 3
@@ -75,11 +75,11 @@ define void @fun4(<2 x i8> %Src, <2 x double>* %Dst) {
 ; CHECK-NEXT: vst	%v0, 0(%r2), 3
 ; CHECK-NEXT: br	%r14
   %c = uitofp <2 x i8> %Src to <2 x double>
-  store <2 x double> %c, <2 x double>* %Dst
+  store <2 x double> %c, ptr %Dst
   ret void
 }
 
-define void @fun5(<2 x i16> %Src, <2 x double>* %Dst) {
+define void @fun5(<2 x i16> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun5:
 ; CHECK:      larl	%r1, .LCPI5_0
 ; CHECK-NEXT: vl	%v0, 0(%r1), 3
@@ -88,22 +88,22 @@ define void @fun5(<2 x i16> %Src, <2 x double>* %Dst) {
 ; CHECK-NEXT: vst	%v0, 0(%r2), 3
 ; CHECK-NEXT: br	%r14
   %c = uitofp <2 x i16> %Src to <2 x double>
-  store <2 x double> %c, <2 x double>* %Dst
+  store <2 x double> %c, ptr %Dst
   ret void
 }
 
-define void @fun6(<2 x i32> %Src, <2 x double>* %Dst) {
+define void @fun6(<2 x i32> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun6:
 ; CHECK:      vuplhf	%v0, %v24
 ; CHECK-NEXT: vcdlgb	%v0, %v0, 0, 0
 ; CHECK-NEXT: vst	%v0, 0(%r2), 3
 ; CHECK-NEXT: br	%r14
   %c = uitofp <2 x i32> %Src to <2 x double>
-  store <2 x double> %c, <2 x double>* %Dst
+  store <2 x double> %c, ptr %Dst
   ret void
 }
 
-define void @fun7(<4 x i16> %Src, <4 x float>* %Dst) {
+define void @fun7(<4 x i16> %Src, ptr %Dst) {
 ; CHECK-LABEL: fun7:
 
 ; Z14:      vuplhh	%v0, %v24
@@ -126,22 +126,22 @@ define void @fun7(<4 x i16> %Src, <4 x float>* %Dst) {
 ; Z15-NEXT: vst	        %v0, 0(%r2), 3
 ; Z15-NEXT: br	        %r14
   %c = uitofp <4 x i16> %Src to <4 x float>
-  store <4 x float> %c, <4 x float>* %Dst
+  store <4 x float> %c, ptr %Dst
   ret void
 }
 
 ; Test that this does not crash but results in scalarized conversions.
-define void @fun8(<2 x i64> %dwords, <2 x fp128> *%ptr) {
+define void @fun8(<2 x i64> %dwords, ptr %ptr) {
 ; CHECK-LABEL: fun8
 ; CHECK: vlgvg
 ; CHECK: cxlgbr
  %conv = uitofp <2 x i64> %dwords to <2 x fp128>
- store <2 x fp128> %conv, <2 x fp128> *%ptr
+ store <2 x fp128> %conv, ptr %ptr
  ret void
 }
 
 ; Test that this results in vectorized conversions.
-define void @fun9(<10 x i16> *%Src, <10 x float> *%ptr) {
+define void @fun9(ptr %Src, ptr %ptr) {
 ; CHECK-LABEL: fun9
 ; Z15: 	    larl	%r1, .LCPI9_0
 ; Z15-NEXT: vl	        %v0, 16(%r2), 4
@@ -158,8 +158,8 @@ define void @fun9(<10 x i16> *%Src, <10 x float> *%ptr) {
 ; Z15-NEXT: vst	%v1, 0(%r3), 4
 ; Z15-NEXT: br	%r14
 
- %Val = load <10 x i16>, <10 x i16> *%Src
+ %Val = load <10 x i16>, ptr %Src
  %conv = uitofp <10 x i16> %Val to <10 x float>
- store <10 x float> %conv, <10 x float> *%ptr
+ store <10 x float> %conv, ptr %ptr
  ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/vec-move-24.ll b/llvm/test/CodeGen/SystemZ/vec-move-24.ll
index 4f95bb1315a92..d696e1df65c4d 100644
--- a/llvm/test/CodeGen/SystemZ/vec-move-24.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-move-24.ll
@@ -2,15 +2,15 @@
 ;
 ; Test that vperm is not used if a single unpack is enough.
 
-define <4 x i32> @fun0(<4 x i32>* %Src) nounwind {
+define <4 x i32> @fun0(ptr %Src) nounwind {
 ; CHECK-LABEL: fun0:
 ; CHECK-NOT: vperm
-  %tmp = load <4 x i32>, <4 x i32>* %Src
+  %tmp = load <4 x i32>, ptr %Src
   %tmp2 = shufflevector <4 x i32> zeroinitializer, <4 x i32> %tmp, <4 x i32> <i32 0, i32 4, i32 2, i32 5>
   ret <4 x i32> %tmp2
 }
 
-define  void @fun1(i8 %Src, <32 x i8>* %Dst) nounwind {
+define  void @fun1(i8 %Src, ptr %Dst) nounwind {
 ; CHECK-LABEL: fun1:
 ; CHECK-NOT: vperm
   %I0 = insertelement <16 x i8> undef, i8 %Src, i32 0
@@ -43,7 +43,7 @@ define  void @fun1(i8 %Src, <32 x i8>* %Dst) nounwind {
                                     i32 4, i32 20, i32 56, i32 57, i32 5, i32 21, i32 58, i32 59,
                                     i32 6, i32 22, i32 60, i32 61, i32 7, i32 62, i32 55, i32 63>
 
-  store <32 x i8> %tmp9, <32 x i8>* %Dst
+  store <32 x i8> %tmp9, ptr %Dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-perm-03.ll b/llvm/test/CodeGen/SystemZ/vec-perm-03.ll
index 663815549c33c..aa18923055575 100644
--- a/llvm/test/CodeGen/SystemZ/vec-perm-03.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-perm-03.ll
@@ -3,11 +3,11 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s
 
 ; Test a v16i8 replicating load with no offset.
-define <16 x i8> @f1(i8 *%ptr) {
+define <16 x i8> @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: vlrepb %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i8, i8 *%ptr
+  %scalar = load i8, ptr %ptr
   %val = insertelement <16 x i8> undef, i8 %scalar, i32 0
   %ret = shufflevector <16 x i8> %val, <16 x i8> undef,
                        <16 x i32> zeroinitializer
@@ -15,12 +15,12 @@ define <16 x i8> @f1(i8 *%ptr) {
 }
 
 ; Test a v16i8 replicating load with the maximum in-range offset.
-define <16 x i8> @f2(i8 *%base) {
+define <16 x i8> @f2(ptr %base) {
 ; CHECK-LABEL: f2:
 ; CHECK: vlrepb %v24, 4095(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4095
-  %scalar = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i64 4095
+  %scalar = load i8, ptr %ptr
   %val = insertelement <16 x i8> undef, i8 %scalar, i32 0
   %ret = shufflevector <16 x i8> %val, <16 x i8> undef,
                        <16 x i32> zeroinitializer
@@ -28,13 +28,13 @@ define <16 x i8> @f2(i8 *%base) {
 }
 
 ; Test a v16i8 replicating load with the first out-of-range offset.
-define <16 x i8> @f3(i8 *%base) {
+define <16 x i8> @f3(ptr %base) {
 ; CHECK-LABEL: f3:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlrepb %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%base, i64 4096
-  %scalar = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %base, i64 4096
+  %scalar = load i8, ptr %ptr
   %val = insertelement <16 x i8> undef, i8 %scalar, i32 0
   %ret = shufflevector <16 x i8> %val, <16 x i8> undef,
                        <16 x i32> zeroinitializer
@@ -42,11 +42,11 @@ define <16 x i8> @f3(i8 *%base) {
 }
 
 ; Test a v8i16 replicating load with no offset.
-define <8 x i16> @f4(i16 *%ptr) {
+define <8 x i16> @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: vlreph %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i16, i16 *%ptr
+  %scalar = load i16, ptr %ptr
   %val = insertelement <8 x i16> undef, i16 %scalar, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,
                        <8 x i32> zeroinitializer
@@ -54,12 +54,12 @@ define <8 x i16> @f4(i16 *%ptr) {
 }
 
 ; Test a v8i16 replicating load with the maximum in-range offset.
-define <8 x i16> @f5(i16 *%base) {
+define <8 x i16> @f5(ptr %base) {
 ; CHECK-LABEL: f5:
 ; CHECK: vlreph %v24, 4094(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2047
-  %scalar = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2047
+  %scalar = load i16, ptr %ptr
   %val = insertelement <8 x i16> undef, i16 %scalar, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,
                        <8 x i32> zeroinitializer
@@ -67,13 +67,13 @@ define <8 x i16> @f5(i16 *%base) {
 }
 
 ; Test a v8i16 replicating load with the first out-of-range offset.
-define <8 x i16> @f6(i16 *%base) {
+define <8 x i16> @f6(ptr %base) {
 ; CHECK-LABEL: f6:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlreph %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i16, i16 *%base, i64 2048
-  %scalar = load i16, i16 *%ptr
+  %ptr = getelementptr i16, ptr %base, i64 2048
+  %scalar = load i16, ptr %ptr
   %val = insertelement <8 x i16> undef, i16 %scalar, i32 0
   %ret = shufflevector <8 x i16> %val, <8 x i16> undef,
                        <8 x i32> zeroinitializer
@@ -81,11 +81,11 @@ define <8 x i16> @f6(i16 *%base) {
 }
 
 ; Test a v4i32 replicating load with no offset.
-define <4 x i32> @f7(i32 *%ptr) {
+define <4 x i32> @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i32, i32 *%ptr
+  %scalar = load i32, ptr %ptr
   %val = insertelement <4 x i32> undef, i32 %scalar, i32 0
   %ret = shufflevector <4 x i32> %val, <4 x i32> undef,
                        <4 x i32> zeroinitializer
@@ -93,12 +93,12 @@ define <4 x i32> @f7(i32 *%ptr) {
 }
 
 ; Test a v4i32 replicating load with the maximum in-range offset.
-define <4 x i32> @f8(i32 *%base) {
+define <4 x i32> @f8(ptr %base) {
 ; CHECK-LABEL: f8:
 ; CHECK: vlrepf %v24, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1023
-  %scalar = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1023
+  %scalar = load i32, ptr %ptr
   %val = insertelement <4 x i32> undef, i32 %scalar, i32 0
   %ret = shufflevector <4 x i32> %val, <4 x i32> undef,
                        <4 x i32> zeroinitializer
@@ -106,13 +106,13 @@ define <4 x i32> @f8(i32 *%base) {
 }
 
 ; Test a v4i32 replicating load with the first out-of-range offset.
-define <4 x i32> @f9(i32 *%base) {
+define <4 x i32> @f9(ptr %base) {
 ; CHECK-LABEL: f9:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%base, i64 1024
-  %scalar = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %base, i64 1024
+  %scalar = load i32, ptr %ptr
   %val = insertelement <4 x i32> undef, i32 %scalar, i32 0
   %ret = shufflevector <4 x i32> %val, <4 x i32> undef,
                        <4 x i32> zeroinitializer
@@ -120,11 +120,11 @@ define <4 x i32> @f9(i32 *%base) {
 }
 
 ; Test a v2i64 replicating load with no offset.
-define <2 x i64> @f10(i64 *%ptr) {
+define <2 x i64> @f10(ptr %ptr) {
 ; CHECK-LABEL: f10:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load i64, i64 *%ptr
+  %scalar = load i64, ptr %ptr
   %val = insertelement <2 x i64> undef, i64 %scalar, i32 0
   %ret = shufflevector <2 x i64> %val, <2 x i64> undef,
                        <2 x i32> zeroinitializer
@@ -132,12 +132,12 @@ define <2 x i64> @f10(i64 *%ptr) {
 }
 
 ; Test a v2i64 replicating load with the maximum in-range offset.
-define <2 x i64> @f11(i64 *%base) {
+define <2 x i64> @f11(ptr %base) {
 ; CHECK-LABEL: f11:
 ; CHECK: vlrepg %v24, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 511
-  %scalar = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 511
+  %scalar = load i64, ptr %ptr
   %val = insertelement <2 x i64> undef, i64 %scalar, i32 0
   %ret = shufflevector <2 x i64> %val, <2 x i64> undef,
                        <2 x i32> zeroinitializer
@@ -145,13 +145,13 @@ define <2 x i64> @f11(i64 *%base) {
 }
 
 ; Test a v2i64 replicating load with the first out-of-range offset.
-define <2 x i64> @f12(i64 *%base) {
+define <2 x i64> @f12(ptr %base) {
 ; CHECK-LABEL: f12:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%base, i32 512
-  %scalar = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %base, i32 512
+  %scalar = load i64, ptr %ptr
   %val = insertelement <2 x i64> undef, i64 %scalar, i32 0
   %ret = shufflevector <2 x i64> %val, <2 x i64> undef,
                        <2 x i32> zeroinitializer
@@ -159,11 +159,11 @@ define <2 x i64> @f12(i64 *%base) {
 }
 
 ; Test a v4f32 replicating load with no offset.
-define <4 x float> @f13(float *%ptr) {
+define <4 x float> @f13(ptr %ptr) {
 ; CHECK-LABEL: f13:
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load float, float *%ptr
+  %scalar = load float, ptr %ptr
   %val = insertelement <4 x float> undef, float %scalar, i32 0
   %ret = shufflevector <4 x float> %val, <4 x float> undef,
                        <4 x i32> zeroinitializer
@@ -171,12 +171,12 @@ define <4 x float> @f13(float *%ptr) {
 }
 
 ; Test a v4f32 replicating load with the maximum in-range offset.
-define <4 x float> @f14(float *%base) {
+define <4 x float> @f14(ptr %base) {
 ; CHECK-LABEL: f14:
 ; CHECK: vlrepf %v24, 4092(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1023
-  %scalar = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1023
+  %scalar = load float, ptr %ptr
   %val = insertelement <4 x float> undef, float %scalar, i32 0
   %ret = shufflevector <4 x float> %val, <4 x float> undef,
                        <4 x i32> zeroinitializer
@@ -184,13 +184,13 @@ define <4 x float> @f14(float *%base) {
 }
 
 ; Test a v4f32 replicating load with the first out-of-range offset.
-define <4 x float> @f15(float *%base) {
+define <4 x float> @f15(ptr %base) {
 ; CHECK-LABEL: f15:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlrepf %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr float, float *%base, i64 1024
-  %scalar = load float, float *%ptr
+  %ptr = getelementptr float, ptr %base, i64 1024
+  %scalar = load float, ptr %ptr
   %val = insertelement <4 x float> undef, float %scalar, i32 0
   %ret = shufflevector <4 x float> %val, <4 x float> undef,
                        <4 x i32> zeroinitializer
@@ -198,11 +198,11 @@ define <4 x float> @f15(float *%base) {
 }
 
 ; Test a v2f64 replicating load with no offset.
-define <2 x double> @f16(double *%ptr) {
+define <2 x double> @f16(ptr %ptr) {
 ; CHECK-LABEL: f16:
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %scalar = load double, double *%ptr
+  %scalar = load double, ptr %ptr
   %val = insertelement <2 x double> undef, double %scalar, i32 0
   %ret = shufflevector <2 x double> %val, <2 x double> undef,
                        <2 x i32> zeroinitializer
@@ -210,12 +210,12 @@ define <2 x double> @f16(double *%ptr) {
 }
 
 ; Test a v2f64 replicating load with the maximum in-range offset.
-define <2 x double> @f17(double *%base) {
+define <2 x double> @f17(ptr %base) {
 ; CHECK-LABEL: f17:
 ; CHECK: vlrepg %v24, 4088(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i32 511
-  %scalar = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i32 511
+  %scalar = load double, ptr %ptr
   %val = insertelement <2 x double> undef, double %scalar, i32 0
   %ret = shufflevector <2 x double> %val, <2 x double> undef,
                        <2 x i32> zeroinitializer
@@ -223,13 +223,13 @@ define <2 x double> @f17(double *%base) {
 }
 
 ; Test a v2f64 replicating load with the first out-of-range offset.
-define <2 x double> @f18(double *%base) {
+define <2 x double> @f18(ptr %base) {
 ; CHECK-LABEL: f18:
 ; CHECK: aghi %r2, 4096
 ; CHECK: vlrepg %v24, 0(%r2)
 ; CHECK: br %r14
-  %ptr = getelementptr double, double *%base, i32 512
-  %scalar = load double, double *%ptr
+  %ptr = getelementptr double, ptr %base, i32 512
+  %scalar = load double, ptr %ptr
   %val = insertelement <2 x double> undef, double %scalar, i32 0
   %ret = shufflevector <2 x double> %val, <2 x double> undef,
                        <2 x i32> zeroinitializer
@@ -237,13 +237,13 @@ define <2 x double> @f18(double *%base) {
 }
 
 ; Test a v16i8 replicating load with an index.
-define <16 x i8> @f19(i8 *%base, i64 %index) {
+define <16 x i8> @f19(ptr %base, i64 %index) {
 ; CHECK-LABEL: f19:
 ; CHECK: vlrepb %v24, 1023(%r3,%r2)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i8, i8 *%base, i64 %index
-  %ptr = getelementptr i8, i8 *%ptr1, i64 1023
-  %scalar = load i8, i8 *%ptr
+  %ptr1 = getelementptr i8, ptr %base, i64 %index
+  %ptr = getelementptr i8, ptr %ptr1, i64 1023
+  %scalar = load i8, ptr %ptr
   %val = insertelement <16 x i8> undef, i8 %scalar, i32 0
   %ret = shufflevector <16 x i8> %val, <16 x i8> undef,
                        <16 x i32> zeroinitializer

diff  --git a/llvm/test/CodeGen/SystemZ/vec-perm-14.ll b/llvm/test/CodeGen/SystemZ/vec-perm-14.ll
index 3678969ac8977..551ee44c314de 100644
--- a/llvm/test/CodeGen/SystemZ/vec-perm-14.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-perm-14.ll
@@ -7,7 +7,7 @@ define void @fun() {
 ; CHECK: vperm
 ; CHECK-NOT: vperm
 bb:
-  %tmp = load <4 x i8>, <4 x i8>* undef
+  %tmp = load <4 x i8>, ptr undef
   %tmp1 = icmp eq <4 x i8> zeroinitializer, %tmp
   %tmp2 = extractelement <4 x i1> %tmp1, i32 0
   br i1 %tmp2, label %bb1, label %bb2

diff  --git a/llvm/test/CodeGen/SystemZ/vec-strict-conv-01.ll b/llvm/test/CodeGen/SystemZ/vec-strict-conv-01.ll
index 3b56b27a4cd1a..2e22c73d9786d 100644
--- a/llvm/test/CodeGen/SystemZ/vec-strict-conv-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-strict-conv-01.ll
@@ -60,24 +60,24 @@ define <2 x double> @f4(<2 x i64> %dwords) #0 {
 }
 
 ; Test conversion of f64s to signed i32s, which must compile.
-define void @f5(<2 x double> %doubles, <2 x i32> *%ptr) #0 {
+define void @f5(<2 x double> %doubles, ptr %ptr) #0 {
   %words = call <2 x i32> @llvm.experimental.constrained.fptosi.v2i32.v2f64(<2 x double> %doubles,
                                                metadata !"fpexcept.strict") #0
-  store <2 x i32> %words, <2 x i32> *%ptr
+  store <2 x i32> %words, ptr %ptr
   ret void
 }
 
 ; Test conversion of f64s to unsigned i32s, which must compile.
-define void @f6(<2 x double> %doubles, <2 x i32> *%ptr) #0 {
+define void @f6(<2 x double> %doubles, ptr %ptr) #0 {
   %words = call <2 x i32> @llvm.experimental.constrained.fptoui.v2i32.v2f64(<2 x double> %doubles,
                                                metadata !"fpexcept.strict") #0
-  store <2 x i32> %words, <2 x i32> *%ptr
+  store <2 x i32> %words, ptr %ptr
   ret void
 }
 
 ; Test conversion of signed i32s to f64s, which must compile.
-define <2 x double> @f7(<2 x i32> *%ptr) #0 {
-  %words = load <2 x i32>, <2 x i32> *%ptr
+define <2 x double> @f7(ptr %ptr) #0 {
+  %words = load <2 x i32>, ptr %ptr
   %doubles = call <2 x double> @llvm.experimental.constrained.sitofp.v2f64.v2i32(<2 x i32> %words,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
@@ -85,8 +85,8 @@ define <2 x double> @f7(<2 x i32> *%ptr) #0 {
 }
 
 ; Test conversion of unsigned i32s to f64s, which must compile.
-define <2 x double> @f8(<2 x i32> *%ptr) #0 {
-  %words = load <2 x i32>, <2 x i32> *%ptr
+define <2 x double> @f8(ptr %ptr) #0 {
+  %words = load <2 x i32>, ptr %ptr
   %doubles = call <2 x double> @llvm.experimental.constrained.uitofp.v2f64.v2i32(<2 x i32> %words,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
@@ -94,36 +94,36 @@ define <2 x double> @f8(<2 x i32> *%ptr) #0 {
 }
 
 ; Test conversion of f32s to signed i64s, which must compile.
-define <2 x i64> @f9(<2 x float> *%ptr) #0 {
-  %floats = load <2 x float>, <2 x float> *%ptr
+define <2 x i64> @f9(ptr %ptr) #0 {
+  %floats = load <2 x float>, ptr %ptr
   %dwords = call <2 x i64> @llvm.experimental.constrained.fptosi.v2i64.v2f32(<2 x float> %floats,
                                                metadata !"fpexcept.strict") #0
   ret <2 x i64> %dwords
 }
 
 ; Test conversion of f32s to unsigned i64s, which must compile.
-define <2 x i64> @f10(<2 x float> *%ptr) #0 {
-  %floats = load <2 x float>, <2 x float> *%ptr
+define <2 x i64> @f10(ptr %ptr) #0 {
+  %floats = load <2 x float>, ptr %ptr
   %dwords = call <2 x i64> @llvm.experimental.constrained.fptoui.v2i64.v2f32(<2 x float> %floats,
                                                metadata !"fpexcept.strict") #0
   ret <2 x i64> %dwords
 }
 
 ; Test conversion of signed i64s to f32, which must compile.
-define void @f11(<2 x i64> %dwords, <2 x float> *%ptr) #0 {
+define void @f11(<2 x i64> %dwords, ptr %ptr) #0 {
   %floats = call <2 x float> @llvm.experimental.constrained.sitofp.v2f32.v2i64(<2 x i64> %dwords,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store <2 x float> %floats, <2 x float> *%ptr
+  store <2 x float> %floats, ptr %ptr
   ret void
 }
 
 ; Test conversion of unsigned i64s to f32, which must compile.
-define void @f12(<2 x i64> %dwords, <2 x float> *%ptr) #0 {
+define void @f12(<2 x i64> %dwords, ptr %ptr) #0 {
   %floats = call <2 x float> @llvm.experimental.constrained.uitofp.v2f32.v2i64(<2 x i64> %dwords,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store <2 x float> %floats, <2 x float> *%ptr
+  store <2 x float> %floats, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-strict-conv-02.ll b/llvm/test/CodeGen/SystemZ/vec-strict-conv-02.ll
index 3f561654c3646..06e550a6fae03 100644
--- a/llvm/test/CodeGen/SystemZ/vec-strict-conv-02.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-strict-conv-02.ll
@@ -9,7 +9,7 @@ declare <2 x double> @llvm.experimental.constrained.fpext.v2f64.v2f32(<2 x float
 declare double @llvm.experimental.constrained.fpext.f64.f32(float, metadata)
 
 ; Test cases where both elements of a v2f64 are converted to f32s.
-define void @f1(<2 x double> %val, <2 x float> *%ptr) #0 {
+define void @f1(<2 x double> %val, ptr %ptr) #0 {
 ; CHECK-LABEL: f1:
 ; CHECK: vledb {{%v[0-9]+}}, %v24, 0, 0
 ; CHECK: br %r14
@@ -17,7 +17,7 @@ define void @f1(<2 x double> %val, <2 x float> *%ptr) #0 {
                                                <2 x double> %val,
                                                metadata !"round.dynamic",
                                                metadata !"fpexcept.strict") #0
-  store <2 x float> %res, <2 x float> *%ptr
+  store <2 x float> %res, ptr %ptr
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-strict-max-01.ll b/llvm/test/CodeGen/SystemZ/vec-strict-max-01.ll
index a5a312e809c7e..66870a797a7a5 100644
--- a/llvm/test/CodeGen/SystemZ/vec-strict-max-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-strict-max-01.ll
@@ -62,19 +62,19 @@ define <4 x float> @f4(<4 x float> %dummy, <4 x float> %val1,
 }
 
 ; Test the f128 maxnum intrinsic.
-define void @f5(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) #0 {
+define void @f5(ptr %ptr1, ptr %ptr2, ptr %dst) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.experimental.constrained.maxnum.f128(
                         fp128 %val1, fp128 %val2,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
@@ -125,19 +125,19 @@ define <4 x float> @f14(<4 x float> %dummy, <4 x float> %val1,
 }
 
 ; Test the f128 maximum intrinsic.
-define void @f15(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) #0 {
+define void @f15(ptr %ptr1, ptr %ptr2, ptr %dst) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfmaxxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 1
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.experimental.constrained.maximum.f128(
                         fp128 %val1, fp128 %val2,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vec-strict-min-01.ll b/llvm/test/CodeGen/SystemZ/vec-strict-min-01.ll
index 5b66b1ec05914..cf5332ff4f1d1 100644
--- a/llvm/test/CodeGen/SystemZ/vec-strict-min-01.ll
+++ b/llvm/test/CodeGen/SystemZ/vec-strict-min-01.ll
@@ -62,19 +62,19 @@ define <4 x float> @f4(<4 x float> %dummy, <4 x float> %val1,
 }
 
 ; Test the f128 minnum intrinsic.
-define void @f5(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) #0 {
+define void @f5(ptr %ptr1, ptr %ptr2, ptr %dst) #0 {
 ; CHECK-LABEL: f5:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 4
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.experimental.constrained.minnum.f128(
                         fp128 %val1, fp128 %val2,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 
@@ -125,19 +125,19 @@ define <4 x float> @f14(<4 x float> %dummy, <4 x float> %val1,
 }
 
 ; Test the f128 minimum intrinsic.
-define void @f15(fp128 *%ptr1, fp128 *%ptr2, fp128 *%dst) #0 {
+define void @f15(ptr %ptr1, ptr %ptr2, ptr %dst) #0 {
 ; CHECK-LABEL: f15:
 ; CHECK-DAG: vl [[REG1:%v[0-9]+]], 0(%r2)
 ; CHECK-DAG: vl [[REG2:%v[0-9]+]], 0(%r3)
 ; CHECK: wfminxb [[RES:%v[0-9]+]], [[REG1]], [[REG2]], 1
 ; CHECK: vst [[RES]], 0(%r4)
 ; CHECK: br %r14
-  %val1 = load fp128, fp128* %ptr1
-  %val2 = load fp128, fp128* %ptr2
+  %val1 = load fp128, ptr %ptr1
+  %val2 = load fp128, ptr %ptr2
   %res = call fp128 @llvm.experimental.constrained.minimum.f128(
                         fp128 %val1, fp128 %val2,
                         metadata !"fpexcept.strict") #0
-  store fp128 %res, fp128* %dst
+  store fp128 %res, ptr %dst
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
index e6559381132d7..69e1c2f4aa0af 100644
--- a/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
+++ b/llvm/test/CodeGen/SystemZ/vector-constrained-fp-intrinsics.ll
@@ -97,7 +97,7 @@ entry:
   ret <3 x float> %div
 }
 
-define void @constrained_vector_fdiv_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_fdiv_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_fdiv_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    larl %r1, .LCPI3_1
@@ -127,13 +127,13 @@ define void @constrained_vector_fdiv_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    vst %v0, 0(%r2), 4
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %div = call <3 x double> @llvm.experimental.constrained.fdiv.v3f64(
            <3 x double> <double 1.000000e+00, double 2.000000e+00, double 3.000000e+00>,
            <3 x double> %b,
            metadata !"round.dynamic",
            metadata !"fpexcept.strict") #0
-  store <3 x double> %div, <3 x double>* %a
+  store <3 x double> %div, ptr %a
   ret void
 }
 
@@ -365,7 +365,7 @@ entry:
   ret <3 x float> %rem
 }
 
-define void @constrained_vector_frem_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_frem_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_frem_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -447,13 +447,13 @@ define void @constrained_vector_frem_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %rem = call <3 x double> @llvm.experimental.constrained.frem.v3f64(
            <3 x double> <double 1.000000e+00, double 2.000000e+00, double 3.000000e+00>,
            <3 x double> %b,
            metadata !"round.dynamic",
            metadata !"fpexcept.strict") #0
-  store <3 x double> %rem, <3 x double>* %a
+  store <3 x double> %rem, ptr %a
   ret void
 }
 
@@ -650,7 +650,7 @@ entry:
   ret <3 x float> %mul
 }
 
-define void @constrained_vector_fmul_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_fmul_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_fmul_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    larl %r1, .LCPI13_0
@@ -678,14 +678,14 @@ define void @constrained_vector_fmul_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %mul = call <3 x double> @llvm.experimental.constrained.fmul.v3f64(
            <3 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF,
                         double 0x7FEFFFFFFFFFFFFF>,
            <3 x double> %b,
            metadata !"round.dynamic",
            metadata !"fpexcept.strict") #0
-  store <3 x double> %mul, <3 x double>* %a
+  store <3 x double> %mul, ptr %a
   ret void
 }
 
@@ -820,7 +820,7 @@ entry:
   ret <3 x float> %add
 }
 
-define void @constrained_vector_fadd_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_fadd_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_fadd_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    larl %r1, .LCPI18_0
@@ -848,14 +848,14 @@ define void @constrained_vector_fadd_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %add = call <3 x double> @llvm.experimental.constrained.fadd.v3f64(
            <3 x double> <double 0x7FEFFFFFFFFFFFFF, double 0x7FEFFFFFFFFFFFFF,
                          double 0x7FEFFFFFFFFFFFFF>,
            <3 x double> %b,
            metadata !"round.dynamic",
            metadata !"fpexcept.strict") #0
-  store <3 x double> %add, <3 x double>* %a
+  store <3 x double> %add, ptr %a
   ret void
 }
 
@@ -992,7 +992,7 @@ entry:
   ret <3 x float> %sub
 }
 
-define void @constrained_vector_fsub_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_fsub_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_fsub_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    larl %r1, .LCPI23_0
@@ -1018,14 +1018,14 @@ define void @constrained_vector_fsub_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f2, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %sub = call <3 x double> @llvm.experimental.constrained.fsub.v3f64(
            <3 x double> <double 0xFFEFFFFFFFFFFFFF, double 0xFFEFFFFFFFFFFFFF,
                          double 0xFFEFFFFFFFFFFFFF>,
            <3 x double> %b,
            metadata !"round.dynamic",
            metadata !"fpexcept.strict") #0
-  store <3 x double> %sub, <3 x double>* %a
+  store <3 x double> %sub, ptr %a
   ret void
 }
 
@@ -1143,7 +1143,7 @@ entry:
   ret <3 x float> %sqrt
 }
 
-define void @constrained_vector_sqrt_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_sqrt_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_sqrt_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    sqdb %f0, 0(%r2)
@@ -1163,12 +1163,12 @@ define void @constrained_vector_sqrt_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    vst %v0, 0(%r2), 4
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %sqrt = call <3 x double> @llvm.experimental.constrained.sqrt.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %sqrt, <3 x double>* %a
+  store <3 x double> %sqrt, ptr %a
   ret void
 }
 
@@ -1395,7 +1395,7 @@ entry:
   ret <3 x float> %pow
 }
 
-define void @constrained_vector_pow_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_pow_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_pow_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -1481,13 +1481,13 @@ define void @constrained_vector_pow_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 312(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %pow = call <3 x double> @llvm.experimental.constrained.pow.v3f64(
                           <3 x double> %b,
                           <3 x double> <double 3.0, double 3.0, double 3.0>,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %pow, <3 x double>* %a
+  store <3 x double> %pow, ptr %a
   ret void
 }
 
@@ -1764,7 +1764,7 @@ entry:
   ret <3 x float> %powi
 }
 
-define void @constrained_vector_powi_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_powi_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_powi_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -1835,13 +1835,13 @@ define void @constrained_vector_powi_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 280(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %powi = call <3 x double> @llvm.experimental.constrained.powi.v3f64(
                           <3 x double> <double 42.0, double 42.1, double 42.2>,
                           i32 3,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %powi, <3 x double>* %a
+  store <3 x double> %powi, ptr %a
   ret void
 }
 
@@ -2092,7 +2092,7 @@ entry:
   ret <3 x float> %sin
 }
 
-define void @constrained_vector_sin_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_sin_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_sin_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -2162,12 +2162,12 @@ define void @constrained_vector_sin_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %sin = call <3 x double> @llvm.experimental.constrained.sin.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %sin, <3 x double>* %a
+  store <3 x double> %sin, ptr %a
   ret void
 }
 
@@ -2409,7 +2409,7 @@ entry:
   ret <3 x float> %cos
 }
 
-define void @constrained_vector_cos_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_cos_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_cos_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -2479,12 +2479,12 @@ define void @constrained_vector_cos_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %cos = call <3 x double> @llvm.experimental.constrained.cos.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %cos, <3 x double>* %a
+  store <3 x double> %cos, ptr %a
   ret void
 }
 
@@ -2726,7 +2726,7 @@ entry:
   ret <3 x float> %exp
 }
 
-define void @constrained_vector_exp_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_exp_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_exp_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -2796,12 +2796,12 @@ define void @constrained_vector_exp_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %exp = call <3 x double> @llvm.experimental.constrained.exp.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %exp, <3 x double>* %a
+  store <3 x double> %exp, ptr %a
   ret void
 }
 
@@ -3043,7 +3043,7 @@ entry:
   ret <3 x float> %exp2
 }
 
-define void @constrained_vector_exp2_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_exp2_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_exp2_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -3113,12 +3113,12 @@ define void @constrained_vector_exp2_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %exp2 = call <3 x double> @llvm.experimental.constrained.exp2.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %exp2, <3 x double>* %a
+  store <3 x double> %exp2, ptr %a
   ret void
 }
 
@@ -3360,7 +3360,7 @@ entry:
   ret <3 x float> %log
 }
 
-define void @constrained_vector_log_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_log_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_log_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -3430,12 +3430,12 @@ define void @constrained_vector_log_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %log = call <3 x double> @llvm.experimental.constrained.log.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %log, <3 x double>* %a
+  store <3 x double> %log, ptr %a
   ret void
 }
 
@@ -3677,7 +3677,7 @@ entry:
   ret <3 x float> %log10
 }
 
-define void @constrained_vector_log10_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_log10_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_log10_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -3747,12 +3747,12 @@ define void @constrained_vector_log10_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %log10 = call <3 x double> @llvm.experimental.constrained.log10.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %log10, <3 x double>* %a
+  store <3 x double> %log10, ptr %a
   ret void
 }
 
@@ -3994,7 +3994,7 @@ entry:
   ret <3 x float> %log2
 }
 
-define void @constrained_vector_log2_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_log2_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_log2_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -4064,12 +4064,12 @@ define void @constrained_vector_log2_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %log2 = call <3 x double> @llvm.experimental.constrained.log2.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %log2, <3 x double>* %a
+  store <3 x double> %log2, ptr %a
   ret void
 }
 
@@ -4241,7 +4241,7 @@ define <3 x float> @constrained_vector_rint_v3f32() #0 {
   ret <3 x float> %rint
 }
 
-define void @constrained_vector_rint_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_rint_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_rint_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    ld %f0, 16(%r2)
@@ -4265,12 +4265,12 @@ define void @constrained_vector_rint_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %rint = call <3 x double> @llvm.experimental.constrained.rint.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %rint, <3 x double>* %a
+  store <3 x double> %rint, ptr %a
   ret void
 }
 
@@ -4430,7 +4430,7 @@ entry:
   ret <3 x float> %nearby
 }
 
-define void @constrained_vector_nearbyint_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_nearbyint_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_nearbyint_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -4475,12 +4475,12 @@ define void @constrained_vector_nearbyint_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %nearby = call <3 x double> @llvm.experimental.constrained.nearbyint.v3f64(
                           <3 x double> %b,
                           metadata !"round.dynamic",
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %nearby, <3 x double>* %a
+  store <3 x double> %nearby, ptr %a
   ret void
 }
 
@@ -4726,7 +4726,7 @@ entry:
   ret <3 x float> %max
 }
 
-define void @constrained_vector_log10_maxnum_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_log10_maxnum_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_log10_maxnum_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -4808,12 +4808,12 @@ define void @constrained_vector_log10_maxnum_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 304(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %max = call <3 x double> @llvm.experimental.constrained.maxnum.v3f64(
                           <3 x double> %b,
                           <3 x double> <double 40.0, double 41.0, double 42.0>,
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %max, <3 x double>* %a
+  store <3 x double> %max, ptr %a
   ret void
 }
 
@@ -5100,7 +5100,7 @@ entry:
   ret <3 x float> %min
 }
 
-define void @constrained_vector_minnum_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_minnum_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_minnum_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -5186,12 +5186,12 @@ define void @constrained_vector_minnum_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    lmg %r13, %r15, 312(%r15)
 ; SZ13-NEXT:    br %r14
 entry:
- %b = load <3 x double>, <3 x double>* %a
+ %b = load <3 x double>, ptr %a
  %min = call <3 x double> @llvm.experimental.constrained.minnum.v3f64(
                           <3 x double> %b,
                           <3 x double> <double 3.0, double 3.0, double 3.0>,
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %min, <3 x double>* %a
+  store <3 x double> %min, ptr %a
   ret void
 }
 
@@ -5347,7 +5347,7 @@ entry:
   ret <2 x float> %result
 }
 
-define void @constrained_vector_fptrunc_v3f64(<3 x double>* %src, <3 x float>* %dest) #0 {
+define void @constrained_vector_fptrunc_v3f64(ptr %src, ptr %dest) #0 {
 ; S390X-LABEL: constrained_vector_fptrunc_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    ld %f0, 0(%r2)
@@ -5378,12 +5378,12 @@ define void @constrained_vector_fptrunc_v3f64(<3 x double>* %src, <3 x float>* %
 ; SZ13-NEXT:    vsteg %v1, 0(%r3), 0
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %src
+  %b = load <3 x double>, ptr %src
   %result = call <3 x float> @llvm.experimental.constrained.fptrunc.v3f32.v3f64(
                                 <3 x double> %b,
                                 metadata !"round.dynamic",
                                 metadata !"fpexcept.strict") #0
-  store <3 x float> %result, <3 x float>* %dest
+  store <3 x float> %result, ptr %dest
   ret void
 }
 
@@ -5475,7 +5475,7 @@ entry:
   ret <2 x double> %result
 }
 
-define void @constrained_vector_fpext_v3f64(<3 x float>* %src, <3 x double>* %dest) #0 {
+define void @constrained_vector_fpext_v3f64(ptr %src, ptr %dest) #0 {
 ; S390X-LABEL: constrained_vector_fpext_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    lg %r0, 0(%r2)
@@ -5502,11 +5502,11 @@ define void @constrained_vector_fpext_v3f64(<3 x float>* %src, <3 x double>* %de
 ; SZ13-NEXT:    vst %v1, 0(%r3), 4
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x float>, <3 x float>* %src
+  %b = load <3 x float>, ptr %src
   %result = call <3 x double> @llvm.experimental.constrained.fpext.v3f64.v3f32(
                               <3 x float> %b,
                               metadata !"fpexcept.strict") #0
-  store <3 x double> %result, <3 x double>* %dest
+  store <3 x double> %result, ptr %dest
   ret void
 }
 
@@ -5660,7 +5660,7 @@ entry:
   ret <3 x float> %ceil
 }
 
-define void @constrained_vector_ceil_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_ceil_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_ceil_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -5705,11 +5705,11 @@ define void @constrained_vector_ceil_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %ceil = call <3 x double> @llvm.experimental.constrained.ceil.v3f64(
                           <3 x double> %b,
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %ceil, <3 x double>* %a
+  store <3 x double> %ceil, ptr %a
   ret void
 }
 
@@ -5830,7 +5830,7 @@ entry:
   ret <3 x float> %floor
 }
 
-define void @constrained_vector_floor_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_floor_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_floor_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -5875,11 +5875,11 @@ define void @constrained_vector_floor_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %floor = call <3 x double> @llvm.experimental.constrained.floor.v3f64(
                           <3 x double> %b,
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %floor, <3 x double>* %a
+  store <3 x double> %floor, ptr %a
   ret void
 }
 
@@ -6000,7 +6000,7 @@ entry:
 }
 
 
-define void @constrained_vector_round_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_round_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_round_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -6045,11 +6045,11 @@ define void @constrained_vector_round_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %round = call <3 x double> @llvm.experimental.constrained.round.v3f64(
                           <3 x double> %b,
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %round, <3 x double>* %a
+  store <3 x double> %round, ptr %a
   ret void
 }
 
@@ -6169,7 +6169,7 @@ entry:
   ret <3 x float> %trunc
 }
 
-define void @constrained_vector_trunc_v3f64(<3 x double>* %a) #0 {
+define void @constrained_vector_trunc_v3f64(ptr %a) #0 {
 ; S390X-LABEL: constrained_vector_trunc_v3f64:
 ; S390X:       # %bb.0: # %entry
 ; S390X-NEXT:    stmg %r13, %r15, 104(%r15)
@@ -6214,11 +6214,11 @@ define void @constrained_vector_trunc_v3f64(<3 x double>* %a) #0 {
 ; SZ13-NEXT:    std %f1, 16(%r2)
 ; SZ13-NEXT:    br %r14
 entry:
-  %b = load <3 x double>, <3 x double>* %a
+  %b = load <3 x double>, ptr %a
   %trunc = call <3 x double> @llvm.experimental.constrained.trunc.v3f64(
                           <3 x double> %b,
                           metadata !"fpexcept.strict") #0
-  store <3 x double> %trunc, <3 x double>* %a
+  store <3 x double> %trunc, ptr %a
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/vectorizer-output-3xi32.ll b/llvm/test/CodeGen/SystemZ/vectorizer-output-3xi32.ll
index 3e7ba6095926f..aa6f575195365 100644
--- a/llvm/test/CodeGen/SystemZ/vectorizer-output-3xi32.ll
+++ b/llvm/test/CodeGen/SystemZ/vectorizer-output-3xi32.ll
@@ -5,6 +5,6 @@
 define void @fun() {
   %1 = zext <3 x i1> zeroinitializer to <3 x i32>
   %2 = extractelement <3 x i32> %1, i32 2
-  store i32 %2, i32* undef, align 8
+  store i32 %2, ptr undef, align 8
   unreachable
 }

diff  --git a/llvm/test/CodeGen/SystemZ/xor-01.ll b/llvm/test/CodeGen/SystemZ/xor-01.ll
index 186dd58307793..f01e86770d7b1 100644
--- a/llvm/test/CodeGen/SystemZ/xor-01.ll
+++ b/llvm/test/CodeGen/SystemZ/xor-01.ll
@@ -15,92 +15,92 @@ define i32 @f1(i32 %a, i32 %b) {
 }
 
 ; Check the low end of the X range.
-define i32 @f2(i32 %a, i32 *%src) {
+define i32 @f2(i32 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: x %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i32, i32 *%src
+  %b = load i32, ptr %src
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the high end of the aligned X range.
-define i32 @f3(i32 %a, i32 *%src) {
+define i32 @f3(i32 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: x %r2, 4092(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1023
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1023
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the next word up, which should use XY instead of X.
-define i32 @f4(i32 %a, i32 *%src) {
+define i32 @f4(i32 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: xy %r2, 4096(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 1024
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 1024
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the high end of the aligned XY range.
-define i32 @f5(i32 %a, i32 *%src) {
+define i32 @f5(i32 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: xy %r2, 524284(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131071
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131071
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the next word up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f6(i32 %a, i32 *%src) {
+define i32 @f6(i32 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: agfi %r3, 524288
 ; CHECK: x %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 131072
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the high end of the negative aligned XY range.
-define i32 @f7(i32 %a, i32 *%src) {
+define i32 @f7(i32 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: xy %r2, -4(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -1
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -1
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the low end of the XY range.
-define i32 @f8(i32 %a, i32 *%src) {
+define i32 @f8(i32 %a, ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: xy %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131072
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131072
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check the next word down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i32 @f9(i32 %a, i32 *%src) {
+define i32 @f9(i32 %a, ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: agfi %r3, -524292
 ; CHECK: x %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i32, i32 *%src, i64 -131073
-  %b = load i32, i32 *%ptr
+  %ptr = getelementptr i32, ptr %src, i64 -131073
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
@@ -112,8 +112,8 @@ define i32 @f10(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4092
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
@@ -125,38 +125,38 @@ define i32 @f11(i32 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i32 *
-  %b = load i32, i32 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i32, ptr %ptr
   %xor = xor i32 %a, %b
   ret i32 %xor
 }
 
 ; Check that XORs of spilled values can use X rather than XR.
-define i32 @f12(i32 *%ptr0) {
+define i32 @f12(ptr %ptr0) {
 ; CHECK-LABEL: f12:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: x %r2, 16{{[04]}}(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i32, i32 *%ptr0, i64 2
-  %ptr2 = getelementptr i32, i32 *%ptr0, i64 4
-  %ptr3 = getelementptr i32, i32 *%ptr0, i64 6
-  %ptr4 = getelementptr i32, i32 *%ptr0, i64 8
-  %ptr5 = getelementptr i32, i32 *%ptr0, i64 10
-  %ptr6 = getelementptr i32, i32 *%ptr0, i64 12
-  %ptr7 = getelementptr i32, i32 *%ptr0, i64 14
-  %ptr8 = getelementptr i32, i32 *%ptr0, i64 16
-  %ptr9 = getelementptr i32, i32 *%ptr0, i64 18
-
-  %val0 = load i32, i32 *%ptr0
-  %val1 = load i32, i32 *%ptr1
-  %val2 = load i32, i32 *%ptr2
-  %val3 = load i32, i32 *%ptr3
-  %val4 = load i32, i32 *%ptr4
-  %val5 = load i32, i32 *%ptr5
-  %val6 = load i32, i32 *%ptr6
-  %val7 = load i32, i32 *%ptr7
-  %val8 = load i32, i32 *%ptr8
-  %val9 = load i32, i32 *%ptr9
+  %ptr1 = getelementptr i32, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i32, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i32, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i32, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i32, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i32, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i32, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i32, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i32, ptr %ptr0, i64 18
+
+  %val0 = load i32, ptr %ptr0
+  %val1 = load i32, ptr %ptr1
+  %val2 = load i32, ptr %ptr2
+  %val3 = load i32, ptr %ptr3
+  %val4 = load i32, ptr %ptr4
+  %val5 = load i32, ptr %ptr5
+  %val6 = load i32, ptr %ptr6
+  %val7 = load i32, ptr %ptr7
+  %val8 = load i32, ptr %ptr8
+  %val9 = load i32, ptr %ptr9
 
   %ret = call i32 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/xor-03.ll b/llvm/test/CodeGen/SystemZ/xor-03.ll
index 8098a32d9278e..1860eef824e00 100644
--- a/llvm/test/CodeGen/SystemZ/xor-03.ll
+++ b/llvm/test/CodeGen/SystemZ/xor-03.ll
@@ -15,70 +15,70 @@ define i64 @f1(i64 %a, i64 %b) {
 }
 
 ; Check XG with no displacement.
-define i64 @f2(i64 %a, i64 *%src) {
+define i64 @f2(i64 %a, ptr %src) {
 ; CHECK-LABEL: f2:
 ; CHECK: xg %r2, 0(%r3)
 ; CHECK: br %r14
-  %b = load i64, i64 *%src
+  %b = load i64, ptr %src
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
 
 ; Check the high end of the aligned XG range.
-define i64 @f3(i64 %a, i64 *%src) {
+define i64 @f3(i64 %a, ptr %src) {
 ; CHECK-LABEL: f3:
 ; CHECK: xg %r2, 524280(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65535
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65535
+  %b = load i64, ptr %ptr
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
 
 ; Check the next doubleword up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f4(i64 %a, i64 *%src) {
+define i64 @f4(i64 %a, ptr %src) {
 ; CHECK-LABEL: f4:
 ; CHECK: agfi %r3, 524288
 ; CHECK: xg %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 65536
+  %b = load i64, ptr %ptr
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
 
 ; Check the high end of the negative aligned XG range.
-define i64 @f5(i64 %a, i64 *%src) {
+define i64 @f5(i64 %a, ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: xg %r2, -8(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -1
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -1
+  %b = load i64, ptr %ptr
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
 
 ; Check the low end of the XG range.
-define i64 @f6(i64 %a, i64 *%src) {
+define i64 @f6(i64 %a, ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: xg %r2, -524288(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65536
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65536
+  %b = load i64, ptr %ptr
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
 
 ; Check the next doubleword down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define i64 @f7(i64 %a, i64 *%src) {
+define i64 @f7(i64 %a, ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: agfi %r3, -524296
 ; CHECK: xg %r2, 0(%r3)
 ; CHECK: br %r14
-  %ptr = getelementptr i64, i64 *%src, i64 -65537
-  %b = load i64, i64 *%ptr
+  %ptr = getelementptr i64, ptr %src, i64 -65537
+  %b = load i64, ptr %ptr
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
@@ -90,38 +90,38 @@ define i64 @f8(i64 %a, i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 524280
-  %ptr = inttoptr i64 %add2 to i64 *
-  %b = load i64, i64 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %b = load i64, ptr %ptr
   %xor = xor i64 %a, %b
   ret i64 %xor
 }
 
 ; Check that XORs of spilled values can use OG rather than OGR.
-define i64 @f9(i64 *%ptr0) {
+define i64 @f9(ptr %ptr0) {
 ; CHECK-LABEL: f9:
 ; CHECK: brasl %r14, foo at PLT
 ; CHECK: xg %r2, 160(%r15)
 ; CHECK: br %r14
-  %ptr1 = getelementptr i64, i64 *%ptr0, i64 2
-  %ptr2 = getelementptr i64, i64 *%ptr0, i64 4
-  %ptr3 = getelementptr i64, i64 *%ptr0, i64 6
-  %ptr4 = getelementptr i64, i64 *%ptr0, i64 8
-  %ptr5 = getelementptr i64, i64 *%ptr0, i64 10
-  %ptr6 = getelementptr i64, i64 *%ptr0, i64 12
-  %ptr7 = getelementptr i64, i64 *%ptr0, i64 14
-  %ptr8 = getelementptr i64, i64 *%ptr0, i64 16
-  %ptr9 = getelementptr i64, i64 *%ptr0, i64 18
+  %ptr1 = getelementptr i64, ptr %ptr0, i64 2
+  %ptr2 = getelementptr i64, ptr %ptr0, i64 4
+  %ptr3 = getelementptr i64, ptr %ptr0, i64 6
+  %ptr4 = getelementptr i64, ptr %ptr0, i64 8
+  %ptr5 = getelementptr i64, ptr %ptr0, i64 10
+  %ptr6 = getelementptr i64, ptr %ptr0, i64 12
+  %ptr7 = getelementptr i64, ptr %ptr0, i64 14
+  %ptr8 = getelementptr i64, ptr %ptr0, i64 16
+  %ptr9 = getelementptr i64, ptr %ptr0, i64 18
 
-  %val0 = load i64, i64 *%ptr0
-  %val1 = load i64, i64 *%ptr1
-  %val2 = load i64, i64 *%ptr2
-  %val3 = load i64, i64 *%ptr3
-  %val4 = load i64, i64 *%ptr4
-  %val5 = load i64, i64 *%ptr5
-  %val6 = load i64, i64 *%ptr6
-  %val7 = load i64, i64 *%ptr7
-  %val8 = load i64, i64 *%ptr8
-  %val9 = load i64, i64 *%ptr9
+  %val0 = load i64, ptr %ptr0
+  %val1 = load i64, ptr %ptr1
+  %val2 = load i64, ptr %ptr2
+  %val3 = load i64, ptr %ptr3
+  %val4 = load i64, ptr %ptr4
+  %val5 = load i64, ptr %ptr5
+  %val6 = load i64, ptr %ptr6
+  %val7 = load i64, ptr %ptr7
+  %val8 = load i64, ptr %ptr8
+  %val9 = load i64, ptr %ptr9
 
   %ret = call i64 @foo()
 

diff  --git a/llvm/test/CodeGen/SystemZ/xor-05.ll b/llvm/test/CodeGen/SystemZ/xor-05.ll
index 39aba3ba2bb8f..5640e236793e5 100644
--- a/llvm/test/CodeGen/SystemZ/xor-05.ll
+++ b/llvm/test/CodeGen/SystemZ/xor-05.ll
@@ -3,134 +3,134 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Check the lowest useful constant, expressed as a signed integer.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: xi 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, -255
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the highest useful constant, expressed as a signed integer.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, -2
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the lowest useful constant, expressed as an unsigned integer.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: xi 0(%r2), 1
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 1
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the highest useful constant, expressed as a unsigned integer.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 254
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the high end of the XI range.
-define void @f5(i8 *%src) {
+define void @f5(ptr %src) {
 ; CHECK-LABEL: f5:
 ; CHECK: xi 4095(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4095
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4095
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which should use XIY instead of XI.
-define void @f6(i8 *%src) {
+define void @f6(ptr %src) {
 ; CHECK-LABEL: f6:
 ; CHECK: xiy 4096(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 4096
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 4096
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the high end of the XIY range.
-define void @f7(i8 *%src) {
+define void @f7(ptr %src) {
 ; CHECK-LABEL: f7:
 ; CHECK: xiy 524287(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524287
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524287
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the next byte up, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f8(i8 *%src) {
+define void @f8(ptr %src) {
 ; CHECK-LABEL: f8:
 ; CHECK: agfi %r2, 524288
 ; CHECK: xi 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 524288
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the high end of the negative XIY range.
-define void @f9(i8 *%src) {
+define void @f9(ptr %src) {
 ; CHECK-LABEL: f9:
 ; CHECK: xiy -1(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -1
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -1
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the low end of the XIY range.
-define void @f10(i8 *%src) {
+define void @f10(ptr %src) {
 ; CHECK-LABEL: f10:
 ; CHECK: xiy -524288(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524288
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524288
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
 ; Check the next byte down, which needs separate address logic.
 ; Other sequences besides this one would be OK.
-define void @f11(i8 *%src) {
+define void @f11(ptr %src) {
 ; CHECK-LABEL: f11:
 ; CHECK: agfi %r2, -524289
 ; CHECK: xi 0(%r2), 127
 ; CHECK: br %r14
-  %ptr = getelementptr i8, i8 *%src, i64 -524289
-  %val = load i8, i8 *%ptr
+  %ptr = getelementptr i8, ptr %src, i64 -524289
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
@@ -142,10 +142,10 @@ define void @f12(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4095
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }
 
@@ -157,9 +157,9 @@ define void @f13(i64 %src, i64 %index) {
 ; CHECK: br %r14
   %add1 = add i64 %src, %index
   %add2 = add i64 %add1, 4096
-  %ptr = inttoptr i64 %add2 to i8 *
-  %val = load i8, i8 *%ptr
+  %ptr = inttoptr i64 %add2 to ptr
+  %val = load i8, ptr %ptr
   %xor = xor i8 %val, 127
-  store i8 %xor, i8 *%ptr
+  store i8 %xor, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/xor-06.ll b/llvm/test/CodeGen/SystemZ/xor-06.ll
index ee7193f44e340..083fefcdde166 100644
--- a/llvm/test/CodeGen/SystemZ/xor-06.ll
+++ b/llvm/test/CodeGen/SystemZ/xor-06.ll
@@ -4,105 +4,105 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Zero extension to 32 bits, negative constant.
-define void @f1(i8 *%ptr) {
+define void @f1(ptr %ptr) {
 ; CHECK-LABEL: f1:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %xor = xor i32 %ext, -2
   %trunc = trunc i32 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 64 bits, negative constant.
-define void @f2(i8 *%ptr) {
+define void @f2(ptr %ptr) {
 ; CHECK-LABEL: f2:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %xor = xor i64 %ext, -2
   %trunc = trunc i64 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 32 bits, positive constant.
-define void @f3(i8 *%ptr) {
+define void @f3(ptr %ptr) {
 ; CHECK-LABEL: f3:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i32
   %xor = xor i32 %ext, 254
   %trunc = trunc i32 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Zero extension to 64 bits, positive constant.
-define void @f4(i8 *%ptr) {
+define void @f4(ptr %ptr) {
 ; CHECK-LABEL: f4:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = zext i8 %val to i64
   %xor = xor i64 %ext, 254
   %trunc = trunc i64 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 32 bits, negative constant.
-define void @f5(i8 *%ptr) {
+define void @f5(ptr %ptr) {
 ; CHECK-LABEL: f5:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %xor = xor i32 %ext, -2
   %trunc = trunc i32 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 64 bits, negative constant.
-define void @f6(i8 *%ptr) {
+define void @f6(ptr %ptr) {
 ; CHECK-LABEL: f6:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %xor = xor i64 %ext, -2
   %trunc = trunc i64 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 32 bits, positive constant.
-define void @f7(i8 *%ptr) {
+define void @f7(ptr %ptr) {
 ; CHECK-LABEL: f7:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i32
   %xor = xor i32 %ext, 254
   %trunc = trunc i32 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }
 
 ; Sign extension to 64 bits, positive constant.
-define void @f8(i8 *%ptr) {
+define void @f8(ptr %ptr) {
 ; CHECK-LABEL: f8:
 ; CHECK: xi 0(%r2), 254
 ; CHECK: br %r14
-  %val = load i8, i8 *%ptr
+  %val = load i8, ptr %ptr
   %ext = sext i8 %val to i64
   %xor = xor i64 %ext, 254
   %trunc = trunc i64 %xor to i8
-  store i8 %trunc, i8 *%ptr
+  store i8 %trunc, ptr %ptr
   ret void
 }

diff  --git a/llvm/test/CodeGen/SystemZ/xor-08.ll b/llvm/test/CodeGen/SystemZ/xor-08.ll
index c707d5a82947d..ef2b57e8bf1e2 100644
--- a/llvm/test/CodeGen/SystemZ/xor-08.ll
+++ b/llvm/test/CodeGen/SystemZ/xor-08.ll
@@ -3,54 +3,54 @@
 ; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
 
 ; Test the simple i8 case.
-define void @f1(i8 *%ptr1) {
+define void @f1(ptr %ptr1) {
 ; CHECK-LABEL: f1:
 ; CHECK: xc 1(1,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i8, i8 *%ptr1, i64 1
-  %val = load i8, i8 *%ptr1
-  %old = load i8, i8 *%ptr2
+  %ptr2 = getelementptr i8, ptr %ptr1, i64 1
+  %val = load i8, ptr %ptr1
+  %old = load i8, ptr %ptr2
   %xor = xor i8 %val, %old
-  store i8 %xor, i8 *%ptr2
+  store i8 %xor, ptr %ptr2
   ret void
 }
 
 ; Test the simple i16 case.
-define void @f2(i16 *%ptr1) {
+define void @f2(ptr %ptr1) {
 ; CHECK-LABEL: f2:
 ; CHECK: xc 2(2,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i16, i16 *%ptr1, i64 1
-  %val = load i16, i16 *%ptr1
-  %old = load i16, i16 *%ptr2
+  %ptr2 = getelementptr i16, ptr %ptr1, i64 1
+  %val = load i16, ptr %ptr1
+  %old = load i16, ptr %ptr2
   %xor = xor i16 %val, %old
-  store i16 %xor, i16 *%ptr2
+  store i16 %xor, ptr %ptr2
   ret void
 }
 
 ; Test the simple i32 case.
-define void @f3(i32 *%ptr1) {
+define void @f3(ptr %ptr1) {
 ; CHECK-LABEL: f3:
 ; CHECK: xc 4(4,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i32, i32 *%ptr1, i64 1
-  %val = load i32, i32 *%ptr1
-  %old = load i32, i32 *%ptr2
+  %ptr2 = getelementptr i32, ptr %ptr1, i64 1
+  %val = load i32, ptr %ptr1
+  %old = load i32, ptr %ptr2
   %xor = xor i32 %old, %val
-  store i32 %xor, i32 *%ptr2
+  store i32 %xor, ptr %ptr2
   ret void
 }
 
 ; Test the i64 case.
-define void @f4(i64 *%ptr1) {
+define void @f4(ptr %ptr1) {
 ; CHECK-LABEL: f4:
 ; CHECK: xc 8(8,%r2), 0(%r2)
 ; CHECK: br %r14
-  %ptr2 = getelementptr i64, i64 *%ptr1, i64 1
-  %val = load i64, i64 *%ptr1
-  %old = load i64, i64 *%ptr2
+  %ptr2 = getelementptr i64, ptr %ptr1, i64 1
+  %val = load i64, ptr %ptr1
+  %old = load i64, ptr %ptr2
   %xor = xor i64 %old, %val
-  store i64 %xor, i64 *%ptr2
+  store i64 %xor, ptr %ptr2
   ret void
 }
 

diff  --git a/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll b/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
index ee816f4f6a791..f074a26481099 100644
--- a/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-prologue-epilog.ll
@@ -27,22 +27,22 @@ define void @func0() {
 ; CHECK64: lmg 7, 15, 2072(4)
 ; CHECK64: aghi  4, 160
 ; CHECK64: b 2(7)
-define void @func1(i64 *%ptr) {
-  %l01 = load volatile i64, i64 *%ptr
-  %l02 = load volatile i64, i64 *%ptr
-  %l03 = load volatile i64, i64 *%ptr
-  %l04 = load volatile i64, i64 *%ptr
-  %l05 = load volatile i64, i64 *%ptr
-  %l06 = load volatile i64, i64 *%ptr
-  %l07 = load volatile i64, i64 *%ptr
-  %l08 = load volatile i64, i64 *%ptr
-  %l09 = load volatile i64, i64 *%ptr
-  %l10 = load volatile i64, i64 *%ptr
-  %l11 = load volatile i64, i64 *%ptr
-  %l12 = load volatile i64, i64 *%ptr
-  %l13 = load volatile i64, i64 *%ptr
-  %l14 = load volatile i64, i64 *%ptr
-  %l15 = load volatile i64, i64 *%ptr
+define void @func1(ptr %ptr) {
+  %l01 = load volatile i64, ptr %ptr
+  %l02 = load volatile i64, ptr %ptr
+  %l03 = load volatile i64, ptr %ptr
+  %l04 = load volatile i64, ptr %ptr
+  %l05 = load volatile i64, ptr %ptr
+  %l06 = load volatile i64, ptr %ptr
+  %l07 = load volatile i64, ptr %ptr
+  %l08 = load volatile i64, ptr %ptr
+  %l09 = load volatile i64, ptr %ptr
+  %l10 = load volatile i64, ptr %ptr
+  %l11 = load volatile i64, ptr %ptr
+  %l12 = load volatile i64, ptr %ptr
+  %l13 = load volatile i64, ptr %ptr
+  %l14 = load volatile i64, ptr %ptr
+  %l15 = load volatile i64, ptr %ptr
   %add01 = add i64 %l01, %l01
   %add02 = add i64 %l02, %add01
   %add03 = add i64 %l03, %add02
@@ -58,21 +58,21 @@ define void @func1(i64 *%ptr) {
   %add13 = add i64 %l13, %add12
   %add14 = add i64 %l14, %add13
   %add15 = add i64 %l15, %add14
-  store volatile i64 %add01, i64 *%ptr
-  store volatile i64 %add02, i64 *%ptr
-  store volatile i64 %add03, i64 *%ptr
-  store volatile i64 %add04, i64 *%ptr
-  store volatile i64 %add05, i64 *%ptr
-  store volatile i64 %add06, i64 *%ptr
-  store volatile i64 %add07, i64 *%ptr
-  store volatile i64 %add08, i64 *%ptr
-  store volatile i64 %add09, i64 *%ptr
-  store volatile i64 %add10, i64 *%ptr
-  store volatile i64 %add11, i64 *%ptr
-  store volatile i64 %add12, i64 *%ptr
-  store volatile i64 %add13, i64 *%ptr
-  store volatile i64 %add14, i64 *%ptr
-  store volatile i64 %add15, i64 *%ptr
+  store volatile i64 %add01, ptr %ptr
+  store volatile i64 %add02, ptr %ptr
+  store volatile i64 %add03, ptr %ptr
+  store volatile i64 %add04, ptr %ptr
+  store volatile i64 %add05, ptr %ptr
+  store volatile i64 %add06, ptr %ptr
+  store volatile i64 %add07, ptr %ptr
+  store volatile i64 %add08, ptr %ptr
+  store volatile i64 %add09, ptr %ptr
+  store volatile i64 %add10, ptr %ptr
+  store volatile i64 %add11, ptr %ptr
+  store volatile i64 %add12, ptr %ptr
+  store volatile i64 %add13, ptr %ptr
+  store volatile i64 %add14, ptr %ptr
+  store volatile i64 %add15, ptr %ptr
   ret void
 }
 
@@ -118,23 +118,23 @@ define void @func1(i64 *%ptr) {
 ; CHECK64: aghi  4, 320
 ; CHECK64: b 2(7)
 
-define void @func2(double *%ptr, <2 x i64> *%vec_ptr) {
-  %l00 = load volatile double, double *%ptr
-  %l01 = load volatile double, double *%ptr
-  %l02 = load volatile double, double *%ptr
-  %l03 = load volatile double, double *%ptr
-  %l04 = load volatile double, double *%ptr
-  %l05 = load volatile double, double *%ptr
-  %l06 = load volatile double, double *%ptr
-  %l07 = load volatile double, double *%ptr
-  %l08 = load volatile double, double *%ptr
-  %l09 = load volatile double, double *%ptr
-  %l10 = load volatile double, double *%ptr
-  %l11 = load volatile double, double *%ptr
-  %l12 = load volatile double, double *%ptr
-  %l13 = load volatile double, double *%ptr
-  %l14 = load volatile double, double *%ptr
-  %l15 = load volatile double, double *%ptr
+define void @func2(ptr %ptr, ptr %vec_ptr) {
+  %l00 = load volatile double, ptr %ptr
+  %l01 = load volatile double, ptr %ptr
+  %l02 = load volatile double, ptr %ptr
+  %l03 = load volatile double, ptr %ptr
+  %l04 = load volatile double, ptr %ptr
+  %l05 = load volatile double, ptr %ptr
+  %l06 = load volatile double, ptr %ptr
+  %l07 = load volatile double, ptr %ptr
+  %l08 = load volatile double, ptr %ptr
+  %l09 = load volatile double, ptr %ptr
+  %l10 = load volatile double, ptr %ptr
+  %l11 = load volatile double, ptr %ptr
+  %l12 = load volatile double, ptr %ptr
+  %l13 = load volatile double, ptr %ptr
+  %l14 = load volatile double, ptr %ptr
+  %l15 = load volatile double, ptr %ptr
   %add00 = fadd double %l01, %l00
   %add01 = fadd double %l01, %add00
   %add02 = fadd double %l02, %add01
@@ -151,55 +151,55 @@ define void @func2(double *%ptr, <2 x i64> *%vec_ptr) {
   %add13 = fadd double %l13, %add12
   %add14 = fadd double %l14, %add13
   %add15 = fadd double %l15, %add14
-  store volatile double %add00, double *%ptr
-  store volatile double %add01, double *%ptr
-  store volatile double %add02, double *%ptr
-  store volatile double %add03, double *%ptr
-  store volatile double %add04, double *%ptr
-  store volatile double %add05, double *%ptr
-  store volatile double %add06, double *%ptr
-  store volatile double %add07, double *%ptr
-  store volatile double %add08, double *%ptr
-  store volatile double %add09, double *%ptr
-  store volatile double %add10, double *%ptr
-  store volatile double %add11, double *%ptr
-  store volatile double %add12, double *%ptr
-  store volatile double %add13, double *%ptr
-  store volatile double %add14, double *%ptr
-  store volatile double %add15, double *%ptr
+  store volatile double %add00, ptr %ptr
+  store volatile double %add01, ptr %ptr
+  store volatile double %add02, ptr %ptr
+  store volatile double %add03, ptr %ptr
+  store volatile double %add04, ptr %ptr
+  store volatile double %add05, ptr %ptr
+  store volatile double %add06, ptr %ptr
+  store volatile double %add07, ptr %ptr
+  store volatile double %add08, ptr %ptr
+  store volatile double %add09, ptr %ptr
+  store volatile double %add10, ptr %ptr
+  store volatile double %add11, ptr %ptr
+  store volatile double %add12, ptr %ptr
+  store volatile double %add13, ptr %ptr
+  store volatile double %add14, ptr %ptr
+  store volatile double %add15, ptr %ptr
 
-  %v00 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v01 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v02 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v03 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v04 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v05 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v06 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v07 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v08 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v09 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v10 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v11 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v12 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v13 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v14 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v15 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v16 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v17 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v18 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v19 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v20 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v21 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v22 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v23 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v24 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v25 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v26 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v27 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v28 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v29 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v30 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
-  %v31 = load volatile <2 x i64>, <2 x i64> *%vec_ptr
+  %v00 = load volatile <2 x i64>, ptr %vec_ptr
+  %v01 = load volatile <2 x i64>, ptr %vec_ptr
+  %v02 = load volatile <2 x i64>, ptr %vec_ptr
+  %v03 = load volatile <2 x i64>, ptr %vec_ptr
+  %v04 = load volatile <2 x i64>, ptr %vec_ptr
+  %v05 = load volatile <2 x i64>, ptr %vec_ptr
+  %v06 = load volatile <2 x i64>, ptr %vec_ptr
+  %v07 = load volatile <2 x i64>, ptr %vec_ptr
+  %v08 = load volatile <2 x i64>, ptr %vec_ptr
+  %v09 = load volatile <2 x i64>, ptr %vec_ptr
+  %v10 = load volatile <2 x i64>, ptr %vec_ptr
+  %v11 = load volatile <2 x i64>, ptr %vec_ptr
+  %v12 = load volatile <2 x i64>, ptr %vec_ptr
+  %v13 = load volatile <2 x i64>, ptr %vec_ptr
+  %v14 = load volatile <2 x i64>, ptr %vec_ptr
+  %v15 = load volatile <2 x i64>, ptr %vec_ptr
+  %v16 = load volatile <2 x i64>, ptr %vec_ptr
+  %v17 = load volatile <2 x i64>, ptr %vec_ptr
+  %v18 = load volatile <2 x i64>, ptr %vec_ptr
+  %v19 = load volatile <2 x i64>, ptr %vec_ptr
+  %v20 = load volatile <2 x i64>, ptr %vec_ptr
+  %v21 = load volatile <2 x i64>, ptr %vec_ptr
+  %v22 = load volatile <2 x i64>, ptr %vec_ptr
+  %v23 = load volatile <2 x i64>, ptr %vec_ptr
+  %v24 = load volatile <2 x i64>, ptr %vec_ptr
+  %v25 = load volatile <2 x i64>, ptr %vec_ptr
+  %v26 = load volatile <2 x i64>, ptr %vec_ptr
+  %v27 = load volatile <2 x i64>, ptr %vec_ptr
+  %v28 = load volatile <2 x i64>, ptr %vec_ptr
+  %v29 = load volatile <2 x i64>, ptr %vec_ptr
+  %v30 = load volatile <2 x i64>, ptr %vec_ptr
+  %v31 = load volatile <2 x i64>, ptr %vec_ptr
   %vadd00 = add <2 x i64> %v00, %v00
   %vadd01 = add <2 x i64> %v01, %vadd00
   %vadd02 = add <2 x i64> %v02, %vadd01
@@ -232,38 +232,38 @@ define void @func2(double *%ptr, <2 x i64> *%vec_ptr) {
   %vadd29 = add <2 x i64> %v29, %vadd28
   %vadd30 = add <2 x i64> %v30, %vadd29
   %vadd31 = add <2 x i64> %v31, %vadd30
-  store volatile <2 x i64> %vadd00, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd01, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd02, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd03, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd04, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd05, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd06, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd07, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd08, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd09, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd10, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd11, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd12, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd13, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd14, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd15, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd16, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd17, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd18, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd19, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd20, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd21, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd22, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd23, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd24, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd25, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd26, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd27, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd28, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd29, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd30, <2 x i64> *%vec_ptr
-  store volatile <2 x i64> %vadd31, <2 x i64> *%vec_ptr
+  store volatile <2 x i64> %vadd00, ptr %vec_ptr
+  store volatile <2 x i64> %vadd01, ptr %vec_ptr
+  store volatile <2 x i64> %vadd02, ptr %vec_ptr
+  store volatile <2 x i64> %vadd03, ptr %vec_ptr
+  store volatile <2 x i64> %vadd04, ptr %vec_ptr
+  store volatile <2 x i64> %vadd05, ptr %vec_ptr
+  store volatile <2 x i64> %vadd06, ptr %vec_ptr
+  store volatile <2 x i64> %vadd07, ptr %vec_ptr
+  store volatile <2 x i64> %vadd08, ptr %vec_ptr
+  store volatile <2 x i64> %vadd09, ptr %vec_ptr
+  store volatile <2 x i64> %vadd10, ptr %vec_ptr
+  store volatile <2 x i64> %vadd11, ptr %vec_ptr
+  store volatile <2 x i64> %vadd12, ptr %vec_ptr
+  store volatile <2 x i64> %vadd13, ptr %vec_ptr
+  store volatile <2 x i64> %vadd14, ptr %vec_ptr
+  store volatile <2 x i64> %vadd15, ptr %vec_ptr
+  store volatile <2 x i64> %vadd16, ptr %vec_ptr
+  store volatile <2 x i64> %vadd17, ptr %vec_ptr
+  store volatile <2 x i64> %vadd18, ptr %vec_ptr
+  store volatile <2 x i64> %vadd19, ptr %vec_ptr
+  store volatile <2 x i64> %vadd20, ptr %vec_ptr
+  store volatile <2 x i64> %vadd21, ptr %vec_ptr
+  store volatile <2 x i64> %vadd22, ptr %vec_ptr
+  store volatile <2 x i64> %vadd23, ptr %vec_ptr
+  store volatile <2 x i64> %vadd24, ptr %vec_ptr
+  store volatile <2 x i64> %vadd25, ptr %vec_ptr
+  store volatile <2 x i64> %vadd26, ptr %vec_ptr
+  store volatile <2 x i64> %vadd27, ptr %vec_ptr
+  store volatile <2 x i64> %vadd28, ptr %vec_ptr
+  store volatile <2 x i64> %vadd29, ptr %vec_ptr
+  store volatile <2 x i64> %vadd30, ptr %vec_ptr
+  store volatile <2 x i64> %vadd31, ptr %vec_ptr
   ret void
 }
 
@@ -274,8 +274,7 @@ define void @func2(double *%ptr, <2 x i64> *%vec_ptr) {
 ; CHECK64: agfi  4, 1040768
 define void @func3() {
   %arr = alloca [130070 x i64], align 8
-  %ptr = bitcast [130070 x i64]* %arr to i8*
-  call i64 (i8*) @fun1(i8* %ptr)
+  call i64 (ptr) @fun1(ptr %arr)
   ret void
 }
 
@@ -290,7 +289,7 @@ define void @func3() {
 ; CHECK64: lmg	4, 9, 2048(4)
 define i64 @func4(i64 %n) {
   %vla = alloca i64, i64 %n, align 8
-  %call = call i64 @fun2(i64 %n, i64* nonnull %vla, i64* nonnull %vla)
+  %call = call i64 @fun2(i64 %n, ptr nonnull %vla, ptr nonnull %vla)
   ret i64 %call
 }
 
@@ -307,8 +306,7 @@ define i64 @func4(i64 %n) {
 define i64 @func5(i64 %n) {
   %vla = alloca i64, i64 %n, align 8
   %arr = alloca [130000 x i64], align 8
-  %ptr = bitcast [130000 x i64]* %arr to i64*
-  %call = call i64 @fun2(i64 %n, i64* nonnull %vla, i64* %ptr)
+  %call = call i64 @fun2(i64 %n, ptr nonnull %vla, ptr %arr)
   ret i64 %call
 }
 
@@ -323,8 +321,7 @@ define i64 @func5(i64 %n) {
 ; CHECK64: stmg  6, 7, 2064(4)
 define void @large_stack() {
   %arr = alloca [131072 x i64], align 8
-  %ptr = bitcast [131072 x i64]* %arr to i8*
-  call i64 (i8*) @fun1(i8* %ptr)
+  call i64 (ptr) @fun1(ptr %arr)
   ret void
 }
 
@@ -344,5 +341,5 @@ define i64 @leaf_func0(i64 %a, i64 %b, i64 %c) {
 }
 
 declare i64 @fun(i64 %arg0)
-declare i64 @fun1(i8* %ptr)
-declare i64 @fun2(i64 %n, i64* %arr0, i64* %arr1)
+declare i64 @fun1(ptr %ptr)
+declare i64 @fun2(i64 %n, ptr %arr0, ptr %arr1)

diff  --git a/llvm/test/CodeGen/SystemZ/zos-stackpointer.ll b/llvm/test/CodeGen/SystemZ/zos-stackpointer.ll
index 2fcc4c789518a..993adedc7d73c 100644
--- a/llvm/test/CodeGen/SystemZ/zos-stackpointer.ll
+++ b/llvm/test/CodeGen/SystemZ/zos-stackpointer.ll
@@ -4,11 +4,11 @@
 ; CHECK: lgr   3, 4
 ; CHECK: b 2(7)
 
-define i8* @get_stack() nounwind {
+define ptr @get_stack() nounwind {
 entry:
         %0 = call i64 @llvm.read_register.i64(metadata !0)
-        %1 = inttoptr i64 %0 to i8*
-  ret i8* %1
+        %1 = inttoptr i64 %0 to ptr
+  ret ptr %1
 }
 
 declare i64 @llvm.read_register.i64(metadata) nounwind


        


More information about the llvm-commits mailing list