| ; 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 |
| } |
| |