brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.2 KiB · e18df61 Raw
139 lines · plain
1; Test optimization experiments.2; -asan-force-experiment flag turns all memory accesses into experiments.3; RUN: opt < %s -passes=asan -asan-force-experiment=42 -S | FileCheck %s4; RUN: opt < %s -passes=asan -asan-force-experiment=42 -S -mtriple=s390x-unknown-linux | FileCheck %s --check-prefix=EXT5; RUN: opt < %s -passes=asan -asan-force-experiment=42 -S -mtriple=mips-linux-gnu | FileCheck %s --check-prefix=MIPS_EXT6; RUN: opt < %s -passes=asan -asan-force-experiment=42 -S -mtriple=loongarch64-unknown-linux-gnu | FileCheck %s --check-prefix=LA_EXT7; REQUIRES: x86-registered-target, systemz-registered-target, mips-registered-target, loongarch-registered-target8 9target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64"10target triple = "x86_64-unknown-linux-gnu"11 12define void @load1(ptr %p) sanitize_address {13entry:14  %t = load i8, ptr %p, align 115  ret void16; CHECK-LABEL: define void @load117; CHECK: __asan_report_exp_load1{{.*}} i32 4218; CHECK: ret void19}20 21define void @load2(ptr %p) sanitize_address {22entry:23  %t = load i16, ptr %p, align 224  ret void25; CHECK-LABEL: define void @load226; CHECK: __asan_report_exp_load2{{.*}} i32 4227; CHECK: ret void28}29 30define void @load4(ptr %p) sanitize_address {31entry:32  %t = load i32, ptr %p, align 433  ret void34; CHECK-LABEL: define void @load435; CHECK: __asan_report_exp_load4{{.*}} i32 4236; CHECK: ret void37}38 39define void @load8(ptr %p) sanitize_address {40entry:41  %t = load i64, ptr %p, align 842  ret void43; CHECK-LABEL: define void @load844; CHECK: __asan_report_exp_load8{{.*}} i32 4245; CHECK: ret void46}47 48define void @load16(ptr %p) sanitize_address {49entry:50  %t = load i128, ptr %p, align 1651  ret void52; CHECK-LABEL: define void @load1653; CHECK: __asan_report_exp_load16{{.*}} i32 4254; CHECK: ret void55}56 57define void @loadN(ptr %p) sanitize_address {58entry:59  %t = load i48, ptr %p, align 160  ret void61; CHECK-LABEL: define void @loadN62; CHECK: __asan_report_exp_load_n{{.*}} i32 4263; CHECK: ret void64}65 66define void @store1(ptr %p) sanitize_address {67entry:68  store i8 1, ptr %p, align 169  ret void70; CHECK-LABEL: define void @store171; CHECK: __asan_report_exp_store1{{.*}} i32 4272; CHECK: ret void73}74 75define void @store2(ptr %p) sanitize_address {76entry:77  store i16 1, ptr %p, align 278  ret void79; CHECK-LABEL: define void @store280; CHECK: __asan_report_exp_store2{{.*}} i32 4281; CHECK: ret void82}83 84define void @store4(ptr %p) sanitize_address {85entry:86  store i32 1, ptr %p, align 487  ret void88; CHECK-LABEL: define void @store489; CHECK: __asan_report_exp_store4{{.*}} i32 4290; CHECK: ret void91}92 93define void @store8(ptr %p) sanitize_address {94entry:95  store i64 1, ptr %p, align 896  ret void97; CHECK-LABEL: define void @store898; CHECK: __asan_report_exp_store8{{.*}} i32 4299; CHECK: ret void100}101 102define void @store16(ptr %p) sanitize_address {103entry:104  store i128 1, ptr %p, align 16105  ret void106; CHECK-LABEL: define void @store16107; CHECK: __asan_report_exp_store16{{.*}} i32 42108; CHECK: ret void109}110 111define void @storeN(ptr %p) sanitize_address {112entry:113  store i48 1, ptr %p, align 1114  ret void115; CHECK-LABEL: define void @storeN116; CHECK: __asan_report_exp_store_n{{.*}} i32 42117; CHECK: ret void118}119 120; CHECK:    declare void @__asan_report_exp_load_n(i64, i64, i32)121; EXT:      declare void @__asan_report_exp_load_n(i64, i64, i32 zeroext)122; MIPS_EXT: declare void @__asan_report_exp_load_n(i64, i64, i32 signext)123; LA_EXT:   declare void @__asan_report_exp_load_n(i64, i64, i32 signext)124 125; CHECK:    declare void @__asan_exp_loadN(i64, i64, i32)126; EXT:      declare void @__asan_exp_loadN(i64, i64, i32 zeroext)127; MIPS_EXT: declare void @__asan_exp_loadN(i64, i64, i32 signext)128; LA_EXT:   declare void @__asan_exp_loadN(i64, i64, i32 signext)129 130; CHECK:    declare void @__asan_report_exp_load1(i64, i32)131; EXT:      declare void @__asan_report_exp_load1(i64, i32 zeroext)132; MIPS_EXT: declare void @__asan_report_exp_load1(i64, i32 signext)133; LA_EXT:   declare void @__asan_report_exp_load1(i64, i32 signext)134 135; CHECK:    declare void @__asan_exp_load1(i64, i32)136; EXT:      declare void @__asan_exp_load1(i64, i32 zeroext)137; MIPS_EXT: declare void @__asan_exp_load1(i64, i32 signext)138; LA_EXT:   declare void @__asan_exp_load1(i64, i32 signext)139