# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu                                  -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=NO_AVX512VL --check-prefix=NO_AVX512F --check-prefix=SSE
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx                      -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=NO_AVX512VL --check-prefix=NO_AVX512F --check-prefix=AVX
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f                  -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=NO_AVX512VL --check-prefix=AVX512ALL --check-prefix=AVX512F
# RUN: llc -mtriple=x86_64-linux-gnu -mattr=+avx512f -mattr=+avx512vl -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=AVX512ALL --check-prefix=AVX512VL

--- |
  define i8 @test_load_i8(i8* %p1) {
    %r = load i8, i8* %p1
    ret i8 %r
  }

  define i16 @test_load_i16(i16* %p1) {
    %r = load i16, i16* %p1
    ret i16 %r
  }

  define i32 @test_load_i32(i32* %p1) {
    %r = load i32, i32* %p1
    ret i32 %r
  }

  define i64 @test_load_i64(i64* %p1) {
    %r = load i64, i64* %p1
    ret i64 %r
  }

  define float @test_load_float(float* %p1) {
    %r = load float, float* %p1
    ret float %r
  }

  define float @test_load_float_vecreg(float* %p1) {
    %r = load float, float* %p1
    ret float %r
  }

  define double @test_load_double(double* %p1) {
    %r = load double, double* %p1
    ret double %r
  }

  define double @test_load_double_vecreg(double* %p1) {
    %r = load double, double* %p1
    ret double %r
  }

  define i32* @test_store_i32(i32 %val, i32* %p1) {
    store i32 %val, i32* %p1
    ret i32* %p1
  }

  define i64* @test_store_i64(i64 %val, i64* %p1) {
    store i64 %val, i64* %p1
    ret i64* %p1
  }

  define float* @test_store_float(float %val, float* %p1) {
    store float %val, float* %p1
    ret float* %p1
  }

  define float* @test_store_float_vec(float %val, float* %p1) {
    store float %val, float* %p1
    ret float* %p1
  }

  define double* @test_store_double(double %val, double* %p1) {
    store double %val, double* %p1
    ret double* %p1
  }

  define double* @test_store_double_vec(double %val, double* %p1) {
    store double %val, double* %p1
    ret double* %p1
  }

  define i32* @test_load_ptr(i32** %ptr1) {
    %p = load i32*, i32** %ptr1
    ret i32* %p
  }

  define void @test_store_ptr(i32** %ptr1, i32* %a) {
    store i32* %a, i32** %ptr1
    ret void
  }

  define i32 @test_gep_folding(i32* %arr, i32 %val) {
    %arrayidx = getelementptr i32, i32* %arr, i32 5
    store i32 %val, i32* %arrayidx
    %r = load i32, i32* %arrayidx
    ret i32 %r
  }

  define i32 @test_gep_folding_largeGepIndex(i32* %arr, i32 %val) #0 {
    %arrayidx = getelementptr i32, i32* %arr, i64 57179869180
    store i32 %val, i32* %arrayidx
    %r = load i32, i32* %arrayidx
    ret i32 %r
  }
...
---
name:            test_load_i8
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_i8
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV8rm:%[0-9]+]]:gr8 = MOV8rm [[COPY]], 1, $noreg, 0, $noreg :: (load 1 from %ir.p1)
    ; SSE: $al = COPY [[MOV8rm]]
    ; SSE: RET 0, implicit $al
    ; AVX-LABEL: name: test_load_i8
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV8rm:%[0-9]+]]:gr8 = MOV8rm [[COPY]], 1, $noreg, 0, $noreg :: (load 1 from %ir.p1)
    ; AVX: $al = COPY [[MOV8rm]]
    ; AVX: RET 0, implicit $al
    ; AVX512F-LABEL: name: test_load_i8
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV8rm:%[0-9]+]]:gr8 = MOV8rm [[COPY]], 1, $noreg, 0, $noreg :: (load 1 from %ir.p1)
    ; AVX512F: $al = COPY [[MOV8rm]]
    ; AVX512F: RET 0, implicit $al
    ; AVX512VL-LABEL: name: test_load_i8
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV8rm:%[0-9]+]]:gr8 = MOV8rm [[COPY]], 1, $noreg, 0, $noreg :: (load 1 from %ir.p1)
    ; AVX512VL: $al = COPY [[MOV8rm]]
    ; AVX512VL: RET 0, implicit $al
    %0(p0) = COPY $rdi
    %1(s8) = G_LOAD %0(p0) :: (load 1 from %ir.p1)
    $al = COPY %1(s8)
    RET 0, implicit $al

