; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 ; RUN: opt -S -passes=instcombine < %s | FileCheck %s target triple = "aarch64-unknown-linux-gnu" define @test_cmpeq( %a, %b){ ; CHECK-LABEL: define @test_cmpeq( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpeq.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpeq_wide( %a, %b){ ; CHECK-LABEL: define @test_cmpeq_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpeq.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpge( %a, %b){ ; CHECK-LABEL: define @test_cmpge( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpge.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpge_wide( %a, %b){ ; CHECK-LABEL: define @test_cmpge_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpge.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpgt( %a, %b){ ; CHECK-LABEL: define @test_cmpgt( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpgt.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpgt_wide( %a, %b){ ; CHECK-LABEL: define @test_cmpgt_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpgt.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmphi( %a, %b){ ; CHECK-LABEL: define @test_cmphi( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmphi.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmphi_wide( %a, %b){ ; CHECK-LABEL: define @test_cmphi_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmphi.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmphs( %a, %b){ ; CHECK-LABEL: define @test_cmphs( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmphs.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmphs_wide( %a, %b){ ; CHECK-LABEL: define @test_cmphs_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmphs.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmple_wide( %a, %b){ ; CHECK-LABEL: define @test_cmple_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmple.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmplo_wide( %a, %b){ ; CHECK-LABEL: define @test_cmplo_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmplo.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpls_wide( %a, %b){ ; CHECK-LABEL: define @test_cmpls_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpls.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmplt_wide( %a, %b){ ; CHECK-LABEL: define @test_cmplt_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmplt.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpne( %a, %b){ ; CHECK-LABEL: define @test_cmpne( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpne.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_cmpne_wide( %a, %b){ ; CHECK-LABEL: define @test_cmpne_wide( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.cmpne.wide.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_facge( %a, %b){ry: ; CHECK-LABEL: define @test_facge( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[RY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; %0 = tail call @llvm.aarch64.sve.facge.nxv8f16( zeroinitializer, %a, %b) ret %0 } define @test_facgt( %a, %b){ry: ; CHECK-LABEL: define @test_facgt( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[RY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; %0 = tail call @llvm.aarch64.sve.facgt.nxv8f16( zeroinitializer, %a, %b) ret %0 } define @test_fcmpeq( %a, %b){ ; CHECK-LABEL: define @test_fcmpeq( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.fcmpeq.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_fcmpge( %a, %b){ ; CHECK-LABEL: define @test_fcmpge( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.fcmpge.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_fcmpgt( %a, %b){ ; CHECK-LABEL: define @test_fcmpgt( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.fcmpgt.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_fcmpne( %a, %b){ ; CHECK-LABEL: define @test_fcmpne( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.fcmpne.nxv16i8( zeroinitializer, %a, %b) ret %0 } define @test_fcmpuo( %a, %b){ ; CHECK-LABEL: define @test_fcmpuo( ; CHECK-SAME: [[A:%.*]], [[B:%.*]]) { ; CHECK-NEXT: [[ENTRY:.*:]] ; CHECK-NEXT: ret zeroinitializer ; entry: %0 = tail call @llvm.aarch64.sve.fcmpuo.nxv16i8( zeroinitializer, %a, %b) ret %0 }