1- ; RUN: llc -O0 -mtriple=aarch64-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-LE
2- ; RUN: llc -O0 -mtriple=aarch64_be-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-BE
1+ ; RUN: llc -O3 -mtriple=aarch64-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-LE
2+ ; RUN: llc -O3 -mtriple=aarch64_be-linux-gnu %s -o - | FileCheck %s --check-prefix=CHECK-BE
33
44@haystack4 = internal unnamed_addr constant [4 x i32 ] [i32 0 , i32 1 , i32 2 , i32 3 ], align 4
55@haystack16 = internal unnamed_addr constant [16 x i8 ] [i8 0 , i8 1 , i8 2 , i8 3 , i8 4 , i8 5 , i8 6 , i8 7 , i8 8 , i8 9 , i8 10 , i8 11 , i8 12 , i8 13 , i8 14 , i8 15 ], align 16
@@ -13,8 +13,8 @@ define i8 @test4() {
1313 %haystack = getelementptr inbounds i32 , ptr getelementptr inbounds (i8 , ptr @haystack4 , i64 0 ), i64 %index_val
1414 %h_vec = load <4 x i32 >, ptr %haystack , align 4
1515 %cmp_vec = icmp eq <4 x i32 > %h_vec , <i32 2 , i32 2 , i32 2 , i32 2 >
16- store <4 x i1 > %cmp_vec , ptr %matches , align 1
17- %cmp_load = load <4 x i1 >, ptr %matches , align 1
16+ store volatile <4 x i1 > %cmp_vec , ptr %matches , align 1
17+ %cmp_load = load volatile <4 x i1 >, ptr %matches , align 1
1818 %extr = extractelement <4 x i1 > %cmp_load , i64 2
1919 %ret = zext i1 %extr to i8
2020 ret i8 %ret
@@ -28,8 +28,8 @@ define i8 @test16() {
2828 %haystack = getelementptr inbounds i8 , ptr getelementptr inbounds (i8 , ptr @haystack16 , i64 0 ), i64 %index_val
2929 %h_vec = load <16 x i8 >, ptr %haystack , align 16
3030 %cmp_vec = icmp eq <16 x i8 > %h_vec , <i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 , i8 2 >
31- store <16 x i1 > %cmp_vec , ptr %matches , align 2
32- %cmp_load = load <16 x i1 >, ptr %matches , align 2
31+ store volatile <16 x i1 > %cmp_vec , ptr %matches , align 2
32+ %cmp_load = load volatile <16 x i1 >, ptr %matches , align 2
3333 %extr = extractelement <16 x i1 > %cmp_load , i64 7
3434 %ret = zext i1 %extr to i8
3535 ret i8 %ret
0 commit comments