[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / AArch64 / arm64-zextload-unscaled.ll
blob7a94bbf24d413e7ac758511247f76e366642764d
1 ; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s
3 @var32 = global i32 0
5 define void @test_zextloadi1_unscaled(i1* %base) {
6 ; CHECK-LABEL: test_zextloadi1_unscaled:
7 ; CHECK: ldurb {{w[0-9]+}}, [{{x[0-9]+}}, #-7]
9   %addr = getelementptr i1, i1* %base, i32 -7
10   %val = load i1, i1* %addr, align 1
12   %extended = zext i1 %val to i32
13   store i32 %extended, i32* @var32, align 4
14   ret void
17 define void @test_zextloadi8_unscaled(i8* %base) {
18 ; CHECK-LABEL: test_zextloadi8_unscaled:
19 ; CHECK: ldurb {{w[0-9]+}}, [{{x[0-9]+}}, #-7]
21   %addr = getelementptr i8, i8* %base, i32 -7
22   %val = load i8, i8* %addr, align 1
24   %extended = zext i8 %val to i32
25   store i32 %extended, i32* @var32, align 4
26   ret void
29 define void @test_zextloadi16_unscaled(i16* %base) {
30 ; CHECK-LABEL: test_zextloadi16_unscaled:
31 ; CHECK: ldurh {{w[0-9]+}}, [{{x[0-9]+}}, #-14]
33   %addr = getelementptr i16, i16* %base, i32 -7
34   %val = load i16, i16* %addr, align 2
36   %extended = zext i16 %val to i32
37   store i32 %extended, i32* @var32, align 4
38   ret void