remove differences between C++ and Rust
diff --git a/enzyme/benchmarks/ReverseMode/adbench/gmm.h b/enzyme/benchmarks/ReverseMode/adbench/gmm.h
index c5ec727..01f6b03 100644
--- a/enzyme/benchmarks/ReverseMode/adbench/gmm.h
+++ b/enzyme/benchmarks/ReverseMode/adbench/gmm.h
@@ -219,7 +219,7 @@
       getTests(paths, "data/10k", "10k/");
     }
 
-    getTests(paths, "data/1k", "1k/");
+    //getTests(paths, "data/1k", "1k/");
     if (std::getenv("BENCH_LARGE")) {
       getTests(paths, "data/2.5k", "2.5k/");
       getTests(paths, "data/10k", "10k/");
@@ -274,7 +274,7 @@
 
     struct GMMOutput result = { 0, std::vector<double>(Jcols) };
 
-    //if (0) {
+    if (0) {
       try {
         struct timeval start, end;
         gettimeofday(&start, NULL);
@@ -294,7 +294,7 @@
       } catch (std::bad_alloc) {
         printf("Adept combined 88888888 ooms\n");
       }
-    //}
+    }
     }
 
     for (size_t i = 0; i < 5; i++)
@@ -416,6 +416,7 @@
     }
     }
 