...
---
name:            test_load_i16
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_i16
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV16rm:%[0-9]+]]:gr16 = MOV16rm [[COPY]], 1, $noreg, 0, $noreg :: (load 2 from %ir.p1)
    ; SSE: $ax = COPY [[MOV16rm]]
    ; SSE: RET 0, implicit $ax
    ; AVX-LABEL: name: test_load_i16
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV16rm:%[0-9]+]]:gr16 = MOV16rm [[COPY]], 1, $noreg, 0, $noreg :: (load 2 from %ir.p1)
    ; AVX: $ax = COPY [[MOV16rm]]
    ; AVX: RET 0, implicit $ax
    ; AVX512F-LABEL: name: test_load_i16
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV16rm:%[0-9]+]]:gr16 = MOV16rm [[COPY]], 1, $noreg, 0, $noreg :: (load 2 from %ir.p1)
    ; AVX512F: $ax = COPY [[MOV16rm]]
    ; AVX512F: RET 0, implicit $ax
    ; AVX512VL-LABEL: name: test_load_i16
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV16rm:%[0-9]+]]:gr16 = MOV16rm [[COPY]], 1, $noreg, 0, $noreg :: (load 2 from %ir.p1)
    ; AVX512VL: $ax = COPY [[MOV16rm]]
    ; AVX512VL: RET 0, implicit $ax
    %0(p0) = COPY $rdi
    %1(s16) = G_LOAD %0(p0) :: (load 2 from %ir.p1)
    $ax = COPY %1(s16)
    RET 0, implicit $ax

