|
1 | 1 | ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 4
|
2 |
| -; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu < %s | FileCheck %s |
| 2 | +; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -slp-threshold=-3 < %s | FileCheck %s |
3 | 3 |
|
4 |
| -define void @t() { |
5 |
| -; CHECK-LABEL: define void @t() { |
| 4 | +define void @t(i64 %v) { |
| 5 | +; CHECK-LABEL: define void @t( |
| 6 | +; CHECK-SAME: i64 [[V:%.*]]) { |
6 | 7 | ; CHECK-NEXT: entry:
|
7 |
| -; CHECK-NEXT: [[TMP0:%.*]] = or i32 0, 0 |
| 8 | +; CHECK-NEXT: [[CONV12_1_I:%.*]] = trunc i64 [[V]] to i32 |
| 9 | +; CHECK-NEXT: [[MUL_I_1_I:%.*]] = mul i32 [[CONV12_1_I]], 2 |
| 10 | +; CHECK-NEXT: [[CONV12_I:%.*]] = trunc i64 [[V]] to i32 |
| 11 | +; CHECK-NEXT: [[MUL_I_I:%.*]] = mul i32 [[CONV12_I]], 3 |
| 12 | +; CHECK-NEXT: [[CONV14104_I:%.*]] = or i32 [[MUL_I_1_I]], [[MUL_I_I]] |
| 13 | +; CHECK-NEXT: [[CONV12_1_I_1:%.*]] = trunc i64 [[V]] to i32 |
| 14 | +; CHECK-NEXT: [[MUL_I_1_I_1:%.*]] = mul i32 [[CONV12_1_I_1]], 6 |
| 15 | +; CHECK-NEXT: [[CONV12_I_1:%.*]] = trunc i64 [[V]] to i32 |
| 16 | +; CHECK-NEXT: [[MUL_I_I_1:%.*]] = mul i32 [[CONV12_I_1]], 5 |
| 17 | +; CHECK-NEXT: [[CONV14104_I_1:%.*]] = or i32 [[MUL_I_1_I_1]], [[MUL_I_I_1]] |
| 18 | +; CHECK-NEXT: [[TMP0:%.*]] = or i32 [[CONV14104_I]], [[CONV14104_I_1]] |
8 | 19 | ; CHECK-NEXT: [[TMP1:%.*]] = and i32 [[TMP0]], 65535
|
9 | 20 | ; CHECK-NEXT: store i32 [[TMP1]], ptr null, align 4
|
10 | 21 | ; CHECK-NEXT: ret void
|
11 | 22 | ;
|
12 | 23 | entry:
|
13 |
| - %conv12.1.i = trunc i64 0 to i32 |
14 |
| - %mul.i.1.i = mul i32 %conv12.1.i, 0 |
15 |
| - %conv12.i = trunc i64 0 to i32 |
16 |
| - %mul.i.i = mul i32 %conv12.i, 0 |
| 24 | + %conv12.1.i = trunc i64 %v to i32 |
| 25 | + %mul.i.1.i = mul i32 %conv12.1.i, 2 |
| 26 | + %conv12.i = trunc i64 %v to i32 |
| 27 | + %mul.i.i = mul i32 %conv12.i, 3 |
17 | 28 | %conv14104.i = or i32 %mul.i.1.i, %mul.i.i
|
18 |
| - %conv12.1.i.1 = trunc i64 0 to i32 |
19 |
| - %mul.i.1.i.1 = mul i32 %conv12.1.i.1, 0 |
20 |
| - %conv12.i.1 = trunc i64 0 to i32 |
21 |
| - %mul.i.i.1 = mul i32 %conv12.i.1, 0 |
| 29 | + %conv12.1.i.1 = trunc i64 %v to i32 |
| 30 | + %mul.i.1.i.1 = mul i32 %conv12.1.i.1, 6 |
| 31 | + %conv12.i.1 = trunc i64 %v to i32 |
| 32 | + %mul.i.i.1 = mul i32 %conv12.i.1, 5 |
22 | 33 | %conv14104.i.1 = or i32 %mul.i.1.i.1, %mul.i.i.1
|
23 | 34 | %0 = or i32 %conv14104.i, %conv14104.i.1
|
24 | 35 | %1 = and i32 %0, 65535
|
|
0 commit comments