brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 278e55c Raw
53 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s3 4define i32 @test(ptr %sptr, i64 %0) {5; CHECK-LABEL: define i32 @test(6; CHECK-SAME: ptr [[SPTR:%.*]], i64 [[TMP0:%.*]]) {7; CHECK-NEXT:  entry:8; CHECK-NEXT:    [[CONV_I:%.*]] = trunc i64 [[TMP0]] to i329; CHECK-NEXT:    [[IV2:%.*]] = getelementptr i8, ptr [[SPTR]], i64 410; CHECK-NEXT:    [[TMP1:%.*]] = load <4 x i32>, ptr [[IV2]], align 411; CHECK-NEXT:    [[TMP6:%.*]] = insertelement <4 x i32> poison, i32 [[CONV_I]], i32 012; CHECK-NEXT:    [[TMP3:%.*]] = shufflevector <4 x i32> [[TMP6]], <4 x i32> poison, <4 x i32> <i32 poison, i32 0, i32 poison, i32 0>13; CHECK-NEXT:    [[TMP2:%.*]] = shufflevector <4 x i32> [[TMP1]], <4 x i32> [[TMP3]], <4 x i32> <i32 0, i32 5, i32 2, i32 7>14; CHECK-NEXT:    [[TMP4:%.*]] = shufflevector <4 x i32> [[TMP2]], <4 x i32> [[TMP1]], <4 x i32> <i32 1, i32 5, i32 1, i32 poison>15; CHECK-NEXT:    [[TMP5:%.*]] = shufflevector <4 x i32> [[TMP4]], <4 x i32> <i32 poison, i32 poison, i32 poison, i32 0>, <4 x i32> <i32 0, i32 1, i32 2, i32 7>16; CHECK-NEXT:    [[TMP7:%.*]] = icmp slt <4 x i32> [[TMP2]], [[TMP5]]17; CHECK-NEXT:    [[TMP12:%.*]] = icmp sle <4 x i32> [[TMP2]], [[TMP5]]18; CHECK-NEXT:    [[TMP8:%.*]] = shufflevector <4 x i1> [[TMP7]], <4 x i1> [[TMP12]], <4 x i32> <i32 0, i32 1, i32 6, i32 3>19; CHECK-NEXT:    [[TMP9:%.*]] = icmp eq <4 x i32> [[TMP1]], zeroinitializer20; CHECK-NEXT:    [[TMP10:%.*]] = or <4 x i1> [[TMP9]], [[TMP8]]21; CHECK-NEXT:    [[TMP11:%.*]] = call i1 @llvm.vector.reduce.and.v4i1(<4 x i1> [[TMP10]])22; CHECK-NEXT:    [[AND33:%.*]] = zext i1 [[TMP11]] to i3223; CHECK-NEXT:    ret i32 [[AND33]]24;25entry:26  %conv.i = trunc i64 %0 to i3227  %iv2 = getelementptr i8, ptr %sptr, i64 428  %1 = load i32, ptr %iv2, align 429  %cmp11 = icmp slt i32 %1, %conv.i30  %cmp.i57 = icmp eq i32 %1, 031  %or.i5977 = or i1 %cmp.i57, %cmp1132  %iv4 = getelementptr i8, ptr %sptr, i64 1233  %2 = load i32, ptr %iv4, align 434  %cmp16 = icmp sle i32 %2, %conv.i35  %cmp.i62 = icmp eq i32 %2, 036  %or.i6478 = or i1 %cmp.i62, %cmp1637  %iv3 = getelementptr i8, ptr %sptr, i64 838  %3 = load i32, ptr %iv3, align 839  %cmp21 = icmp sgt i32 %3, %conv.i40  %cmp.i67 = icmp eq i32 %3, 041  %or.i6979 = or i1 %cmp.i67, %cmp2142  %iv5 = getelementptr i8, ptr %sptr, i64 1643  %4 = load i32, ptr %iv5, align 844  %cmp26 = icmp slt i32 %conv.i, 045  %cmp.i72 = icmp eq i32 %4, 046  %or.i7480 = or i1 %cmp.i72, %cmp2647  %and3183 = and i1 %or.i5977, %or.i647848  %and3284 = and i1 %and3183, %or.i697949  %and3385 = and i1 %and3284, %or.i748050  %and33 = zext i1 %and3385 to i3251  ret i32 %and3352}53