...
---
name:            test_load_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_i32
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; SSE: $eax = COPY [[MOV32rm]]
    ; SSE: RET 0, implicit $eax
    ; AVX-LABEL: name: test_load_i32
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX: $eax = COPY [[MOV32rm]]
    ; AVX: RET 0, implicit $eax
    ; AVX512F-LABEL: name: test_load_i32
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX512F: $eax = COPY [[MOV32rm]]
    ; AVX512F: RET 0, implicit $eax
    ; AVX512VL-LABEL: name: test_load_i32
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX512VL: $eax = COPY [[MOV32rm]]
    ; AVX512VL: RET 0, implicit $eax
    %0(p0) = COPY $rdi
    %1(s32) = G_LOAD %0(p0) :: (load 4 from %ir.p1)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_load_i64
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_i64
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; SSE: $rax = COPY [[MOV64rm]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_load_i64
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX: $rax = COPY [[MOV64rm]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_load_i64
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX512F: $rax = COPY [[MOV64rm]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_load_i64
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX512VL: $rax = COPY [[MOV64rm]]
    ; AVX512VL: RET 0, implicit $rax
    %0(p0) = COPY $rdi
    %1(s64) = G_LOAD %0(p0) :: (load 8 from %ir.p1)
    $rax = COPY %1(s64)
    RET 0, implicit $rax

...
---
name:            test_load_float
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: vecr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_float
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; SSE: [[COPY1:%[0-9]+]]:fr32 = COPY [[MOV32rm]]
    ; SSE: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; SSE: $xmm0 = COPY [[COPY2]]
    ; SSE: RET 0, implicit $xmm0
    ; AVX-LABEL: name: test_load_float
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX: [[COPY1:%[0-9]+]]:fr32 = COPY [[MOV32rm]]
    ; AVX: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; AVX: $xmm0 = COPY [[COPY2]]
    ; AVX: RET 0, implicit $xmm0
    ; AVX512F-LABEL: name: test_load_float
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX512F: [[COPY1:%[0-9]+]]:fr32x = COPY [[MOV32rm]]
    ; AVX512F: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512F: $xmm0 = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $xmm0
    ; AVX512VL-LABEL: name: test_load_float
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr32x = COPY [[MOV32rm]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512VL: $xmm0 = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $xmm0
    %0:gpr(p0) = COPY $rdi
    %1:gpr(s32) = G_LOAD %0(p0) :: (load 4 from %ir.p1)
    %3:vecr(s32) = COPY %1(s32)
    %2:vecr(s128) = G_ANYEXT %3(s32)
    $xmm0 = COPY %2(s128)
    RET 0, implicit $xmm0

...
---
name:            test_load_float_vecreg
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: vecr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_float_vecreg
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; SSE: [[COPY1:%[0-9]+]]:fr32 = COPY [[MOV32rm]]
    ; SSE: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; SSE: $xmm0 = COPY [[COPY2]]
    ; SSE: RET 0, implicit $xmm0
    ; AVX-LABEL: name: test_load_float_vecreg
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX: [[COPY1:%[0-9]+]]:fr32 = COPY [[MOV32rm]]
    ; AVX: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; AVX: $xmm0 = COPY [[COPY2]]
    ; AVX: RET 0, implicit $xmm0
    ; AVX512F-LABEL: name: test_load_float_vecreg
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX512F: [[COPY1:%[0-9]+]]:fr32x = COPY [[MOV32rm]]
    ; AVX512F: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512F: $xmm0 = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $xmm0
    ; AVX512VL-LABEL: name: test_load_float_vecreg
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 0, $noreg :: (load 4 from %ir.p1)
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr32x = COPY [[MOV32rm]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512VL: $xmm0 = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $xmm0
    %0:gpr(p0) = COPY $rdi
    %1:gpr(s32) = G_LOAD %0(p0) :: (load 4 from %ir.p1)
    %3:vecr(s32) = COPY %1(s32)
    %2:vecr(s128) = G_ANYEXT %3(s32)
    $xmm0 = COPY %2(s128)
    RET 0, implicit $xmm0

...
---
name:            test_load_double
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: vecr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_double
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; SSE: [[COPY1:%[0-9]+]]:fr64 = COPY [[MOV64rm]]
    ; SSE: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; SSE: $xmm0 = COPY [[COPY2]]
    ; SSE: RET 0, implicit $xmm0
    ; AVX-LABEL: name: test_load_double
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX: [[COPY1:%[0-9]+]]:fr64 = COPY [[MOV64rm]]
    ; AVX: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; AVX: $xmm0 = COPY [[COPY2]]
    ; AVX: RET 0, implicit $xmm0
    ; AVX512F-LABEL: name: test_load_double
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX512F: [[COPY1:%[0-9]+]]:fr64x = COPY [[MOV64rm]]
    ; AVX512F: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512F: $xmm0 = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $xmm0
    ; AVX512VL-LABEL: name: test_load_double
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr64x = COPY [[MOV64rm]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512VL: $xmm0 = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $xmm0
    %0:gpr(p0) = COPY $rdi
    %1:gpr(s64) = G_LOAD %0(p0) :: (load 8 from %ir.p1)
    %3:vecr(s64) = COPY %1(s64)
    %2:vecr(s128) = G_ANYEXT %3(s64)
    $xmm0 = COPY %2(s128)
    RET 0, implicit $xmm0

...
---
name:            test_load_double_vecreg
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: vecr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_double_vecreg
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; SSE: [[COPY1:%[0-9]+]]:fr64 = COPY [[MOV64rm]]
    ; SSE: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; SSE: $xmm0 = COPY [[COPY2]]
    ; SSE: RET 0, implicit $xmm0
    ; AVX-LABEL: name: test_load_double_vecreg
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX: [[COPY1:%[0-9]+]]:fr64 = COPY [[MOV64rm]]
    ; AVX: [[COPY2:%[0-9]+]]:vr128 = COPY [[COPY1]]
    ; AVX: $xmm0 = COPY [[COPY2]]
    ; AVX: RET 0, implicit $xmm0
    ; AVX512F-LABEL: name: test_load_double_vecreg
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX512F: [[COPY1:%[0-9]+]]:fr64x = COPY [[MOV64rm]]
    ; AVX512F: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512F: $xmm0 = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $xmm0
    ; AVX512VL-LABEL: name: test_load_double_vecreg
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.p1)
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr64x = COPY [[MOV64rm]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:vr128x = COPY [[COPY1]]
    ; AVX512VL: $xmm0 = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $xmm0
    %0:gpr(p0) = COPY $rdi
    %1:gpr(s64) = G_LOAD %0(p0) :: (load 8 from %ir.p1)
    %3:vecr(s64) = COPY %1(s64)
    %2:vecr(s128) = G_ANYEXT %3(s64)
    $xmm0 = COPY %2(s128)
    RET 0, implicit $xmm0

...
---
name:            test_store_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $rsi

    ; SSE-LABEL: name: test_store_i32
    ; SSE: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; SSE: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; SSE: MOV32mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 4 into %ir.p1)
    ; SSE: $rax = COPY [[COPY1]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_store_i32
    ; AVX: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; AVX: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX: MOV32mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 4 into %ir.p1)
    ; AVX: $rax = COPY [[COPY1]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_store_i32
    ; AVX512F: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; AVX512F: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX512F: MOV32mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 4 into %ir.p1)
    ; AVX512F: $rax = COPY [[COPY1]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_store_i32
    ; AVX512VL: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; AVX512VL: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX512VL: MOV32mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 4 into %ir.p1)
    ; AVX512VL: $rax = COPY [[COPY1]]
    ; AVX512VL: RET 0, implicit $rax
    %0(s32) = COPY $edi
    %1(p0) = COPY $rsi
    G_STORE %0(s32), %1(p0) :: (store 4 into %ir.p1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_store_i64
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $rsi

    ; SSE-LABEL: name: test_store_i64
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; SSE: MOV64mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 8 into %ir.p1)
    ; SSE: $rax = COPY [[COPY1]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_store_i64
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX: MOV64mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 8 into %ir.p1)
    ; AVX: $rax = COPY [[COPY1]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_store_i64
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX512F: MOV64mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 8 into %ir.p1)
    ; AVX512F: $rax = COPY [[COPY1]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_store_i64
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX512VL: MOV64mr [[COPY1]], 1, $noreg, 0, $noreg, [[COPY]] :: (store 8 into %ir.p1)
    ; AVX512VL: $rax = COPY [[COPY1]]
    ; AVX512VL: RET 0, implicit $rax
    %0(s64) = COPY $rdi
    %1(p0) = COPY $rsi
    G_STORE %0(s64), %1(p0) :: (store 8 into %ir.p1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_store_float
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: vecr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: gpr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $xmm0

    ; SSE-LABEL: name: test_store_float
    ; SSE: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; SSE: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
    ; SSE: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; SSE: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; SSE: $rax = COPY [[COPY2]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_store_float
    ; AVX: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; AVX: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
    ; AVX: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; AVX: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; AVX: $rax = COPY [[COPY2]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_store_float
    ; AVX512F: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512F: [[COPY1:%[0-9]+]]:fr32x = COPY [[COPY]]
    ; AVX512F: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; AVX512F: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; AVX512F: $rax = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_store_float
    ; AVX512VL: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr32x = COPY [[COPY]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; AVX512VL: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; AVX512VL: $rax = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $rax
    %2:vecr(s128) = COPY $xmm0
    %0:vecr(s32) = G_TRUNC %2(s128)
    %1:gpr(p0) = COPY $rdi
    %3:gpr(s32) = COPY %0(s32)
    G_STORE %3(s32), %1(p0) :: (store 4 into %ir.p1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_store_float_vec
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: vecr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: gpr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $xmm0

    ; SSE-LABEL: name: test_store_float_vec
    ; SSE: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; SSE: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
    ; SSE: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; SSE: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; SSE: $rax = COPY [[COPY2]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_store_float_vec
    ; AVX: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; AVX: [[COPY1:%[0-9]+]]:fr32 = COPY [[COPY]]
    ; AVX: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; AVX: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; AVX: $rax = COPY [[COPY2]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_store_float_vec
    ; AVX512F: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512F: [[COPY1:%[0-9]+]]:fr32x = COPY [[COPY]]
    ; AVX512F: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; AVX512F: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; AVX512F: $rax = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_store_float_vec
    ; AVX512VL: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr32x = COPY [[COPY]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY3:%[0-9]+]]:gr32 = COPY [[COPY1]]
    ; AVX512VL: MOV32mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 4 into %ir.p1)
    ; AVX512VL: $rax = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $rax
    %2:vecr(s128) = COPY $xmm0
    %0:vecr(s32) = G_TRUNC %2(s128)
    %1:gpr(p0) = COPY $rdi
    %3:gpr(s32) = COPY %0(s32)
    G_STORE %3(s32), %1(p0) :: (store 4 into %ir.p1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_store_double
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: vecr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: gpr, preferred-register: '' }
# NO_AVX512X: %0:fr64 = COPY $xmm0
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $xmm0

    ; SSE-LABEL: name: test_store_double
    ; SSE: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; SSE: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
    ; SSE: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; SSE: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; SSE: $rax = COPY [[COPY2]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_store_double
    ; AVX: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; AVX: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
    ; AVX: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; AVX: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; AVX: $rax = COPY [[COPY2]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_store_double
    ; AVX512F: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512F: [[COPY1:%[0-9]+]]:fr64x = COPY [[COPY]]
    ; AVX512F: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; AVX512F: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; AVX512F: $rax = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_store_double
    ; AVX512VL: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr64x = COPY [[COPY]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; AVX512VL: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; AVX512VL: $rax = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $rax
    %2:vecr(s128) = COPY $xmm0
    %0:vecr(s64) = G_TRUNC %2(s128)
    %1:gpr(p0) = COPY $rdi
    %3:gpr(s64) = COPY %0(s64)
    G_STORE %3(s64), %1(p0) :: (store 8 into %ir.p1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_store_double_vec
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: vecr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: vecr, preferred-register: '' }
  - { id: 3, class: gpr, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $xmm0

    ; SSE-LABEL: name: test_store_double_vec
    ; SSE: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; SSE: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
    ; SSE: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; SSE: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; SSE: $rax = COPY [[COPY2]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_store_double_vec
    ; AVX: [[COPY:%[0-9]+]]:vr128 = COPY $xmm0
    ; AVX: [[COPY1:%[0-9]+]]:fr64 = COPY [[COPY]]
    ; AVX: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; AVX: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; AVX: $rax = COPY [[COPY2]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_store_double_vec
    ; AVX512F: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512F: [[COPY1:%[0-9]+]]:fr64x = COPY [[COPY]]
    ; AVX512F: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; AVX512F: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; AVX512F: $rax = COPY [[COPY2]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_store_double_vec
    ; AVX512VL: [[COPY:%[0-9]+]]:vr128x = COPY $xmm0
    ; AVX512VL: [[COPY1:%[0-9]+]]:fr64x = COPY [[COPY]]
    ; AVX512VL: [[COPY2:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY3:%[0-9]+]]:gr64 = COPY [[COPY1]]
    ; AVX512VL: MOV64mr [[COPY2]], 1, $noreg, 0, $noreg, [[COPY3]] :: (store 8 into %ir.p1)
    ; AVX512VL: $rax = COPY [[COPY2]]
    ; AVX512VL: RET 0, implicit $rax
    %2:vecr(s128) = COPY $xmm0
    %0:vecr(s64) = G_TRUNC %2(s128)
    %1:gpr(p0) = COPY $rdi
    %3:gpr(s64) = COPY %0(s64)
    G_STORE %3(s64), %1(p0) :: (store 8 into %ir.p1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_load_ptr
alignment:       16
legalized:       true
regBankSelected: true
selected:        false
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi

    ; SSE-LABEL: name: test_load_ptr
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.ptr1)
    ; SSE: $rax = COPY [[MOV64rm]]
    ; SSE: RET 0, implicit $rax
    ; AVX-LABEL: name: test_load_ptr
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.ptr1)
    ; AVX: $rax = COPY [[MOV64rm]]
    ; AVX: RET 0, implicit $rax
    ; AVX512F-LABEL: name: test_load_ptr
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.ptr1)
    ; AVX512F: $rax = COPY [[MOV64rm]]
    ; AVX512F: RET 0, implicit $rax
    ; AVX512VL-LABEL: name: test_load_ptr
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[MOV64rm:%[0-9]+]]:gr64 = MOV64rm [[COPY]], 1, $noreg, 0, $noreg :: (load 8 from %ir.ptr1)
    ; AVX512VL: $rax = COPY [[MOV64rm]]
    ; AVX512VL: RET 0, implicit $rax
    %0(p0) = COPY $rdi
    %1(p0) = G_LOAD %0(p0) :: (load 8 from %ir.ptr1)
    $rax = COPY %1(p0)
    RET 0, implicit $rax

...
---
name:            test_store_ptr
alignment:       16
legalized:       true
regBankSelected: true
selected:        false
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $rsi

    ; SSE-LABEL: name: test_store_ptr
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; SSE: MOV64mr [[COPY]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 8 into %ir.ptr1)
    ; SSE: RET 0
    ; AVX-LABEL: name: test_store_ptr
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX: MOV64mr [[COPY]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 8 into %ir.ptr1)
    ; AVX: RET 0
    ; AVX512F-LABEL: name: test_store_ptr
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX512F: MOV64mr [[COPY]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 8 into %ir.ptr1)
    ; AVX512F: RET 0
    ; AVX512VL-LABEL: name: test_store_ptr
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; AVX512VL: MOV64mr [[COPY]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 8 into %ir.ptr1)
    ; AVX512VL: RET 0
    %0(p0) = COPY $rdi
    %1(p0) = COPY $rsi
    G_STORE %1(p0), %0(p0) :: (store 8 into %ir.ptr1)
    RET 0

...
---
name:            test_gep_folding
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
  - { id: 4, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $esi, $rdi

    ; SSE-LABEL: name: test_gep_folding
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; SSE: MOV32mr [[COPY]], 1, $noreg, 20, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; SSE: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 20, $noreg :: (load 4 from %ir.arrayidx)
    ; SSE: $eax = COPY [[MOV32rm]]
    ; SSE: RET 0, implicit $eax
    ; AVX-LABEL: name: test_gep_folding
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; AVX: MOV32mr [[COPY]], 1, $noreg, 20, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; AVX: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 20, $noreg :: (load 4 from %ir.arrayidx)
    ; AVX: $eax = COPY [[MOV32rm]]
    ; AVX: RET 0, implicit $eax
    ; AVX512F-LABEL: name: test_gep_folding
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; AVX512F: MOV32mr [[COPY]], 1, $noreg, 20, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; AVX512F: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 20, $noreg :: (load 4 from %ir.arrayidx)
    ; AVX512F: $eax = COPY [[MOV32rm]]
    ; AVX512F: RET 0, implicit $eax
    ; AVX512VL-LABEL: name: test_gep_folding
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; AVX512VL: MOV32mr [[COPY]], 1, $noreg, 20, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; AVX512VL: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[COPY]], 1, $noreg, 20, $noreg :: (load 4 from %ir.arrayidx)
    ; AVX512VL: $eax = COPY [[MOV32rm]]
    ; AVX512VL: RET 0, implicit $eax
    %0(p0) = COPY $rdi
    %1(s32) = COPY $esi
    %2(s64) = G_CONSTANT i64 20
    %3(p0) = G_GEP %0, %2(s64)
    G_STORE %1(s32), %3(p0) :: (store 4 into %ir.arrayidx)
    %4(s32) = G_LOAD %3(p0) :: (load 4 from %ir.arrayidx)
    $eax = COPY %4(s32)
    RET 0, implicit $eax

...
---
name:            test_gep_folding_largeGepIndex
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
  - { id: 4, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $esi, $rdi

    ; SSE-LABEL: name: test_gep_folding_largeGepIndex
    ; SSE: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; SSE: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; SSE: [[MOV64ri:%[0-9]+]]:gr64_nosp = MOV64ri 228719476720
    ; SSE: [[LEA64r:%[0-9]+]]:gr64 = LEA64r [[COPY]], 1, [[MOV64ri]], 0, $noreg
    ; SSE: MOV32mr [[LEA64r]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; SSE: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[LEA64r]], 1, $noreg, 0, $noreg :: (load 4 from %ir.arrayidx)
    ; SSE: $eax = COPY [[MOV32rm]]
    ; SSE: RET 0, implicit $eax
    ; AVX-LABEL: name: test_gep_folding_largeGepIndex
    ; AVX: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; AVX: [[MOV64ri:%[0-9]+]]:gr64_nosp = MOV64ri 228719476720
    ; AVX: [[LEA64r:%[0-9]+]]:gr64 = LEA64r [[COPY]], 1, [[MOV64ri]], 0, $noreg
    ; AVX: MOV32mr [[LEA64r]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; AVX: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[LEA64r]], 1, $noreg, 0, $noreg :: (load 4 from %ir.arrayidx)
    ; AVX: $eax = COPY [[MOV32rm]]
    ; AVX: RET 0, implicit $eax
    ; AVX512F-LABEL: name: test_gep_folding_largeGepIndex
    ; AVX512F: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512F: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; AVX512F: [[MOV64ri:%[0-9]+]]:gr64_nosp = MOV64ri 228719476720
    ; AVX512F: [[LEA64r:%[0-9]+]]:gr64 = LEA64r [[COPY]], 1, [[MOV64ri]], 0, $noreg
    ; AVX512F: MOV32mr [[LEA64r]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; AVX512F: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[LEA64r]], 1, $noreg, 0, $noreg :: (load 4 from %ir.arrayidx)
    ; AVX512F: $eax = COPY [[MOV32rm]]
    ; AVX512F: RET 0, implicit $eax
    ; AVX512VL-LABEL: name: test_gep_folding_largeGepIndex
    ; AVX512VL: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; AVX512VL: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; AVX512VL: [[MOV64ri:%[0-9]+]]:gr64_nosp = MOV64ri 228719476720
    ; AVX512VL: [[LEA64r:%[0-9]+]]:gr64 = LEA64r [[COPY]], 1, [[MOV64ri]], 0, $noreg
    ; AVX512VL: MOV32mr [[LEA64r]], 1, $noreg, 0, $noreg, [[COPY1]] :: (store 4 into %ir.arrayidx)
    ; AVX512VL: [[MOV32rm:%[0-9]+]]:gr32 = MOV32rm [[LEA64r]], 1, $noreg, 0, $noreg :: (load 4 from %ir.arrayidx)
    ; AVX512VL: $eax = COPY [[MOV32rm]]
    ; AVX512VL: RET 0, implicit $eax
    %0(p0) = COPY $rdi
    %1(s32) = COPY $esi
    %2(s64) = G_CONSTANT i64 228719476720
    %3(p0) = G_GEP %0, %2(s64)
    G_STORE %1(s32), %3(p0) :: (store 4 into %ir.arrayidx)
    %4(s32) = G_LOAD %3(p0) :: (load 4 from %ir.arrayidx)
    $eax = COPY %4(s32)
    RET 0, implicit $eax

...
