; RUN: llc -O3 -mtriple=aarch64-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-LE ; RUN: llc -O3 -mtriple=aarch64_be-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-BE define i16 @convert_to_bitmask16(<16 x i8> %vec) { %cmp_result = icmp ne <16 x i8> %vec, zeroinitializer %bitmask = bitcast <16 x i1> %cmp_result to i16 ret i16 %bitmask } define i16 @convert_to_bitmask8(<8 x i16> %vec) { %cmp_result = icmp ne <8 x i16> %vec, zeroinitializer %bitmask = bitcast <8 x i1> %cmp_result to i8 %extended_bitmask = zext i8 %bitmask to i16 ret i16 %extended_bitmask } ; Little endian ; CHECK-LE-LABEL: .LCPI0_0: ; CHECK-LE-NEXT: .byte 1 ; CHECK-LE-NEXT: .byte 2 ; CHECK-LE-NEXT: .byte 4 ; CHECK-LE-NEXT: .byte 8 ; CHECK-LE-NEXT: .byte 16 ; CHECK-LE-NEXT: .byte 32 ; CHECK-LE-NEXT: .byte 64 ; CHECK-LE-NEXT: .byte 128 ; CHECK-LE-NEXT: .byte 1 ; CHECK-LE-NEXT: .byte 2 ; CHECK-LE-NEXT: .byte 4 ; CHECK-LE-NEXT: .byte 8 ; CHECK-LE-NEXT: .byte 16 ; CHECK-LE-NEXT: .byte 32 ; CHECK-LE-NEXT: .byte 64 ; CHECK-LE-NEXT: .byte 128 ; CHECK-LE-LABEL: .LCPI1_0: ; CHECK-LE-NEXT: .hword 1 ; CHECK-LE-NEXT: .hword 2 ; CHECK-LE-NEXT: .hword 4 ; CHECK-LE-NEXT: .hword 8 ; CHECK-LE-NEXT: .hword 16 ; CHECK-LE-NEXT: .hword 32 ; CHECK-LE-NEXT: .hword 64 ; CHECK-LE-NEXT: .hword 128 ; Big endian ; CHECK-BE-LABEL: .LCPI0_0: ; CHECK-BE-NEXT: .byte 128 ; CHECK-BE-NEXT: .byte 64 ; CHECK-BE-NEXT: .byte 32 ; CHECK-BE-NEXT: .byte 16 ; CHECK-BE-NEXT: .byte 8 ; CHECK-BE-NEXT: .byte 4 ; CHECK-BE-NEXT: .byte 2 ; CHECK-BE-NEXT: .byte 1 ; CHECK-BE-NEXT: .byte 128 ; CHECK-BE-NEXT: .byte 64 ; CHECK-BE-NEXT: .byte 32 ; CHECK-BE-NEXT: .byte 16 ; CHECK-BE-NEXT: .byte 8 ; CHECK-BE-NEXT: .byte 4 ; CHECK-BE-NEXT: .byte 2 ; CHECK-BE-NEXT: .byte 1 ; CHECK-BE-LABEL: .LCPI1_0: ; CHECK-BE-NEXT: .hword 128 ; CHECK-BE-NEXT: .hword 64 ; CHECK-BE-NEXT: .hword 32 ; CHECK-BE-NEXT: .hword 16 ; CHECK-BE-NEXT: .hword 8 ; CHECK-BE-NEXT: .hword 4 ; CHECK-BE-NEXT: .hword 2 ; CHECK-BE-NEXT: .hword 1