1486ed885SArthur Eubanks; Ensure constant propagation of remainder instructions is working correctly. 2486ed885SArthur Eubanks 3*5b4b842fSRoman Lebedev; RUN: opt < %s -passes=instsimplify,dce -S | not grep rem 4486ed885SArthur Eubanks 5486ed885SArthur Eubanksdefine i32 @test1() { 6486ed885SArthur Eubanks %R = srem i32 4, 3 ; <i32> [#uses=1] 7486ed885SArthur Eubanks ret i32 %R 8486ed885SArthur Eubanks} 9486ed885SArthur Eubanks 10486ed885SArthur Eubanksdefine i32 @test2() { 11486ed885SArthur Eubanks %R = srem i32 123, -23 ; <i32> [#uses=1] 12486ed885SArthur Eubanks ret i32 %R 13486ed885SArthur Eubanks} 14486ed885SArthur Eubanks 15486ed885SArthur Eubanksdefine float @test3() { 16486ed885SArthur Eubanks %R = frem float 0x4028E66660000000, 0x405ECDA1C0000000 ; <float> [#uses=1] 17486ed885SArthur Eubanks ret float %R 18486ed885SArthur Eubanks} 19486ed885SArthur Eubanks 20486ed885SArthur Eubanksdefine double @test4() { 21486ed885SArthur Eubanks %R = frem double 0x4073833BEE07AFF8, 0x4028AAABB2A0D19C ; <double> [#uses=1] 22486ed885SArthur Eubanks ret double %R 23486ed885SArthur Eubanks} 24486ed885SArthur Eubanks 25