brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · f7918b0 Raw
33 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -O3 -mtriple=arm64-apple-darwinos -S %s | FileCheck %s3 4define noundef i32 @load_ext_extract(ptr %src) {5; CHECK-LABEL: define noundef range(i32 0, 1021) i32 @load_ext_extract(6; CHECK-SAME: ptr readonly captures(none) [[SRC:%.*]]) local_unnamed_addr #[[ATTR0:[0-9]+]] {7; CHECK-NEXT:  [[ENTRY:.*:]]8; CHECK-NEXT:    [[TMP14:%.*]] = load i32, ptr [[SRC]], align 49; CHECK-NEXT:    [[TMP15:%.*]] = lshr i32 [[TMP14]], 2410; CHECK-NEXT:    [[TMP16:%.*]] = lshr i32 [[TMP14]], 1611; CHECK-NEXT:    [[TMP17:%.*]] = and i32 [[TMP16]], 25512; CHECK-NEXT:    [[TMP18:%.*]] = lshr i32 [[TMP14]], 813; CHECK-NEXT:    [[TMP19:%.*]] = and i32 [[TMP18]], 25514; CHECK-NEXT:    [[TMP20:%.*]] = and i32 [[TMP14]], 25515; CHECK-NEXT:    [[ADD1:%.*]] = add nuw nsw i32 [[TMP20]], [[TMP19]]16; CHECK-NEXT:    [[ADD2:%.*]] = add nuw nsw i32 [[ADD1]], [[TMP17]]17; CHECK-NEXT:    [[ADD3:%.*]] = add nuw nsw i32 [[ADD2]], [[TMP15]]18; CHECK-NEXT:    ret i32 [[ADD3]]19;20entry:21  %x = load <4 x i8>, ptr %src, align 422  %ext = zext nneg <4 x i8> %x to <4 x i32>23  %ext.0 = extractelement <4 x i32> %ext, i64 024  %ext.1 = extractelement <4 x i32> %ext, i64 125  %ext.2 = extractelement <4 x i32> %ext, i64 226  %ext.3 = extractelement <4 x i32> %ext, i64 327 28  %add1 = add i32 %ext.0, %ext.129  %add2 = add i32 %add1, %ext.230  %add3 = add i32 %add2, %ext.331  ret i32 %add332}33