summaryrefslogtreecommitdiff
path: root/llvm/test/Transforms/InstCombine/vec_extract_2elts.ll
blob: 1abfb3b667ce838bfe0cb5e03ca19d405de098f9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; 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
}