68 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: %if aarch64-registered-target %{ opt < %s -mtriple=aarch64-unknown-linux-gnu -passes=slp-vectorizer -S -slp-threshold=-1000 | FileCheck %s %}3; RUN: %if x86-registered-target %{ opt < %s -mtriple=x86_64-unknown -passes=slp-vectorizer -S -slp-threshold=-1000 | FileCheck %s %}4 5define void @test() {6; CHECK-LABEL: @test(7; CHECK-NEXT: entry:8; CHECK-NEXT: [[CALL37:%.*]] = load i16, ptr poison, align 29; CHECK-NEXT: br label [[BB:%.*]]10; CHECK: bb:11; CHECK-NEXT: [[CALL:%.*]] = load i16, ptr poison, align 212; CHECK-NEXT: [[TMP0:%.*]] = insertelement <8 x i16> <i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 poison, i16 0, i16 poison>, i16 [[CALL37]], i32 313; CHECK-NEXT: [[TMP1:%.*]] = insertelement <8 x i16> [[TMP0]], i16 [[CALL]], i32 514; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i16> [[TMP1]], <8 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 3, i32 5, i32 6, i32 3>15; CHECK-NEXT: [[TMP5:%.*]] = insertelement <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison>, i16 [[CALL37]], i32 616; CHECK-NEXT: [[TMP3:%.*]] = insertelement <8 x i16> [[TMP5]], i16 [[CALL]], i32 717; CHECK-NEXT: [[TMP4:%.*]] = icmp slt <8 x i16> [[TMP2]], [[TMP3]]18; CHECK-NEXT: ret void19;20entry:21 %call37 = load i16, ptr poison, align 222 br label %bb23 24bb:25 %call = load i16, ptr poison, align 226 %0 = icmp slt i16 %call, 027 %1 = icmp slt i16 %call37, %call28 %.not = icmp sgt i16 0, %call3729 %2 = icmp sgt i16 %call37, 030 %3 = icmp slt i16 0, 031 %.not206 = icmp sgt i16 0, %call3732 %4 = icmp sgt i16 0, 033 %5 = icmp slt i16 0, 034 ret void35}36 37define void @test1() {38; CHECK-LABEL: @test1(39; CHECK-NEXT: entry:40; CHECK-NEXT: [[CALL:%.*]] = load i16, ptr poison, align 241; CHECK-NEXT: br label [[BB:%.*]]42; CHECK: bb:43; CHECK-NEXT: [[CALL37:%.*]] = load i16, ptr poison, align 244; CHECK-NEXT: [[TMP0:%.*]] = insertelement <8 x i16> <i16 0, i16 0, i16 0, i16 poison, i16 poison, i16 poison, i16 poison, i16 0>, i16 [[CALL]], i32 345; CHECK-NEXT: [[TMP1:%.*]] = insertelement <8 x i16> [[TMP0]], i16 [[CALL37]], i32 446; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <8 x i16> [[TMP1]], <8 x i16> poison, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 4, i32 4, i32 7>47; CHECK-NEXT: [[TMP5:%.*]] = insertelement <8 x i16> <i16 0, i16 0, i16 0, i16 0, i16 0, i16 0, i16 poison, i16 poison>, i16 [[CALL]], i32 648; CHECK-NEXT: [[TMP3:%.*]] = insertelement <8 x i16> [[TMP5]], i16 [[CALL37]], i32 749; CHECK-NEXT: [[TMP4:%.*]] = icmp slt <8 x i16> [[TMP2]], [[TMP3]]50; CHECK-NEXT: ret void51;52entry:53 %call = load i16, ptr poison, align 254 br label %bb55 56bb:57 %call37 = load i16, ptr poison, align 258 %0 = icmp slt i16 %call, 059 %1 = icmp slt i16 %call37, %call60 %.not = icmp sgt i16 0, %call3761 %2 = icmp sgt i16 %call37, 062 %3 = icmp slt i16 0, 063 %.not206 = icmp sgt i16 0, %call3764 %4 = icmp sgt i16 0, 065 %5 = icmp slt i16 0, 066 ret void67}68