30 lines · plain
1; Test that the scale (-memprof-mapping-scale) and granularity (-memprof-mapping-granularity) command-line options work as expected2;3; RUN: opt < %s -passes='function(memprof),memprof-module' -memprof-mapping-granularity 32 -S | FileCheck --check-prefix=CHECK-GRAN %s4; RUN: opt < %s -passes='function(memprof),memprof-module' -memprof-mapping-scale 1 -S | FileCheck --check-prefix=CHECK-SCALE %s5; RUN: opt < %s -passes='function(memprof),memprof-module' -memprof-mapping-granularity 16 -memprof-mapping-scale 0 -S | FileCheck --check-prefix=CHECK-BOTH %s6target triple = "x86_64-unknown-linux-gnu"7 8define i32 @read(ptr %a) {9entry:10 %tmp1 = load i32, ptr %a, align 411 ret i32 %tmp112}13; CHECK-GRAN-LABEL: @read14; CHECK-GRAN-NOT: ret15; CHECK-GRAN: and {{.*}} -3216; CHECK-GRAN-NEXT: lshr {{.*}} 317; CHECK-GRAN: ret18 19; CHECK-SCALE-LABEL: @read20; CHECK-SCALE-NOT: ret21; CHECK-SCALE: and {{.*}} -6422; CHECK-SCALE-NEXT: lshr {{.*}} 123; CHECK-SCALE: ret24 25; CHECK-BOTH-LABEL: @read26; CHECK-BOTH-NOT: ret27; CHECK-BOTH: and {{.*}} -1628; CHECK-BOTH-NEXT: lshr {{.*}} 029; CHECK-BOTH: ret30