| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 |
| ; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -mcpu=znver2 < %s | FileCheck %s |
| |
| define void @test() { |
| ; CHECK-LABEL: define void @test( |
| ; CHECK-SAME: ) #[[ATTR0:[0-9]+]] { |
| ; CHECK-NEXT: [[BB:.*]]: |
| ; CHECK-NEXT: br label %[[BB8:.*]] |
| ; CHECK: [[BB8]]: |
| ; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ [[OP_RDX:%.*]], %[[BB8]] ], [ 0, %[[BB]] ] |
| ; CHECK-NEXT: [[TMP0:%.*]] = call i32 @llvm.vector.reduce.add.v4i32(<4 x i32> zeroinitializer) |
| ; CHECK-NEXT: [[OP_RDX]] = add i32 0, [[TMP0]] |
| ; CHECK-NEXT: br label %[[BB8]] |
| ; |
| bb: |
| %xor = xor i32 0, 0 |
| %mul = mul i32 %xor, 0 |
| %add = add i32 %xor, %mul |
| %mul1 = mul i32 0, 0 |
| %add2 = add i32 %add, %mul1 |
| %xor3 = xor i32 0, 0 |
| %add4 = add i32 %add2, %xor3 |
| %mul5 = mul i32 %xor3, 0 |
| %add6 = add i32 %add4, %mul5 |
| %mul7 = mul i32 0, 0 |
| br label %bb8 |
| |
| bb8: |
| %phi = phi i32 [ %add11, %bb8 ], [ 0, %bb ] |
| %add9 = add i32 %add6, 0 |
| %add10 = add i32 %add9, 0 |
| %add11 = add i32 %add10, %mul7 |
| br label %bb8 |
| } |