30 lines · plain
1; Checks that speculative-execution only runs on divergent targets, if you pass2; -spec-exec-only-if-divergent-target.3 4; RUN: opt < %s -S -mtriple=nvptx-nvidia-cuda -passes=speculative-execution | \5; RUN: FileCheck --check-prefix=ON %s6; RUN: opt < %s -S -mtriple=nvptx-nvidia-cuda -passes=speculative-execution \7; RUN: -spec-exec-only-if-divergent-target | \8; RUN: FileCheck --check-prefix=ON %s9; RUN: opt < %s -S -mtriple=nvptx-nvidia-cuda \10; RUN: -passes='speculative-execution<only-if-divergent-target>' | \11; RUN: FileCheck --check-prefix=ON %s12; RUN: opt < %s -S -passes=speculative-execution -spec-exec-only-if-divergent-target | \13; RUN: FileCheck --check-prefix=OFF %s14; RUN: opt < %s -S -passes='speculative-execution<only-if-divergent-target>' | \15; RUN: FileCheck --check-prefix=OFF %s16 17; Hoist in if-then pattern.18define void @f() {19; ON: %x = add i32 2, 320; ON: br i1 true21; OFF: br i1 true22; OFF: %x = add i32 2, 323 br i1 true, label %a, label %b24a:25 %x = add i32 2, 326 br label %b27b:28 ret void29}30