1c52bcf3aSAndrew Litteken; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 29dd9575cSRoman Lebedev; RUN: opt -S -passes=verify,iroutliner -ir-outlining-no-cost < %s | FileCheck %s 3c52bcf3aSAndrew Litteken 4c52bcf3aSAndrew Litteken; This test looks at the globals in the regions, and makes sure they are not 5c52bcf3aSAndrew Litteken; outlined if they are different values. 6c52bcf3aSAndrew Litteken 7c52bcf3aSAndrew Litteken@global1 = global i32 1, align 4 8c52bcf3aSAndrew Litteken@global2 = global i32 2, align 4 9c52bcf3aSAndrew Litteken@global3 = global i32 3, align 4 10c52bcf3aSAndrew Litteken@global4 = global i32 4, align 4 11c52bcf3aSAndrew Litteken 12c52bcf3aSAndrew Littekendefine void @outline_globals1() { 13c52bcf3aSAndrew Litteken; CHECK-LABEL: @outline_globals1( 14c52bcf3aSAndrew Litteken; CHECK-NEXT: entry: 15*f4b925eeSMatt Arsenault; CHECK-NEXT: call void @outlined_ir_func_0(ptr @global1, ptr @global2) 16c52bcf3aSAndrew Litteken; CHECK-NEXT: ret void 17c52bcf3aSAndrew Litteken; 18c52bcf3aSAndrew Littekenentry: 19*f4b925eeSMatt Arsenault %0 = load i32, ptr @global1 20*f4b925eeSMatt Arsenault %1 = load i32, ptr @global2 21c52bcf3aSAndrew Litteken %2 = add i32 %0, %1 22c52bcf3aSAndrew Litteken ret void 23c52bcf3aSAndrew Litteken} 24c52bcf3aSAndrew Litteken 25c52bcf3aSAndrew Littekendefine void @outline_globals2() { 26c52bcf3aSAndrew Litteken; CHECK-LABEL: @outline_globals2( 27c52bcf3aSAndrew Litteken; CHECK-NEXT: entry: 28*f4b925eeSMatt Arsenault; CHECK-NEXT: call void @outlined_ir_func_0(ptr @global3, ptr @global4) 29c52bcf3aSAndrew Litteken; CHECK-NEXT: ret void 30c52bcf3aSAndrew Litteken; 31c52bcf3aSAndrew Littekenentry: 32*f4b925eeSMatt Arsenault %0 = load i32, ptr @global3 33*f4b925eeSMatt Arsenault %1 = load i32, ptr @global4 34c52bcf3aSAndrew Litteken %2 = add i32 %0, %1 35c52bcf3aSAndrew Litteken ret void 36c52bcf3aSAndrew Litteken} 37b1191c84SAndrew Litteken 38*f4b925eeSMatt Arsenault; CHECK: define internal void @outlined_ir_func_0(ptr [[ARG0:%.*]], ptr [[ARG1:%.*]]) 39b1191c84SAndrew Litteken; CHECK: entry_to_outline: 40*f4b925eeSMatt Arsenault; CHECK-NEXT: [[TMP0:%.*]] = load i32, ptr [[ARG0]] 41*f4b925eeSMatt Arsenault; CHECK-NEXT: [[TMP1:%.*]] = load i32, ptr [[ARG1]] 42b1191c84SAndrew Litteken; CHECK-NEXT: [[TMP2:%.*]] = add i32 [[TMP0]], [[TMP1]] 43