Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -fast-isel -o - %s -fast-isel-report-on-fallback -pass-remarks-missed=isel 2>&1 | FileCheck %s
      2 ; Make sure FastISel report a warming when we asked it to do so.
      3 ; Note: This test needs to use whatever is not supported by FastISel.
      4 ;       Thus, this test may fail because inline asm gets supported in FastISel.
      5 ;       To fix this, use something else that's not supported (e.g., weird types).
      6 target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
      7 target triple = "x86_64-apple-macosx"
      8 
      9 ; CHECK: remark: <unknown>:0:0: FastISel missed call:   call void asm sideeffect
     10 ; CHECK: warning: Instruction selection used fallback path for foo
     11 define void @foo(){
     12 entry:
     13   call void asm sideeffect "nop", "~{dirflag},~{fpsr},~{flags}"()
     14   ret void
     15 }
     16 
     17 ; CHECK: remark: <unknown>:0:0: FastISel missed:   store i128
     18 ; CHECK: warning: Instruction selection used fallback path for test_instruction_fallback
     19 define void @test_instruction_fallback(i128* %ptr){
     20   %v1 = load i128, i128* %ptr
     21   %result = add i128 %v1, %v1
     22   store i128 %result, i128 * %ptr
     23   ret void
     24 }
     25 
     26 ; CHECK-NOT: remark: <unknown>:0:0: FastISel missed
     27 ; CHECK-NOT: warning: Instruction selection used fallback path for test_instruction_not_fallback
     28 define i32 @test_instruction_not_fallback(i32 %a){
     29   %result = add i32 %a, %a
     30   ret i32 %result
     31 }
     32