+
     {
 
     struct GMMInput input;
diff --git a/enzyme/benchmarks/ReverseMode/ba/Makefile.make b/enzyme/benchmarks/ReverseMode/ba/Makefile.make
index 50ab0cf..6762e70 100644
--- a/enzyme/benchmarks/ReverseMode/ba/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/ba/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B ba-raw.ll results.json -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s
 
 .PHONY: clean
 
@@ -11,17 +11,8 @@
 $(dir)/benchmarks/ReverseMode/ba/target/release/libbars.a: src/lib.rs Cargo.toml
 	RUSTFLAGS="-Z autodiff=Enable" cargo +enzyme rustc --release --lib --crate-type=staticlib --features=libm
 
-%-unopt.ll: %.cpp
-	clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm
-
-%-raw.ll: %-unopt.ll
-	opt $^ $(LOAD) $(ENZYME) -o $@ -S
-
-%-opt.ll: %-raw.ll
-	opt $^ -o $@ -S
-
-ba.o: ba-opt.ll $(dir)/benchmarks/ReverseMode/ba/target/release/libbars.a
-	clang++ $(BENCH) -pthread -O2 $^ -I /usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -O2 -o $@ $(BENCHLINK) -lpthread -lm -L /usr/lib/gcc/x86_64-linux-gnu/11
+ba.o: ba.cpp $(dir)/benchmarks/ReverseMode/ba/target/release/libbars.a
+	clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@
 
 results.json: ba.o
 	numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/fft/Makefile.make b/enzyme/benchmarks/ReverseMode/fft/Makefile.make
index b9385cd..f0e54b8 100644
--- a/enzyme/benchmarks/ReverseMode/fft/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/fft/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B fft-raw.ll results.json -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s
 
 .PHONY: clean
 
@@ -6,22 +6,18 @@
 
 clean:
 	rm -f *.ll *.o results.txt results.json
+	cargo clean
 
 $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a: src/lib.rs Cargo.toml
 	RUSTFLAGS="-Z autodiff=Enable" cargo +enzyme rustc --release --lib --crate-type=staticlib
 
-%-unopt.ll: %.cpp
-	clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-use-cxa-atexit -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm
 
-%-raw.ll: %-unopt.ll
-	opt $^ $(LOAD) $(ENZYME) -o $@ -S
+fft.o: fft.cpp $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a
+	clang++ $(LOADCLANG) $(BENCH) -DCPP=1 -O3 -fno-math-errno -fno-plt -mtune=cascadelake -g $^ $(BENCHLINK) -lm -o $@
 
-%-opt.ll: %-raw.ll
-	opt $^ -o $@ -S
+fftr.o: fft.cpp $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a
+	clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno -fno-plt -mtune=cascadelake -g $^ $(BENCHLINK) -lm -o $@
 
-fft.o: fft-opt.ll $(dir)/benchmarks/ReverseMode/fft/target/release/libfft.a
-	clang++ $(BENCH) -pthread -O2 $^ -o $@ $(BENCHLINK) -lpthread -lm -L /usr/lib/gcc/x86_64-linux-gnu/11
-	#clang++ $(LOAD) $(BENCH) fft.cpp -I /usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -O2 -o fft.o -lpthread $(BENCHLINK) -lm -L /usr/lib/gcc/x86_64-linux-gnu/11
-
-results.json: fft.o
-	./$^ 1048576 | tee $@
+results.json: fft.o fftr.o
+	numactl -C 1 ./fft.o 1048576 | tee results.json
+	numactl -C 1 ./fftr.o 1048576 | tee resultsr.json
diff --git a/enzyme/benchmarks/ReverseMode/gmm/Makefile.make b/enzyme/benchmarks/ReverseMode/gmm/Makefile.make
index 17e22dd..b59248e 100644
--- a/enzyme/benchmarks/ReverseMode/gmm/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/gmm/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B gmm-raw.ll results.json -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s
 
 .PHONY: clean
 
@@ -9,20 +9,10 @@
 	cargo +enzyme clean
 
 $(dir)/benchmarks/ReverseMode/gmm/target/release/libgmmrs.a: src/lib.rs Cargo.toml
-	RUSTFLAGS="-Z autodiff=Enable,LooseTypes" cargo +enzyme rustc --release --lib --crate-type=staticlib --features=libm
+	RUSTFLAGS="-Z autodiff=Enable" cargo +enzyme rustc --release --lib --crate-type=staticlib --features=libm
 
-%-unopt.ll: %.cpp
-	clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm
-
-%-raw.ll: %-unopt.ll
-	opt $^ $(LOAD) $(ENZYME) -o $@ -S
-
-%-opt.ll: %-raw.ll
-	opt $^ -o $@ -S
-
-gmm.o: gmm-opt.ll $(dir)/benchmarks/ReverseMode/gmm/target/release/libgmmrs.a
-	clang++ -pthread -O2 $^ -o $@ $(BENCHLINK) -lm
-	#clang++ $(LOADCLANG) $(BENCH) gmm.cpp -I /usr/include/c++/11 -I/usr/include/x86_64-linux-gnu/c++/11 -O2 -o gmm.o -lpthread $(BENCHLINK) -lm -L /usr/lib/gcc/x86_64-linux-gnu/11
+gmm.o: gmm.cpp $(dir)/benchmarks/ReverseMode/gmm/target/release/libgmmrs.a
+	/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@
 
 results.json: gmm.o
 	numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/lstm/Makefile.make b/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
index 1388a54..b3786db 100644
--- a/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/lstm/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B lstm-raw.ll results.json -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json -f %s
 
 .PHONY: clean
 
@@ -11,17 +11,8 @@
 $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a: src/lib.rs Cargo.toml
 	RUSTFLAGS="-Z autodiff=Enable,LooseTypes" cargo +enzyme rustc --release --lib --crate-type=staticlib
 
-%-unopt.ll: %.cpp
-	clang++ $(BENCH) $(PTR) $^ -pthread -O2 -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm
-
-%-raw.ll: %-unopt.ll
-	opt $^ $(LOAD) $(ENZYME) -o $@ -S
-
-%-opt.ll: %-raw.ll
-	opt $^ -o $@ -S
-
-lstm.o: lstm-opt.ll $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a
-	clang++ -pthread -O2 $^ -o $@ $(BENCHLINK) -lm
+lstm.o: lstm.cpp $(dir)/benchmarks/ReverseMode/lstm/target/release/liblstm.a
+	clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@
 
 results.json: lstm.o
 	numactl -C 1 ./$^
diff --git a/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make b/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
index 87af95f..471551f 100644
--- a/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
+++ b/enzyme/benchmarks/ReverseMode/ode-real/Makefile.make
@@ -1,4 +1,4 @@
-# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" ENZYME="%enzyme" make -B ode-raw.ll ode-opt.ll results.json VERBOSE=1 -f %s
+# RUN: cd %S && LD_LIBRARY_PATH="%bldpath:$LD_LIBRARY_PATH" PTR="%ptr" BENCH="%bench" BENCHLINK="%blink" LOAD="%loadEnzyme" LOADCLANG="%loadClangEnzyme" ENZYME="%enzyme" make -B results.json VERBOSE=1 -f %s
 
 .PHONY: clean
 
@@ -11,17 +11,8 @@
 $(dir)/benchmarks/ReverseMode/ode-real/target/release/libode.a: src/lib.rs Cargo.toml
 	RUSTFLAGS="-Z autodiff=Enable,LooseTypes" cargo +enzyme rustc --release --lib --crate-type=staticlib
 
-%-unopt.ll: %.cpp
-	clang++ $(BENCH) $(PTR) $^ -O2 -fno-use-cxa-atexit -fno-vectorize -fno-slp-vectorize -ffast-math -fno-unroll-loops -o $@ -S -emit-llvm
-
-%-raw.ll: %-unopt.ll
-	opt $^ $(LOAD) $(ENZYME) -o $@ -S
-
-%-opt.ll: %-raw.ll
-	opt $^ -o $@ -S
-
-ode.o: ode-opt.ll $(dir)/benchmarks/ReverseMode/ode-real/target/release/libode.a
-	clang++ $(BENCH) -O2 $^ -o $@ $(BENCHLINK)
+ode.o: ode.cpp $(dir)/benchmarks/ReverseMode/ode-real/target/release/libode.a
+	/home/manuel/prog/rust-middle/build/x86_64-unknown-linux-gnu/llvm/build/bin/clang++ $(LOADCLANG) $(BENCH) -O3 -fno-math-errno $^ $(BENCHLINK) -lm -o $@
 
 results.json: ode.o
 	numactl -C 1 ./$^ 1000 | tee $@
diff --git a/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp b/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp
index 17007c8..28971e9 100644
--- a/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp
+++ b/enzyme/benchmarks/ReverseMode/ode-real/ode.cpp
@@ -708,7 +708,7 @@
     rust_lorenz_safe(x, x2, t);
 
     gettimeofday(&end, NULL);
-    printf("Rust fwd safe %0.6f res=%f\n\n", tdiff(&start, &end), x2[0]);
+    printf("Rust fwd safe %0.6f res=%f\n", tdiff(&start, &end), x2[0]);
   }
 
   {
diff --git a/enzyme/benchmarks/lit.site.cfg.py.in b/enzyme/benchmarks/lit.site.cfg.py.in
index adfac5c..297112f 100644
--- a/enzyme/benchmarks/lit.site.cfg.py.in
+++ b/enzyme/benchmarks/lit.site.cfg.py.in
@@ -97,7 +97,7 @@
           + ' -Xclang -load -Xclang @ENZYME_BINARY_DIR@/Enzyme/ClangEnzyme-' + config.llvm_ver + config.llvm_shlib_ext)
 
 config.substitutions.append(('%newLoadClangEnzyme', newPM))
-config.substitutions.append(('%LoadClangEnzyme', newPM))
+config.substitutions.append(('%loadClangEnzyme', newPM))
 
 # Let the main config do the real work.
 lit_config.load_config(config, "@ENZYME_SOURCE_DIR@/benchmarks/lit.cfg.py")