| ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 6 | |
| ; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown-linux-gnu | FileCheck %s | |
| define i1 @test(i16 %a) { | |
| ; CHECK-LABEL: define i1 @test( | |
| ; CHECK-SAME: i16 [[A:%.*]]) { | |
| ; CHECK-NEXT: [[ENTRY:.*:]] | |
| ; CHECK-NEXT: [[AND:%.*]] = and i16 [[A]], 0 | |
| ; CHECK-NEXT: [[TOBOOL:%.*]] = icmp ne i16 [[AND]], 0 | |
| ; CHECK-NEXT: [[XOR:%.*]] = xor i16 [[AND]], 0 | |
| ; CHECK-NEXT: [[CMP:%.*]] = icmp sge i16 [[XOR]], [[XOR]] | |
| ; CHECK-NEXT: ret i1 [[CMP]] | |
| ; | |
| entry: | |
| %and = and i16 %a, 0 | |
| %tobool = icmp ne i16 %and, 0 | |
| %xor = xor i16 %and, 0 | |
| %cmp = icmp sge i16 %xor, %xor | |
| ret i1 %cmp | |
| } |