; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
;RUN: llc < %s -mtriple=i686 -mattr=sse4.1 -stop-after=expand-isel-pseudos 2>&1 | FileCheck %s

; This test makes sure we discard pointer info when we combine a vector load
; and a variable extractelement into a scalar load using an index. There's also
; a test to ensure we don't discard it for the constant index case.

; CHECK: name: const_index
; CHECK:  bb.0 (%ir-block.0):
; CHECK:    [[POINTER:%[0-9]+]]:gr32 = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load 4 from %fixed-stack.0)
; CHECK:    [[LOAD:%[0-9]+]]:gr32 = MOV32rm killed [[POINTER]], 1, $noreg, 4, $noreg :: (load 4 from %ir.v + 4)
; CHECK:    $eax = COPY [[LOAD]]
; CHECK:    RET 0, $eax
define i32 @const_index(<8 x i32>* %v) {
  %a = load <8 x i32>, <8 x i32>* %v
  %b = extractelement <8 x i32> %a, i32 1
  ret i32 %b
}

; CHECK: name: variable_index
; CHECK:  bb.0 (%ir-block.0):
; CHECK:    [[INDEX:%[0-9]+]]:gr32_nosp = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load 4 from %fixed-stack.0)
; CHECK:    [[POINTER:%[0-9]+]]:gr32 = MOV32rm %fixed-stack.1, 1, $noreg, 0, $noreg :: (load 4 from %fixed-stack.1)
; CHECK:    [[LOAD:%[0-9]+]]:gr32 = MOV32rm killed [[POINTER]], 4, killed [[INDEX]], 0, $noreg :: (load 4)
; CHECK:    $eax = COPY [[LOAD]]
; CHECK:    RET 0, $eax
define i32 @variable_index(<8 x i32>* %v, i32 %i) {
  %a = load <8 x i32>, <8 x i32>* %v
  %b = extractelement <8 x i32> %a, i32 %i
  ret i32 %b
}

; CHECK: name: variable_index_with_addrspace
; CHECK:  bb.0 (%ir-block.0):
; CHECK:    [[INDEX:%[0-9]+]]:gr32_nosp = MOV32rm %fixed-stack.0, 1, $noreg, 0, $noreg :: (load 4 from %fixed-stack.0)
; CHECK:    [[POINTER:%[0-9]+]]:gr32 = MOV32rm %fixed-stack.1, 1, $noreg, 0, $noreg :: (load 4 from %fixed-stack.1)
; CHECK:    [[LOAD:%[0-9]+]]:gr32 = MOV32rm killed [[POINTER]], 4, killed [[INDEX]], 0, $noreg :: (load 4, addrspace 1)
; CHECK:    $eax = COPY [[LOAD]]
; CHECK:    RET 0, $eax
define i32 @variable_index_with_addrspace(<8 x i32> addrspace(1)* %v, i32 %i) {
  %a = load <8 x i32>, <8 x i32> addrspace(1)* %v
  %b = extractelement <8 x i32> %a, i32 %i
  ret i32 %b
}
