22 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < %s -slp-threshold=-100 | FileCheck %s3define i1 @foo(i1 %v) { ; assume %v is 14; CHECK-LABEL: define i1 @foo(5; CHECK-SAME: i1 [[V:%.*]]) {6; CHECK-NEXT: [[ENTRY:.*:]]7; CHECK-NEXT: [[TMP0:%.*]] = insertelement <2 x i1> poison, i1 [[V]], i32 08; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x i1> [[TMP0]], <2 x i1> poison, <2 x i32> zeroinitializer9; CHECK-NEXT: [[TMP2:%.*]] = xor <2 x i1> zeroinitializer, [[TMP1]]10; CHECK-NEXT: [[TMP3:%.*]] = extractelement <2 x i1> [[TMP2]], i32 011; CHECK-NEXT: [[TMP4:%.*]] = extractelement <2 x i1> [[TMP2]], i32 112; CHECK-NEXT: [[SUB:%.*]] = sub i1 [[TMP3]], [[TMP4]]13; CHECK-NEXT: ret i1 [[SUB]]14;15entry:16 %not = xor i1 %v, 1 ; 017 %not1 = xor i1 %not, 1 ; 118 %mul = mul i1 %v, 1 ; 119 %sub = sub i1 %not1, %mul ; 020 ret i1 %sub ; 021}22