blob: a9b719920c34154e679f575836e0540e5a8d410d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -passes='vector-combine' -S -mtriple=powerpc64-ibm-aix-xcoff %s -o - | FileCheck %s --check-prefix=BE
define i64 @g(<8 x i8> %v) {
; BE-LABEL: @g(
; BE-NEXT: [[TMP1:%.*]] = freeze <8 x i8> [[V:%.*]]
; BE-NEXT: [[TMP2:%.*]] = bitcast <8 x i8> [[TMP1]] to i64
; BE-NEXT: [[TMP3:%.*]] = and i64 [[TMP2]], 255
; BE-NEXT: [[TMP4:%.*]] = lshr i64 [[TMP2]], 56
; BE-NEXT: [[Z:%.*]] = zext <8 x i8> [[V]] to <8 x i64>
; BE-NEXT: [[E0:%.*]] = extractelement <8 x i64> [[Z]], i32 0
; BE-NEXT: [[E7:%.*]] = extractelement <8 x i64> [[Z]], i32 7
; BE-NEXT: [[SUM:%.*]] = add i64 [[TMP4]], [[TMP3]]
; BE-NEXT: ret i64 [[SUM]]
;
%z = zext <8 x i8> %v to <8 x i64>
%e0 = extractelement <8 x i64> %z, i32 0
%e7 = extractelement <8 x i64> %z, i32 7
%sum = add i64 %e0, %e7
ret i64 %sum
}
|