[ARM] More MVE compare vector splat combines for ANDs
[llvm-complete.git] / test / CodeGen / Thumb / ldr_ext.ll
blob90194aecec97e4ddebe1bbce3ce7af17aec1f738
1 ; RUN: llc -mtriple=thumb-eabi %s -o - | FileCheck %s -check-prefix=V5
2 ; RUN: llc -mtriple=thumb-eabi -mattr=+v6 %s -o - | FileCheck %s -check-prefix=V6
4 ; rdar://7176514
6 define i32 @test1(i8* %t1) nounwind {
7 ; V5: ldrb
9 ; V6: ldrb
10     %tmp.u = load i8, i8* %t1
11     %tmp1.s = zext i8 %tmp.u to i32
12     ret i32 %tmp1.s
15 define i32 @test2(i16* %t1) nounwind {
16 ; V5: ldrh
18 ; V6: ldrh
19     %tmp.u = load i16, i16* %t1
20     %tmp1.s = zext i16 %tmp.u to i32
21     ret i32 %tmp1.s
24 define i32 @test3(i8* %t0) nounwind {
25 ; V5: ldrb
26 ; V5: lsls
27 ; V5: asrs
29 ; V6: ldrb
30 ; V6: sxtb
31     %tmp.s = load i8, i8* %t0
32     %tmp1.s = sext i8 %tmp.s to i32
33     ret i32 %tmp1.s
36 define i32 @test4(i16* %t0) nounwind {
37 ; V5: ldrh
38 ; V5: lsls
39 ; V5: asrs
41 ; V6: ldrh
42 ; V6: sxth
43     %tmp.s = load i16, i16* %t0
44     %tmp1.s = sext i16 %tmp.s to i32
45     ret i32 %tmp1.s
48 define i32 @test5() nounwind {
49 ; V5: movs r0, #0
50 ; V5: ldrsh
52 ; V6: movs r0, #0
53 ; V6: ldrsh
54     %tmp.s = load i16, i16* null
55     %tmp1.s = sext i16 %tmp.s to i32
56     ret i32 %tmp1.s