llvm/llvm/test/Transforms/InstCombine/vec_extract_2elts.ll

; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt < %s -passes=instcombine -S | FileCheck %s

define void @test(<4 x i32> %v, ptr %r1, ptr %r2) {
; CHECK-LABEL: @test(
; CHECK-NEXT:    [[TMP1:%.*]] = extractelement <4 x i32> [[V:%.*]], i64 0
; CHECK-NEXT:    [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
; CHECK-NEXT:    store i64 [[TMP2]], ptr [[R1:%.*]], align 4
; CHECK-NEXT:    store i64 [[TMP2]], ptr [[R2:%.*]], align 4
; CHECK-NEXT:    ret void
;
  %1 = zext <4 x i32> %v to <4 x i64>
  %2 = extractelement <4 x i64> %1, i32 0
  store i64 %2, ptr %r1
  store i64 %2, ptr %r2
  ret void
}