| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 |
| ; RUN: opt -passes=sccp -S < %s | FileCheck %s |
| |
| define <32 x i8> @test(i1 %cond) { |
| ; CHECK-LABEL: define <32 x i8> @test( |
| ; CHECK-SAME: i1 [[COND:%.*]]) { |
| ; CHECK-NEXT: [[ENTRY:.*]]: |
| ; CHECK-NEXT: br label %[[FOR_COND2:.*]] |
| ; CHECK: [[FOR_COND2]]: |
| ; CHECK-NEXT: [[TMP0:%.*]] = phi <4 x i64> [ zeroinitializer, %[[ENTRY]] ], [ splat (i64 1), %[[FOR_COND2]] ] |
| ; CHECK-NEXT: br i1 [[COND]], label %[[FOR_COND2]], label %[[IF_THEN:.*]] |
| ; CHECK: [[IF_THEN]]: |
| ; CHECK-NEXT: [[TMP1:%.*]] = bitcast <4 x i64> zeroinitializer to <32 x i8> |
| ; CHECK-NEXT: ret <32 x i8> [[TMP1]] |
| ; |
| entry: |
| br label %for.cond2 |
| |
| for.cond2: ; preds = %for.cond2, %entry |
| %BS_VAR_1.0 = phi <4 x i64> [ <i64 poison, i64 poison, i64 poison, i64 0>, %entry ], [ zeroinitializer, %for.cond2 ] |
| %0 = phi <4 x i64> [ zeroinitializer, %entry ], [ splat (i64 1), %for.cond2 ] |
| br i1 %cond, label %for.cond2, label %if.then |
| |
| if.then: ; preds = %for.cond2 |
| %sub = sub <4 x i64> <i64 poison, i64 poison, i64 poison, i64 0>, %BS_VAR_1.0 |
| %and = and <4 x i64> %0, %sub |
| %1 = bitcast <4 x i64> %and to <32 x i8> |
| ret <32 x i8> %1 |
| } |