1 ; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s
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
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
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