[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / AArch64 / pr33172.ll
blob098d5358b02d0c64c47700164ce38955e187b96c
1 ; RUN: llc < %s | FileCheck %s
3 ; CHECK-LABEL: pr33172
4 ; CHECK: ldp
5 ; CHECK: stp
7 target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"
8 target triple = "arm64-apple-ios10.3.0"
10 @main.b = external global [200 x float], align 8
11 @main.x = external global [200 x float], align 8
13 ; Function Attrs: nounwind ssp
14 define void @pr33172() local_unnamed_addr  {
15 entry:
16   %wide.load8281058.3 = load i64, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.b, i64 0, i64 12) to i64*), align 8
17   %wide.load8291059.3 = load i64, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.b, i64 0, i64 14) to i64*), align 8
18   store i64 %wide.load8281058.3, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.x, i64 0, i64 12) to i64*), align 8
19   store i64 %wide.load8291059.3, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.x, i64 0, i64 14) to i64*), align 8
20   %wide.load8281058.4 = load i64, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.b, i64 0, i64 16) to i64*), align 8
21   %wide.load8291059.4 = load i64, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.b, i64 0, i64 18) to i64*), align 8
22   store i64 %wide.load8281058.4, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.x, i64 0, i64 16) to i64*), align 8
23   store i64 %wide.load8291059.4, i64* bitcast (float* getelementptr inbounds ([200 x float], [200 x float]* @main.x, i64 0, i64 18) to i64*), align 8
24   tail call void @llvm.memset.p0i8.i64(i8* align 8 bitcast ([200 x float]* @main.b to i8*), i8 0, i64 undef, i1 false) #2
25   unreachable
28 ; Function Attrs: argmemonly nounwind
29 declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i1) #1
31 attributes #1 = { argmemonly nounwind }
32 attributes #2 = { nounwind }