11; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6
22; RUN: opt -passes=slp-vectorizer -S -slp-threshold=-100 -mtriple=aarch64-unknown-linux-gnu < %s | FileCheck %s
33
4- define ptr @test (ptr %d ) {
4+ define ptr @test (ptr %d , i64 %v ) {
55; CHECK-LABEL: define ptr @test(
6- ; CHECK-SAME: ptr [[D:%.*]]) {
6+ ; CHECK-SAME: ptr [[D:%.*]], i64 [[V:%.*]] ) {
77; CHECK-NEXT: [[ENTRY:.*:]]
8- ; CHECK-NEXT: [[TMP0:%.*]] = load i8, ptr null , align 1
8+ ; CHECK-NEXT: [[TMP0:%.*]] = load i8, ptr [[D]] , align 1
99; CHECK-NEXT: [[CMP4_2:%.*]] = icmp eq i8 [[TMP0]], 0
10- ; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[CMP4_2]], i64 0, i64 0
11- ; CHECK-NEXT: [[TMP2:%.*]] = xor i64 0, 0
12- ; CHECK-NEXT: [[TMP3:%.*]] = udiv i64 [[TMP2]], 0
13- ; CHECK-NEXT: [[TMP4:%.*]] = udiv i64 1, 0
10+ ; CHECK-NEXT: [[TMP1:%.*]] = select i1 [[CMP4_2]], i64 0, i64 4
11+ ; CHECK-NEXT: [[TMP2:%.*]] = xor i64 0, [[V]]
12+ ; CHECK-NEXT: [[TMP3:%.*]] = udiv i64 [[TMP2]], 3
13+ ; CHECK-NEXT: [[TMP4:%.*]] = udiv i64 1, [[V]]
1414; CHECK-NEXT: [[TMP5:%.*]] = insertelement <6 x i64> poison, i64 [[TMP1]], i32 0
1515; CHECK-NEXT: [[TMP6:%.*]] = insertelement <6 x i64> [[TMP5]], i64 [[TMP3]], i32 1
1616; CHECK-NEXT: [[TMP7:%.*]] = insertelement <6 x i64> [[TMP6]], i64 [[TMP4]], i32 4
1717; CHECK-NEXT: [[TMP8:%.*]] = shufflevector <6 x i64> [[TMP7]], <6 x i64> poison, <6 x i32> <i32 0, i32 1, i32 0, i32 1, i32 4, i32 4>
18- ; CHECK-NEXT: [[TMP9:%.*]] = mul <6 x i64> [[TMP8]], <i64 2, i64 6, i64 1 , i64 1 , i64 1 , i64 0 >
18+ ; CHECK-NEXT: [[TMP9:%.*]] = mul <6 x i64> [[TMP8]], <i64 2, i64 6, i64 4 , i64 3 , i64 5 , i64 4 >
1919; CHECK-NEXT: [[TMP10:%.*]] = extractelement <6 x i64> [[TMP9]], i32 0
2020; CHECK-NEXT: [[TMP11:%.*]] = getelementptr i8, ptr [[D]], i64 [[TMP10]]
2121; CHECK-NEXT: [[TMP12:%.*]] = extractelement <6 x i64> [[TMP9]], i32 1
@@ -31,23 +31,23 @@ define ptr @test(ptr %d) {
3131; CHECK-NEXT: ret ptr [[TMP20]]
3232;
3333entry:
34- %0 = load i8 , ptr null , align 1
34+ %0 = load i8 , ptr %d , align 1
3535 %cmp4.2 = icmp eq i8 %0 , 0
36- %1 = select i1 %cmp4.2 , i64 0 , i64 0
36+ %1 = select i1 %cmp4.2 , i64 0 , i64 4
3737 %2 = shl i64 %1 , 1
3838 %3 = getelementptr i8 , ptr %d , i64 %2
39- %4 = xor i64 0 , 0
40- %5 = udiv i64 %4 , 0
39+ %4 = xor i64 0 , %v
40+ %5 = udiv i64 %4 , 3
4141 %6 = mul i64 %5 , 6
4242 %7 = getelementptr i8 , ptr %d , i64 %6
43- %8 = shl i64 %1 , 0
43+ %8 = shl i64 %1 , 2
4444 %scevgep42 = getelementptr i8 , ptr %d , i64 %8
45- %9 = mul i64 %5 , 1
45+ %9 = mul i64 %5 , 3
4646 %10 = getelementptr i8 , ptr %d , i64 %9
47- %11 = udiv i64 1 , 0
48- %12 = mul i64 %11 , 1
47+ %11 = udiv i64 1 , %v
48+ %12 = mul i64 %11 , 5
4949 %13 = getelementptr i8 , ptr %d , i64 %12
50- %14 = mul i64 %11 , 0
50+ %14 = mul i64 %11 , 4
5151 %15 = getelementptr i8 , ptr %d , i64 %14
5252 ret ptr %15
5353}
0 commit comments